diff --git a/README.md b/README.md
index 0f76053..d0807f8 100644
--- a/README.md
+++ b/README.md
@@ -1,20 +1,32 @@
-
PEPE POW
- PEPEPOW Coin is a cryptocurrency based on memes and utilizes the POW consensus algorithm for network security and decentralization. The coin is named after a popular internet meme that represents a frog, hence its mascot is also a frog..
-
PEPEPOW is set to become the second proof-of-work (PoW) driven meme coin!
+# PEPEPOW
+
+PEPEW (PEPEPOW) is a cryptocurrency with no owner or central authority. Based on memes and utilizing the Dash hybrid PoW / Masternode consensus algorithm for network security and decentralization. The coin is named after a popular internet meme that represents a frog, hence its mascot is also a frog who wants to dig for coins. Anyone can be a governor of PEPEW Proof of Work and share ownership of the coin, by deploying a master node or participating in mining with your home computer.
+
+With enough support - PEPEPOW is set to become the second most popular proof-of-work (PoW) driven meme coin, behind DogeCoin!
-
+
-
Important links:
- - Website [PEPEPOW](https://pepecore.com/)
- - Block Explorer [PEPEPOW-EXPLORER](https://explorer.pepecore.com/)
- - Join community in [DISCORD](https://discord.gg/jJgV73w8Zs)
- - Github [GITHUB](https://github.com/avgttt/PePe-core)
- - Twitter [TWITTER](https://twitter.com/pepepow_coin)
-
+##
Documents:
+ - Mining on Windows [MINE WINDOWS](https://github.com/MattF42/PePe-core/blob/master/doc/howtominewindows.md)
+ - Setup Masternode [MASTERNODE](https://github.com/MattF42/PePe-core/blob/master/doc/runningamasternode.md)
+ - The PEPEW Story [PROOF OF WORK STORY](https://github.com/MattF42/PePe-core/blob/master/doc/pepeproofofworkstory.md)
+
+##
Important links:
+ - Github [GITHUB](https://github.com/MattF42/PePe-core/)
+ - Website [PEPEPOW](https://pepecore.wordpress.com/)
+ - Web Wallet [WALLET](https://wallet-pepepow.foztor.net/)
+ - Faucet [FREE PEPEW](https://pepepow.foztor.net/faucet/#)
+ - Dice Game [DICE](https://dice-pepepow.foztor.net/)
+ - Mining Pool [COMMUNITY POOL](https://community-pool.pepepow.org/)
+ - Block Explorer [PEPEPOW-EXPLORER](https://explorer.pepepow.org/)
+ - M4P Block Explorer [PEPEPOW-EXPLORER](https://explorer2.pepepow.org/)
+ - Discord [DISCORD](https://discord.gg/fF4NPMRNKp)
+ - Twitter [TWITTER](https://twitter.com/PEPEWCommunity)
+ - Reddit [REDDIT](https://www.reddit.com/r/PEPEWCommunity/)
-Coins Specifications:
+## Coins Specifications:
@@ -43,7 +55,7 @@
Subsidy halving interval |
-each 1 months,3 times |
+See table below |
Block initial reward |
@@ -55,8 +67,37 @@
Block reward structure |
-After block 129601 Pow-75%, Masternode-20%, Foundation-5% |
+After block 129601 Pow-75%, Masternode-20% Dev-5% |
+After v2.2 HardFork (c block 384000) Pow-65%, Masternode-35% |
+
+Community HARD FORK occurred on 18th August 2023 to version 2.2.0.1 Protocol version 70301
+Future and Historical Reward Structure:
+
+
+Blocks | Reward |
+
+
+1-129600 | 100000 |
+129601-259200 | 50000 |
+259201-385000 | 5000 |
+>385000-514600 | 25000 |
+>514600-644200 | 12500 |
+ >644200-773800 | 6250 |
+>773800+ | 5000 |
+
+
+
+
+## DONATIONS:
+
+The original dev fee was removed from this chain and it is now entirely community-maintained / run. To thank or support those who contribute to this project please consider making a contribution. Any amount helps!
+
+Foztor : PLR6rHLZQwK3Jrbtja6VFnXEn8gvqmrBFx
+
+Setvin : PNT3qZ2sshPvyS5egaCpfEQZmfHoZEA1Bu
+
+Mining4People : PNb6mBbGdudbM7UXGouazzUQZZTf9kzReW
diff --git a/autogen.sh b/autogen.sh
old mode 100644
new mode 100755
diff --git a/configure.ac b/configure.ac
index 09ec2cb..a2a9add 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,11 +1,11 @@
dnl require autoconf 2.60 (AS_ECHO/AS_ECHO_N)
AC_PREREQ([2.60])
-define(_CLIENT_VERSION_MAJOR, 1)
-define(_CLIENT_VERSION_MINOR, 5)
-define(_CLIENT_VERSION_REVISION, 1)
-define(_CLIENT_VERSION_BUILD, 1)
+define(_CLIENT_VERSION_MAJOR, 2)
+define(_CLIENT_VERSION_MINOR, 4)
+define(_CLIENT_VERSION_REVISION, 4)
+define(_CLIENT_VERSION_BUILD, 2)
define(_CLIENT_VERSION_IS_RELEASE, true)
-define(_COPYRIGHT_YEAR, 2023)
+define(_COPYRIGHT_YEAR, 2024)
AC_INIT([PEPEPOW Core],[_CLIENT_VERSION_MAJOR._CLIENT_VERSION_MINOR._CLIENT_VERSION_REVISION],[https://github.com/PEPEPOWpay/PEPEPOW/issues],[PEPEPOWcore])
AC_CONFIG_SRCDIR([src/validation.cpp])
AC_CONFIG_HEADERS([src/config/PEPEPOW-config.h])
diff --git a/contrib/seeds/nodes_main.txt b/contrib/seeds/nodes_main.txt
index f1854b2..5df5fe1 100644
--- a/contrib/seeds/nodes_main.txt
+++ b/contrib/seeds/nodes_main.txt
@@ -1,937 +1,33 @@
-5.2.145.201:8333
-5.22.142.214:8333
-5.53.172.197:8333
-5.189.161.164:8333
-5.230.140.166:8333
-5.231.3.130:8333
-5.255.80.103:8333
-14.202.230.49:8333
-18.85.11.130:8333
-23.91.97.25:8333
-23.94.100.122:8333
-23.95.99.132:8333
-24.115.8.206:8333
-24.127.128.191:8333
-24.154.178.25:8333
-24.207.103.43:8333
-24.207.104.105:8333
-24.210.230.150:8333
-24.224.18.84:8333
-24.246.168.106:8333
-27.254.64.47:8333
-31.6.71.123:8333
-31.6.71.124:8333
-31.14.134.13:8333
-31.30.36.220:8333
-31.164.6.104:8333
-31.170.106.203:8333
-31.185.134.201:8333
-31.204.128.99:8333
-31.204.128.219:8333
-37.1.219.88:8333
-37.97.132.109:8333
-37.120.160.55:8333
-37.120.169.123:8333
-37.139.32.46:8333
-37.221.163.218:8333
-38.130.192.72:8333
-41.75.96.80:8333
-45.3.0.49:8333
-45.33.72.185:8333
-45.33.96.129:8333
-45.56.4.63:8333
-45.79.0.127:8333
-45.79.80.102:8333
-45.79.97.30:8333
-45.79.132.219:8333
-46.21.97.135:8333
-46.28.205.67:8333
-46.28.206.188:8333
-46.29.20.209:8333
-46.50.234.179:8333
-46.101.160.168:8333
-46.166.161.35:8333
-46.166.161.103:8333
-46.182.132.100:8333
-46.218.227.92:8333
-46.226.109.20:8333
-46.227.66.132:8333
-46.227.66.138:8333
-46.229.165.154:8333
-46.229.165.155:8333
-46.229.238.187:8333
-46.234.104.48:8333
-46.239.107.74:8333
-46.244.0.138:8333
-46.254.72.195:8333
-50.5.13.44:8333
-50.7.37.114:8333
-50.30.37.103:8333
-50.39.105.60:8333
-50.106.40.231:8333
-52.29.0.37:8333
-52.76.192.246:8333
-54.152.192.179:8333
-54.169.64.174:8333
-54.175.160.22:8333
-54.199.128.0:8333
-58.96.171.129:8333
-58.161.238.57:8333
-60.251.195.221:8333
-61.35.225.19:8333
-62.43.130.178:8333
-62.65.39.12:8333
-62.107.200.30:8333
-62.133.194.2:8333
-62.181.238.186:8333
-62.183.22.50:8333
-62.210.85.120:8333
-62.210.162.89:8333
-62.238.34.125:8333
-64.25.171.73:8333
-64.27.166.30:8333
-64.53.137.101:8333
-64.71.72.44:8333
-64.83.225.146:8333
-64.121.3.163:8333
-64.203.102.86:8333
-65.94.131.59:8333
-65.188.136.233:8333
-66.11.162.218:8333
-66.23.228.133:8333
-66.90.137.89:8333
-66.114.33.49:8333
-66.150.105.77:8333
-66.172.10.4:8333
-66.194.38.250:8333
-66.194.38.253:8333
-66.194.38.254:8333
-66.231.97.172:8333
-66.240.237.155:8333
-67.159.13.34:8333
-67.205.74.206:8333
-67.221.193.55:8333
-67.227.72.17:8333
-68.65.120.53:8333
-68.65.205.226:9000
-68.144.4.34:8333
-69.39.49.199:8333
-69.50.171.205:8333
-69.65.41.21:8333
-69.113.98.61:8333
-69.119.97.39:8333
-69.146.70.124:8333
-69.193.71.2:8333
-70.46.10.237:8333
-70.80.200.187:8333
-70.185.97.117:8333
-71.254.160.25:8333
-72.28.203.5:8333
-72.52.130.110:8333
-72.83.194.122:8333
-72.128.32.167:8333
-72.179.136.80:8333
-72.235.38.70:8333
-74.50.44.193:8333
-74.72.60.83:8333
-74.80.234.116:8333
-74.207.233.193:8333
-75.112.233.128:8333
-75.118.166.197:8333
-75.140.0.241:8333
-75.159.240.66:8333
-75.174.5.26:8333
-76.72.160.252:8333
-76.72.160.254:8333
-76.74.170.112:8333
-76.79.201.54:8333
-76.175.166.164:8333
-76.179.105.27:8333
-77.68.37.200:8333
-77.234.49.196:8333
-77.247.229.93:8333
-78.24.72.78:8333
-78.47.32.147:8333
-78.84.100.95:8333
-78.121.69.23:8333
-78.129.167.5:8333
-78.193.96.155:8333
-79.19.37.179:8333
-79.132.230.144:8333
-79.133.43.63:8333
-79.134.201.66:8333
-79.169.35.235:8333
-80.57.227.14:8333
-80.64.65.87:8333
-80.86.92.70:8333
-80.100.203.151:8333
-80.101.32.121:8333
-80.161.178.73:8333
-80.240.129.170:8333
-81.7.11.50:8333
-81.7.11.55:8333
-81.17.17.40:9333
-81.30.39.83:8333
-81.90.36.7:9444
-81.136.224.77:8333
-81.162.231.211:8333
-81.184.0.143:8333
-81.198.128.86:8333
-82.11.33.229:8333
-82.79.128.134:8333
-82.118.233.111:8333
-82.135.139.30:8333
-82.199.102.10:8333
-82.221.106.17:8333
-82.221.108.21:8333
-82.221.108.27:8333
-83.137.41.3:8333
-83.142.197.168:8333
-83.143.130.19:8333
-83.150.9.196:8333
-83.183.17.191:8333
-83.227.173.83:8333
-83.230.5.15:8333
-83.233.105.151:443
-83.246.75.8:8333
-83.250.133.158:8333
-83.255.66.118:8334
-84.24.69.59:8333
-84.42.193.6:8333
-84.45.98.87:8333
-84.54.128.11:8333
-84.212.200.24:8333
-84.215.198.109:8333
-84.230.4.177:8333
-85.95.228.83:8333
-85.95.228.123:8333
-85.114.128.134:8333
-85.214.66.168:8333
-85.214.147.162:8333
-85.243.168.4:8333
-86.1.0.18:8333
-87.79.77.106:8333
-87.91.156.110:8333
-87.236.196.222:8333
-88.85.75.152:8333
-88.87.1.230:8333
-88.87.92.102:8333
-88.89.69.202:8333
-88.97.72.229:8333
-88.164.117.99:8333
-88.198.32.131:8333
-88.202.230.87:8333
-88.214.193.154:8343
-88.214.194.226:8343
-89.10.155.88:8333
-89.46.101.44:8333
-89.163.224.212:8333
-89.174.248.20:8333
-89.202.231.198:8333
-89.212.75.6:8333
-90.149.38.172:8333
-90.169.106.139:8333
-91.64.101.150:8333
-91.65.196.179:8333
-91.121.80.17:8333
-91.126.77.77:8333
-91.145.76.156:8333
-91.152.150.35:8333
-91.192.137.17:8333
-91.196.170.110:8333
-91.197.44.133:8333
-91.207.68.144:8333
-91.210.105.28:8333
-91.211.102.101:8333
-91.211.106.34:8333
-91.214.200.205:8333
-91.220.43.146:8333
-91.222.71.89:8333
-91.224.140.242:8333
-91.229.76.14:8333
-92.27.7.209:8333
-92.51.167.88:8333
-92.247.229.163:8333
-93.84.114.106:8333
-93.113.36.172:8333
-93.188.224.253:8333
-94.75.239.69:8333
-94.190.227.112:8333
-94.214.2.74:8333
-94.224.162.65:8333
-94.236.198.253:8333
-94.242.229.158:8333
-95.84.138.99:8333
-95.95.168.87:8333
-95.110.234.93:8333
-95.130.9.200:8333
-95.165.168.168:8333
-95.170.235.254:8333
-95.211.130.154:8333
-96.46.68.104:8333
-96.127.202.148:8333
-97.76.171.35:8333
-98.160.160.67:8333
-99.126.197.187:8333
-99.198.173.1:8333
-101.100.174.138:8333
-101.164.201.208:8333
-103.224.165.48:8333
-104.128.225.223:8333
-104.128.228.252:8333
-104.131.192.94:8333
-104.155.45.201:8334
-104.194.28.195:8663
-104.211.1.27:8333
-104.221.38.177:8333
-104.236.9.79:8333
-104.236.129.178:8333
-104.236.186.249:8333
-104.236.194.15:8333
-104.238.128.214:8333
-104.238.130.182:8333
-106.38.234.84:8333
-106.185.36.204:8333
-106.185.38.67:8333
-107.6.4.145:8333
-107.150.2.6:8333
-107.150.40.234:8333
-107.170.13.184:8333
-107.181.250.216:8333
-107.191.101.111:8333
-107.191.106.115:8333
-108.59.12.163:8333
-108.161.129.247:8333
-109.193.160.140:8333
-109.197.13.54:8333
-109.230.7.248:8333
-109.234.106.191:8333
-109.236.137.80:8333
-109.251.161.121:8333
-112.65.231.226:8333
-115.70.166.57:8333
-115.159.42.80:8333
-117.18.73.34:8333
-118.67.201.40:8333
-118.100.86.246:8333
-118.110.104.152:8333
-119.224.64.141:8333
-120.55.193.136:8333
-122.106.169.178:8333
-123.203.174.15:8333
-123.255.232.94:8333
-124.148.165.165:8333
-124.232.141.31:8333
-128.30.92.69:8333
-128.39.141.182:8333
-128.84.167.20:8333
-128.111.73.10:8333
-128.127.38.195:8333
-128.140.224.162:8333
-128.199.101.104:8333
-128.233.224.35:8333
-128.253.3.193:20020
-130.180.228.138:8333
-130.185.144.213:8333
-130.255.73.207:8333
-133.218.233.11:8333
-134.249.128.23:8333
-136.159.234.234:8333
-137.116.160.176:8333
-139.162.2.145:8333
-139.162.23.117:8333
-141.134.69.253:8333
-141.255.162.215:8333
-144.122.163.187:8333
-145.131.3.54:8333
-145.255.4.94:8333
-146.0.32.101:8337
-147.83.72.91:8333
-148.103.28.68:8333
-149.5.32.102:8333
-149.210.164.195:8333
-150.101.163.241:8333
-151.236.11.189:8333
-152.3.136.56:8333
-154.20.208.25:8333
-158.181.104.149:8333
-159.253.96.226:8333
-160.36.130.180:8333
-162.209.1.233:8333
-162.209.4.125:8333
-162.209.106.123:8333
-162.210.198.184:8333
-162.248.99.164:53011
-162.248.102.117:8333
-162.251.108.53:8333
-163.44.2.48:8333
-163.158.36.17:8333
-166.230.71.67:8333
-167.160.36.62:8333
-167.160.169.92:8333
-168.93.129.220:8333
-169.55.99.84:8333
-169.228.66.43:8333
-172.9.169.242:8333
-173.32.11.194:8333
-173.230.228.136:8333
-173.246.107.34:8333
-173.254.235.34:8333
-174.0.128.222:8333
-174.25.130.148:8333
-174.50.64.101:8333
-175.140.232.141:8333
-176.36.37.62:8333
-176.46.9.96:8333
-176.124.110.27:8333
-177.39.16.102:8333
-178.17.173.2:8333
-178.62.5.248:8333
-178.62.70.16:8333
-178.62.203.185:8333
-178.79.160.118:8333
-178.169.206.244:8333
-178.193.234.62:8333
-178.199.96.108:8333
-178.254.18.96:8333
-178.254.34.161:8333
-178.255.41.123:8333
-180.210.34.58:9801
-182.92.226.212:8333
-182.171.246.142:8333
-184.23.8.9:8333
-184.58.162.35:8333
-184.154.9.170:8333
-185.8.238.165:8333
-185.24.97.11:8333
-185.31.137.139:8333
-185.38.44.64:8333
-185.53.128.180:8333
-185.53.129.244:8333
-185.77.129.119:8333
-185.77.129.156:8333
-185.82.203.92:8333
-188.20.97.18:8333
-188.126.8.14:8333
-188.138.33.239:8333
-188.155.136.70:8333
-188.166.229.112:8333
-188.182.108.129:8333
-188.226.225.174:8010
-188.242.171.8:8333
-188.243.4.139:8333
-190.10.9.234:8333
-190.10.10.147:8333
-190.81.160.184:8333
-190.85.201.37:8333
-192.34.227.230:8333
-192.77.189.200:8333
-192.124.224.7:8333
-192.146.137.1:8333
-192.203.228.71:8333
-192.206.202.20:8333
-193.0.109.3:8333
-193.41.229.130:8333
-193.41.229.156:8333
-193.49.43.219:8333
-193.147.71.120:8333
-193.179.65.233:8333
-193.183.99.46:8333
-193.192.37.135:8333
-193.234.224.195:8333
-194.58.108.213:8333
-194.187.96.2:8333
-194.255.31.59:8333
-195.36.6.101:8333
-195.58.238.243:8333
-195.197.175.190:8333
-195.239.1.66:8333
-198.48.196.230:8333
-198.50.192.160:8333
-198.57.210.27:8333
-198.84.195.179:8333
-198.167.140.8:8333
-198.204.224.106:8333
-199.127.226.245:8333
-199.201.110.8:8333
-199.233.234.90:8333
-200.116.98.185:8333
-202.60.70.18:8333
-203.151.140.14:8333
-204.112.203.52:8333
-205.200.247.149:8333
-207.226.141.253:8333
-207.255.42.202:8333
-208.53.164.19:8333
-208.66.68.127:8333
-208.66.68.130:8333
-208.71.171.232:8341
-208.76.200.200:8333
-208.82.98.189:8333
-208.85.193.31:8333
-208.111.48.41:8333
-208.111.48.45:8333
-209.34.232.72:8333
-209.81.9.223:8333
-209.90.224.2:8333
-209.90.224.4:8333
-209.126.98.174:8333
-209.136.72.69:8333
-209.195.4.74:8333
-209.197.13.62:8333
-211.72.227.8:8333
-212.51.144.42:8333
-212.71.233.127:8333
-212.126.14.122:8333
-212.159.44.50:8333
-213.5.36.58:8333
-213.57.33.10:8333
-213.66.205.194:8333
-213.136.73.125:8333
-213.155.3.216:8333
-213.155.7.24:8333
-213.167.17.6:8333
-213.223.138.13:8333
-216.15.78.182:8333
-216.38.129.164:8333
-216.48.168.8:8333
-216.169.141.169:8333
-216.245.206.181:8333
-216.249.204.161:8333
-216.250.138.230:8333
-217.11.225.189:8333
-217.12.34.158:8333
-217.12.202.33:8333
-217.20.171.43:8333
-217.23.1.126:8333
-217.23.11.138:8333
-217.111.66.79:8333
-217.155.202.191:8333
-217.158.9.102:8333
-217.172.32.18:20993
-220.245.196.37:8333
-[2001:1291:2bf:1::100]:8333
-[2001:1620:f00:282::2]:8333
-[2001:1620:f00:8282::1]:8333
-[2001:19f0:5000:8de8:5400:ff:fe12:55e4]:8333
-[2001:19f0:6c00:9103:5400:ff:fe10:a8d3]:8333
-[2001:1b60:3:172:142b:6dff:fe7a:117]:8333
-[2001:410:a000:4050:8463:90b0:fffb:4e58]:8333
-[2001:4128:6135:2010:21e:bff:fee8:a3c0]:8333
-[2001:41d0:1008:761::17c]:8333
-[2001:41d0:1:45d8::1]:8333
-[2001:41d0:1:6cd3::]:8333
-[2001:41d0:1:8b26::1]:8333
-[2001:41d0:1:afda::]:8200
-[2001:41d0:1:b26b::1]:8333
-[2001:41d0:1:c139::1]:8333
-[2001:41d0:1:c8d7::1]:8333
-[2001:41d0:1:f59f::33]:8333
-[2001:41d0:1:f7cc::1]:8333
-[2001:41d0:2:1021::1]:8333
-[2001:41d0:2:37c3::]:8200
-[2001:41d0:2:4797:2323:2323:2323:2323]:8333
-[2001:41d0:2:53df::]:8333
-[2001:41d0:2:9c94::1]:8333
-[2001:41d0:2:9d3e::1]:8333
-[2001:41d0:2:a24f::]:8333
-[2001:41d0:2:a35a::]:8333
-[2001:41d0:2:b2b8::]:8333
-[2001:41d0:2:c1d9::]:8333
-[2001:41d0:2:c6e::]:8333
-[2001:41d0:2:c9bf::]:8333
-[2001:41d0:2:f1a5::]:8333
-[2001:41d0:52:a00::105f]:8333
-[2001:41d0:52:cff::6f5]:8333
-[2001:41d0:52:d00::6e2]:8333
-[2001:41d0:8:3e75::1]:8333
-[2001:41d0:8:62ab::1]:8333
-[2001:41d0:8:6728::]:8333
-[2001:41d0:8:b30a::1]:8333
-[2001:41d0:8:bc26::1]:8333
-[2001:41d0:8:be9a::1]:8333
-[2001:41d0:8:d984::]:8333
-[2001:41d0:8:eb8b::]:8333
-[2001:41d0:a:13a2::1]:8333
-[2001:41d0:a:2b18::1]:8333
-[2001:41d0:a:2d14::]:8333
-[2001:41d0:a:4558::1df2:76d3]:8333
-[2001:41d0:a:4aaa::]:8333
-[2001:41d0:a:635b::1]:8333
-[2001:41d0:a:63d8::1]:8333
-[2001:41d0:a:6c29::1]:8333
-[2001:41d0:a:f9cd::1]:8333
-[2001:41d0:d:20a4::]:8333
-[2001:41d0:e:26b::1]:8333
-[2001:41d0:fc8c:a200:7a24:afff:fe9d:c69b]:8333
-[2001:41f0:61::7]:8333
-[2001:41f0::2]:8333
-[2001:44b8:41bd:6101:148e:4022:4950:e861]:8333
-[2001:470:1:2f9:0:1:107a:a301]:8333
-[2001:470:1f0b:ad6::2]:8333
-[2001:470:1f11:12d5::ae1:5611]:8333
-[2001:470:1f14:7d::2]:8333
-[2001:470:27:ce::2]:8333
-[2001:470:41:6::2]:8333
-[2001:470:507d:0:6ab5:99ff:fe73:ac18]:8333
-[2001:470:583e::2a]:8333
-[2001:470:5f:5f::232]:8333
-[2001:470:66:119::2]:8333
-[2001:470:6c4f::cafe]:8333
-[2001:470:6f:327:913b:7fe:8545:a4f5]:8333
-[2001:470:7dda:1::1]:8333
-[2001:470:95c1::2]:8333
-[2001:470:b1d0:ffff::1000]:8333
-[2001:470:d00d:0:3664:a9ff:fe9a:5150]:8333
-[2001:470:fab7:1::1]:8333
-[2001:4800:7819:104:be76:4eff:fe05:c828]:8333
-[2001:4800:7819:104:be76:4eff:fe05:c9a0]:8333
-[2001:4801:7819:74:b745:b9d5:ff10:a61a]:8333
-[2001:4801:7819:74:b745:b9d5:ff10:aaec]:8333
-[2001:4801:7828:104:be76:4eff:fe10:1325]:8333
-[2001:4802:7800:1:be76:4eff:fe20:f023]:8333
-[2001:4802:7800:2:30d7:1775:ff20:1858]:8333
-[2001:4802:7800:2:be76:4eff:fe20:6c26]:8333
-[2001:4802:7802:101:be76:4eff:fe20:256]:8333
-[2001:4802:7802:103:be76:4eff:fe20:2de8]:8333
-[2001:4830:1100:2e8::2]:8333
-[2001:4b98:dc2:41:216:3eff:fe56:f659]:8333
-[2001:4ba0:fffa:5d::93]:8333
-[2001:4ba0:ffff:1be:1:1005:0:1]:8333
-[2001:4dd0:ff00:867f::3]:8333
-[2001:4dd0:ff00:9a67::9]:8333
-[2001:5c0:1400:b::3cc7]:8333
-[2001:610:1b19::3]:8333
-[2001:610:600:a41::2]:8333
-[2001:67c:26b4::]:8333
-[2001:8d8:840:500::39:1ae]:8333
-[2001:8d8:965:4a00::10:9343]:8333
-[2001:980:4650:1:2e0:53ff:fe13:2449]:8333
-[2001:981:46:1:ba27:ebff:fe5b:edee]:8333
-[2001:9c8:53e9:369a:226:2dff:fe1b:7472]:8333
-[2001:9d8:cafe:3::87]:8333
-[2001:b10:11:21:3e07:54ff:fe48:7248]:8333
-[2001:ba8:1f1:f34c::2]:8333
-[2001:bc8:2310:100::1]:8333
-[2001:bc8:3427:101:7a4f:8be:2611:6e79]:8333
-[2001:bc8:3505:200::1]:8333
-[2001:cc0:a004::30:1d]:8333
-[2001:e42:102:1209:153:121:76:171]:8333
-[2002:17ea:14eb::17ea:14eb]:8333
-[2002:2f8:2bc5::2f8:2bc5]:8333
-[2002:4047:482c::4047:482c]:8333
-[2002:45c3:8cca::45c3:8cca]:8333
-[2002:46bb:8a41:0:226:b0ff:feed:5f12]:8888
-[2002:46bb:8c3c:0:8d55:8fbb:15fa:f4e0]:8765
-[2002:4c48:a0fe::4c48:a0fe]:8333
-[2002:4d44:25c8::4d44:25c8]:8333
-[2002:505f:aaa2::505f:aaa2]:8333
-[2002:5bc1:799d::5bc1:799d]:8333
-[2002:6dec:5472::6dec:5472]:8333
-[2002:8c6d:6521:9617:12bf:48ff:fed8:1724]:8333
-[2002:ac52:94e2::ac52:94e2]:8333
-[2002:af7e:3eca::af7e:3eca]:8333
-[2002:b009:20c5::b009:20c5]:8333
-[2002:c06f:39a0::c06f:39a0]:8333
-[2002:c23a:738a::c23a:738a]:8333
-[2002:c70f:7442::c70f:7442]:8333
-[2002:cec5:be4f::cec5:be4f]:8333
-[2002:d149:9e3a::d149:9e3a]:8333
-[2002:d917:ca5::d917:ca5]:8333
-[2400:8900::f03c:91ff:fe50:153f]:8333
-[2400:8900::f03c:91ff:fe6e:823e]:8333
-[2400:8900::f03c:91ff:fea8:1934]:8333
-[2400:8901::f03c:91ff:fe26:c4d6]:8333
-[2400:8901::f03c:91ff:fec8:4280]:8333
-[2400:8901::f03c:91ff:fec8:660f]:8333
-[2401:1800:7800:102:be76:4eff:fe1c:559]:8333
-[2401:1800:7800:102:be76:4eff:fe1c:a7d]:8333
-[2405:aa00:2::40]:8333
-[2600:3c00::f03c:91ff:fe18:59b2]:8333
-[2600:3c00::f03c:91ff:fe26:bfb6]:8333
-[2600:3c00::f03c:91ff:fe33:88e3]:8333
-[2600:3c00::f03c:91ff:fe6e:7297]:8333
-[2600:3c00::f03c:91ff:fe84:8a6e]:8333
-[2600:3c01::f03c:91ff:fe18:6adf]:8333
-[2600:3c01::f03c:91ff:fe26:c4b8]:8333
-[2600:3c01::f03c:91ff:fe3b:1f76]:8333
-[2600:3c01::f03c:91ff:fe50:5e06]:8333
-[2600:3c01::f03c:91ff:fe61:289b]:8333
-[2600:3c01::f03c:91ff:fe69:89e9]:8333
-[2600:3c01::f03c:91ff:fe84:ac15]:8333
-[2600:3c01::f03c:91ff:fe98:68bb]:8333
-[2600:3c02::f03c:91ff:fe26:713]:8333
-[2600:3c02::f03c:91ff:fe26:c49e]:8333
-[2600:3c02::f03c:91ff:fe84:97d8]:8333
-[2600:3c02::f03c:91ff:fec8:8feb]:8333
-[2600:3c03::f03c:91ff:fe18:da80]:8333
-[2600:3c03::f03c:91ff:fe26:c49b]:8333
-[2600:3c03::f03c:91ff:fe50:5fa7]:8333
-[2600:3c03::f03c:91ff:fe67:d2e]:8333
-[2600:3c03::f03c:91ff:fe6e:1803]:8333
-[2600:3c03::f03c:91ff:fec8:4bbe]:8333
-[2600:3c03::f03c:91ff:fee4:4e16]:8333
-[2601:18d:8300:58a6::2e4]:8333
-[2601:240:4600:40c0:250:56ff:fea4:6305]:8333
-[2601:581:c200:a719:542c:9cd5:4852:f7d9]:8333
-[2601:647:4900:85f1:ca2a:14ff:fe51:bb35]:8333
-[2601:c2:c002:b300:54a0:15b5:19f7:530d]:8333
-[2602:306:ccff:ad7f:b116:52be:64ba:db3a]:8333
-[2602:ae:1982:9400:846:f78c:fec:4d57]:8333
-[2602:ffc5:1f::1f:2d61]:8333
-[2602:ffc5:1f::1f:9211]:8333
-[2602:ffc5::75d5:c1c3]:8333
-[2602:ffc5::ffc5:b844]:8333
-[2602:ffe8:100:2::457:936b]:8333
-[2602:ffe8:100:2::9d20:2e3c]:8333
-[2602:ffea:1001:72b::578b]:8333
-[2602:ffea:a::24c4:d9fd]:8333
-[2604:0:c1:100:1ec1:deff:fe54:2235]:8333
-[2604:180:1:1af::42a9]:8333
-[2604:180:3:702::c9de]:8333
-[2604:4080:1114:0:3285:a9ff:fe93:850c]:8333
-[2604:6000:ffc0:3c:64a3:94d0:4f1d:1da8]:8333
-[2605:6000:f380:9a01:ba09:8aff:fed4:3511]:8333
-[2605:6001:e00f:7b00:c587:6d91:6eff:eeba]:8333
-[2605:f700:c0:1::25c3:2a3e]:8333
-[2606:6000:a441:9903:5054:ff:fe78:66ff]:8333
-[2607:5300:100:200::1c83]:9334
-[2607:5300:10::a1]:8333
-[2607:5300:60:1c2f::1]:8333
-[2607:5300:60:2b90::1]:8333
-[2607:5300:60:3320::1]:8333
-[2607:5300:60:385::1]:8333
-[2607:5300:60:4a85::]:8333
-[2607:5300:60:65e4::]:8333
-[2607:5300:60:6918::]:8333
-[2607:5300:60:711a:78::a7b5]:8333
-[2607:5300:60:714::1]:8333
-[2607:5300:60:870::1]:8333
-[2607:5300:60:952e:3733::1414]:8333
-[2607:f1c0:848:1000::48:943c]:8333
-[2607:f2e0:f:5df::2]:8333
-[2607:f748:1200:f8:21e:67ff:fe99:8f07]:8333
-[2607:f948:0:1::7]:8333
-[2607:ff68:100:36::131]:8333
-[2803:6900:1::117]:8333
-[2a00:1098:0:80:1000:25:0:1]:8333
-[2a00:1178:2:43:5054:ff:fe84:f86f]:8333
-[2a00:1178:2:43:5054:ff:fee7:2eb6]:8333
-[2a00:1178:2:43:8983:cc27:d72:d97a]:8333
-[2a00:1328:e100:cc42:230:48ff:fe92:55c]:8333
-[2a00:14f0:e000:80d2:cd1a::1]:8333
-[2a00:1630:2:1802:188:122:91:11]:8333
-[2a00:18e0:0:1800::1]:8333
-[2a00:18e0:0:dcc5:109:234:106:191]:8333
-[2a00:1a28:1157:87::94c7]:8333
-[2a00:1ca8:37::a5fc:40d1]:8333
-[2a00:1ca8:37::ab6d:ce2c]:8333
-[2a00:7143:100:0:216:3eff:fe2e:74a3]:8333
-[2a00:7143:100:0:216:3eff:fed3:5c21]:8333
-[2a00:7c80:0:45::123]:8333
-[2a00:dcc0:eda:98:183:193:c382:6bdb]:8333
-[2a00:dcc0:eda:98:183:193:f72e:d943]:8333
-[2a00:f820:17::4af:1]:8333
-[2a00:f940:2:1:2::101d]:8333
-[2a00:f940:2:1:2::6ac]:8333
-[2a01:1b0:7999:402::131]:8333
-[2a01:238:42dd:f900:7a6c:2bc6:4041:c43]:8333
-[2a01:238:4313:6300:2189:1c97:696b:5ea]:8333
-[2a01:488:66:1000:5c33:91f9:0:1]:8333
-[2a01:488:66:1000:b01c:178d:0:1]:8333
-[2a01:4f8:100:34ce::2]:8333
-[2a01:4f8:100:34e4::2]:8333
-[2a01:4f8:100:44e7::2]:8333
-[2a01:4f8:100:510e::2]:8333
-[2a01:4f8:100:5128::2]:8333
-[2a01:4f8:110:5105::2]:8333
-[2a01:4f8:110:516c::2]:8333
-[2a01:4f8:120:43e4::2]:8333
-[2a01:4f8:120:62e6::2]:8333
-[2a01:4f8:120:702e::2]:8333
-[2a01:4f8:120:8203::2]:8333
-[2a01:4f8:121:234d::2]:8333
-[2a01:4f8:121:261::2]:8333
-[2a01:4f8:130:11ea::2]:8333
-[2a01:4f8:130:3332::2]:8333
-[2a01:4f8:130:40ab::2]:8333
-[2a01:4f8:130:632c::2]:8333
-[2a01:4f8:130:6366::2]:8333
-[2a01:4f8:130:934f::2]:8333
-[2a01:4f8:131:33ad:fea1::666]:8333
-[2a01:4f8:140:2195::2]:8333
-[2a01:4f8:140:6333::2]:8333
-[2a01:4f8:140:930d::2]:8333
-[2a01:4f8:140:93b0::2]:8333
-[2a01:4f8:141:1167::2]:8333
-[2a01:4f8:141:186::2]:8333
-[2a01:4f8:141:53f0::2]:8333
-[2a01:4f8:150:336a::2]:8333
-[2a01:4f8:150:72ee::4202]:8333
-[2a01:4f8:150:8324::2]:9001
-[2a01:4f8:151:21ca::2]:8333
-[2a01:4f8:151:41c2:0:5404:a67e:f250]:8333
-[2a01:4f8:151:5128::2]:8333
-[2a01:4f8:151:52c6::154]:8333
-[2a01:4f8:151:6347::2]:9001
-[2a01:4f8:160:5136::2]:8333
-[2a01:4f8:160:72c5::2858:e1c5]:8333
-[2a01:4f8:160:72c5::593b:60d5]:8333
-[2a01:4f8:160:814f::2]:8333
-[2a01:4f8:161:13d0::2]:8333
-[2a01:4f8:161:228f::2]:8333
-[2a01:4f8:161:51c4::2]:8333
-[2a01:4f8:161:60a7::2]:8333
-[2a01:4f8:161:7026::2]:8333
-[2a01:4f8:161:9184::2]:8333
-[2a01:4f8:162:2108::2]:8333
-[2a01:4f8:162:218c::2]:8333
-[2a01:4f8:162:4443::2]:8333
-[2a01:4f8:162:51a3::2]:8333
-[2a01:4f8:171:b93::2]:8333
-[2a01:4f8:190:1483::1]:8333
-[2a01:4f8:190:4495::2]:8333
-[2a01:4f8:190:64c9::2]:8333
-[2a01:4f8:190:91ce::2]:8333
-[2a01:4f8:191:2194::83]:8333
-[2a01:4f8:191:40e8::2]:8333
-[2a01:4f8:191:44b4::2]:8333
-[2a01:4f8:191:8242::2]:8333
-[2a01:4f8:191:83a2::2]:8333
-[2a01:4f8:192:11b2::2]:8333
-[2a01:4f8:192:216c::2]:8333
-[2a01:4f8:192:22b3::2]:8333
-[2a01:4f8:192:440b::2]:8333
-[2a01:4f8:192:db::2]:8333
-[2a01:4f8:200:1012::2]:8333
-[2a01:4f8:200:23d1::dead:beef]:8333
-[2a01:4f8:200:506d::2]:8333
-[2a01:4f8:200:51f0::2]:8333
-[2a01:4f8:200:5389::2]:8333
-[2a01:4f8:200:53e3::2]:8333
-[2a01:4f8:200:6344::2]:8333
-[2a01:4f8:200:6396::2]:8333
-[2a01:4f8:200:63af::119]:8333
-[2a01:4f8:200:71e3:78b4:f3ff:fead:e8cf]:8333
-[2a01:4f8:201:214c::2]:8333
-[2a01:4f8:201:233:1::3]:8333
-[2a01:4f8:201:3e3::2]:8333
-[2a01:4f8:201:6011::4]:8333
-[2a01:4f8:201:60d5::2]:8333
-[2a01:4f8:202:265::2]:8333
-[2a01:4f8:202:3115::2]:8333
-[2a01:4f8:202:31e3::2]:8333
-[2a01:4f8:202:31ef::2]:8333
-[2a01:4f8:202:3392::2]:8333
-[2a01:4f8:202:53c3::2]:8333
-[2a01:4f8:202:63f4::2]:8333
-[2a01:4f8:202:7227::2]:8333
-[2a01:4f8:210:2227::2]:8333
-[2a01:4f8:210:24aa::2]:8333
-[2a01:4f8:211:14cf::2]:8333
-[2a01:4f8:211:181b::2]:8333
-[2a01:4f8:212:289e::2]:8333
-[2a01:4f8:212:33db::2]:18333
-[2a01:4f8:a0:112f::2]:8333
-[2a01:4f8:a0:3174::2]:8333
-[2a01:4f8:a0:328c::2]:8333
-[2a01:4f8:a0:5243::2]:8333
-[2a01:4f8:c17:19b9::2]:8333
-[2a01:4f8:c17:1a41::2]:8333
-[2a01:4f8:c17:1a92::2]:8333
-[2a01:4f8:c17:273::2]:8333
-[2a01:4f8:c17:435::2]:8333
-[2a01:4f8:c17:755::2]:8333
-[2a01:4f8:c17:b54::2]:8333
-[2a01:4f8:d16:9384::2]:8333
-[2a01:608:ffff:a009:8bf5:879d:e51a:f837]:8333
-[2a01:680:10:10:f2de:f1ff:fec9:dc0]:8333
-[2a01:7c8:aaac:1f6:5054:ff:fe30:e585]:8333
-[2a01:7c8:aaac:20b:5054:ff:fe24:435e]:8333
-[2a01:7c8:aaac:43d:5054:ff:fe4e:3dd4]:8333
-[2a01:7c8:aaad:256::1]:8333
-[2a01:7c8:aab6:ea:5054:ff:feff:eac3]:8333
-[2a01:7c8:aab9:5a:5054:ff:fe89:7b26]:8333
-[2a01:7c8:aabc:2c8:5054:ff:fe35:6581]:8333
-[2a01:7e00::f03c:91ff:fe18:301e]:8333
-[2a01:7e00::f03c:91ff:fe18:3942]:8333
-[2a01:7e00::f03c:91ff:fe26:8c87]:8333
-[2a01:7e00::f03c:91ff:fe50:6206]:8333
-[2a01:7e00::f03c:91ff:fe67:559d]:8333
-[2a01:7e00::f03c:91ff:fe84:434f]:8333
-[2a01:7e00::f03c:91ff:fe89:1143]:8333
-[2a01:7e00::f03c:91ff:fe98:2505]:8333
-[2a01:7e00::f03c:91ff:fedb:352e]:8333
-[2a01:7e01::f03c:91ff:fec8:d7b5]:8333
-[2a01:e34:ee33:1640:c504:f677:b28a:ba42]:8333
-[2a01:e35:2e7e:bc0:e079:f55e:cef3:b5d7]:8333
-[2a01:e35:2ee5:610:21f:d0ff:fe4e:7460]:8333
-[2a01:e35:8a3f:47c0:c617:feff:fe3c:9fbd]:8333
-[2a01:e35:8aca:6a0:211:aff:fe5e:295e]:8333
-[2a02:180:a:18:81:7:11:50]:8333
-[2a02:1810:1d87:6a00:5604:a6ff:fe60:d87d]:8333
-[2a02:2168:1144:5c01:d63d:7eff:fedd:4f8e]:8333
-[2a02:2498:6d7b:7001:b508:b39d:2cea:5b7a]:8333
-[2a02:2528:503:2::15]:8333
-[2a02:2528:fa:1a56:216:44ff:fe6a:d112]:8333
-[2a02:27f8:2012:0:e9f7:268f:c441:6129]:8333
-[2a02:348:86:3011::1]:8333
-[2a02:4780:1:1::1:8a01]:8333
-[2a02:578:5002:116::2]:8333
-[2a02:6080::1:190b:69e3]:8333
-[2a02:6080::1:e893:d9d6]:8333
-[2a02:770:4000::139]:8333
-[2a02:7aa0:1201::deb3:81a2]:8333
-[2a02:8010:b001::5860:59b5]:8333
-[2a02:810d:21c0:f00:a248:1cff:feb8:5348]:8333
-[2a02:a50::21b:24ff:fe93:4e39]:8333
-[2a02:a80:0:1200::2]:8333
-[2a02:c200:0:10:2:1:5830:1]:8333
-[2a02:c200:0:10:2:5:4692:1]:8333
-[2a02:c200:0:10:3:0:7158:1]:8333
-[2a02:c200:0:10::2244:1]:8333
-[2a02:c200:1:10:2:3:3339:1]:8333
-[2a02:c200:1:10:2:3:7844:1]:8333
-[2a02:c200:1:10:2:5:6288:1]:8333
-[2a02:c200:1:10:3:0:5912:1]:8333
-[2a03:4000:2:496::8]:8333
-[2a03:4000:6:8009::1]:8333
-[2a03:4000:6:8063::bcd0]:8333
-[2a03:4900:fffc:b::2]:8333
-[2a03:b0c0:1:d0::d:5001]:8333
-[2a03:f80:ed15:149:154:155:235:1]:8333
-[2a03:f80:ed15:149:154:155:241:1]:8333
-[2a03:f80:ed16:ca7:ea75:b12d:2af:9e2a]:8333
-[2a04:1980:3100:1aab:290:faff:fe70:a3d8]:8333
-[2a04:1980:3100:1aab:e61d:2dff:fe29:f590]:8333
-[2a04:2f80:6:200::89]:8333
-[2a04:ac00:1:4a0b:5054:ff:fe00:5af5]:8333
-[2a04:ad80:0:68::35da]:8333
-3ffk7iumtx3cegbi.onion:8333
-3nmbbakinewlgdln.onion:8333
-4j77gihpokxu2kj4.onion:8333
-546esc6botbjfbxb.onion:8333
-5at7sq5nm76xijkd.onion:8333
-77mx2jsxaoyesz2p.onion:8333
-7g7j54btiaxhtsiy.onion:8333
-a6obdgzn67l7exu3.onion:8333
-ab64h7olpl7qpxci.onion:8333
-am2a4rahltfuxz6l.onion:8333
-azuxls4ihrr2mep7.onion:8333
-bitcoin7bi4op7wb.onion:8333
-bitcoinostk4e4re.onion:8333
-bk7yp6epnmcllq72.onion:8333
-bmutjfrj5btseddb.onion:8333
-ceeji4qpfs3ms3zc.onion:8333
-clexmzqio7yhdao4.onion:8333
-gb5ypqt63du3wfhn.onion:8333
-h2vlpudzphzqxutd.onion:8333
-n42h7r6oumcfsbrs.onion:4176
-ncwk3lutemffcpc4.onion:8333
-okdzjarwekbshnof.onion:8333
-pjghcivzkoersesd.onion:8333
-rw7ocjltix26mefn.onion:8333
-uws7itep7o3yinxo.onion:8333
-vk3qjdehyy4dwcxw.onion:8333
-vqpye2k5rcqvj5mq.onion:8333
-wpi7rpvhnndl52ee.onion:8333
+101.37.28.146:8833
+109.205.212.243:8833
+121.36.243.160:8833
+132.145.29.145:8833
+141.147.71.107:8833
+141.147.73.58:8833
+141.98.90.157:8833
+146.190.23.5:8833
+157.245.45.154:8833
+165.227.173.101:8833
+167.172.107.0:8833
+167.99.253.72:8833
+172.104.5.209:8833
+178.128.227.12:8833
+181.45.56.1:8833
+182.43.92.100:8833
+186.12.200.15:8833
+192.46.215.125:8833
+35.178.177.82:8833
+5.188.238.193:8833
+5.9.151.50:8833
+51.161.131.90:8833
+54.39.49.96:8833
+173.249.12.11:8833
+207.180.227.207:8833
+167.86.91.2:8833
+167.86.87.54:8833
+167.86.85.148:8833
+167.86.124.240:8833
+18.215.33.154:8833
+[2603:c020:c00c:ab7e:fb40:f9f6:8078:4aa8]:8833
+[2600:1f18:da7:7900:e0e:7371:c000:89]:8833
+
diff --git a/depends/packages/expat.mk b/depends/packages/expat.mk
index 1ac4435..53a25e3 100644
--- a/depends/packages/expat.mk
+++ b/depends/packages/expat.mk
@@ -1,8 +1,8 @@
package=expat
-$(package)_version=2.1.0
+$(package)_version=2.5.0
$(package)_download_path=http://sourceforge.net/projects/expat/files/expat/$($(package)_version)
$(package)_file_name=$(package)-$($(package)_version).tar.gz
-$(package)_sha256_hash=823705472f816df21c8f6aa026dd162b280806838bb55b3432b0fb1fcca7eb86
+$(package)_sha256_hash=6b902ab103843592be5e99504f846ec109c1abb692e85347587f237a4ffa1033
define $(package)_set_vars
$(package)_config_opts=--disable-static
diff --git a/depends/packages/fontconfig.mk b/depends/packages/fontconfig.mk
index 2cf553e..64703a0 100644
--- a/depends/packages/fontconfig.mk
+++ b/depends/packages/fontconfig.mk
@@ -1,8 +1,8 @@
package=fontconfig
-$(package)_version=2.11.1
+$(package)_version=2.13.91
$(package)_download_path=http://www.freedesktop.org/software/fontconfig/release/
-$(package)_file_name=$(package)-$($(package)_version).tar.bz2
-$(package)_sha256_hash=dc62447533bca844463a3c3fd4083b57c90f18a70506e7a9f4936b5a1e516a99
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=19e5b1bc9d013a52063a44e1307629711f0bfef35b9aca16f9c793971e2eb1e5
$(package)_dependencies=freetype expat
define $(package)_set_vars
diff --git a/depends/packages/freetype.mk b/depends/packages/freetype.mk
index f7d6e0f..84a9c11 100644
--- a/depends/packages/freetype.mk
+++ b/depends/packages/freetype.mk
@@ -1,8 +1,8 @@
package=freetype
-$(package)_version=2.5.3
+$(package)_version=2.13.1
$(package)_download_path=http://downloads.sourceforge.net/$(package)
-$(package)_file_name=$(package)-$($(package)_version).tar.bz2
-$(package)_sha256_hash=c0848b29d52ef3ca27ad92e08351f023c5e24ce8cea7d8fe69fc96358e65f75e
+$(package)_file_name=$(package)-$($(package)_version).tar.gz
+$(package)_sha256_hash=0b109c59914f25b4411a8de2a506fdd18fa8457eb86eca6c7b15c19110a92fa5
define $(package)_set_vars
$(package)_config_opts=--without-zlib --without-png --disable-static
diff --git a/depends/packages/qt.mk b/depends/packages/qt.mk
index 84526d3..1d869e3 100644
--- a/depends/packages/qt.mk
+++ b/depends/packages/qt.mk
@@ -1,6 +1,6 @@
PACKAGE=qt
$(package)_version=5.5.0
-$(package)_download_path=http://download.qt.io/archive/qt/5.5/$($(package)_version)/submodules
+$(package)_download_path=http://download.qt.io/new_archive/qt/5.5/$($(package)_version)/submodules
$(package)_suffix=opensource-src-$($(package)_version).tar.gz
$(package)_file_name=qtbase-$($(package)_suffix)
$(package)_sha256_hash=7e82b1318f88e56a2a9376e069aa608d4fd96b48cb0e1b880ae658b0a1af0561
diff --git a/doc/howtominewindows.md b/doc/howtominewindows.md
new file mode 100644
index 0000000..ee3b92d
--- /dev/null
+++ b/doc/howtominewindows.md
@@ -0,0 +1,92 @@
+# How to mine PEPEPOW (memehash) on Windows
+
+## Introduction:
+This guide will be a simple and basic walk-through for new or inexperienced window users to begin mining the proof of work cryptocurrency PepePoW for the first time. Proof-of-work cryptocurrencies are valued because they are decentralized and more fair and equitable due to the ability to earn and participate in the network by mining.
+
+You will need to set up a wallet to store your PepePoW coins, prepare the Windows environment to mine, download the mining software, and then use the interface on the pool website to view your mining earnings after you have started mining. Mining with a pool is recommended for most users, especially if you have something like a laptop or just not many graphics cards.
+
+By mining shared with the pool, you get part of the block working together with other miners. You get a percent of the block based on the weight and values of the shares your computer hardware delivers to the pool, based on its overall efficiency.
+
+PepePoW is a decentralized cryptocurrency with no central authority. As a miner, you are maintaining the ledger ensuring transactions are legitimate, and also getting rewarded for your effort. This means you have an easy and low-risk way to gain exposure and equity in most cryptocurrencies, simply by using the power of your own computer!
+
+## Creating your wallet
+If you have not already and would like to set up your PepePoW wallet - you can find the official wallet release below:
+https://github.com/MattF42/PePe-core/releases
+
+As a wallet owner, you are the sole custodian of your own funds, if you fail to secure your wallet data file properly you will lose access to your funds. That means If it is lost or stolen, no one can help you restore your funds! They will be lost forever!
+
+If you already have a wallet from another crypto, for example, Bitcoin Cash, and would prefer to mine PepePoW with your GPU and get paid out in Bitcoin Cash, you may do that as well. The section about setting up SRBMiner listed below will teach you how to connect your miner, Make sure to remember to change the username and password settings to the appropriate BCH wallet when you setup your miner.
+
+## Preparation:
+You will need to prepare the folder where you will install the mining software. If you are new to mining and want to try on a Windows operating system, please keep in mind that Windows anti-virus is incredibly hostile to all forms of mining and will always flag miners as malicious software, even if you have downloaded it from a trusted source such as GitHub. If you find that you are having trouble getting mining software to run on Windows, try this workaround:
+
+Press the "Windows" key on the taskbar or on your keyboard. Once the menu pulls up, start typing in "exclusions" on your keyboard. The tab will automatically recognize your typing and a page to the Windows settings for anti-virus exclusions will appear. Click on this option.
+
+This will take you to the "virus and threat protection" options menu. Under "Virus and threat protection settings" there is a blue link that says "manage settings." Click this and then scroll down until you find "Exclusions." Click on the blue link that says "add or remove exclusions"
+
+This will bring up another tab, which has a box with a plus arrow stating "+ add an exclusion" Clicking this gives a drop-down selection. Please select the option "Folder." Now a pop-up appears that will show you the entire computer directory. Navigate to the "documents" director and create a new folder by right-clicking in the inside area and choosing "new folder." Name this new folder anything like "mining" and then choose "Select folder" with the option on the bottom right until you have chosen this new folder.
+
+Once you are done you will return to the Windows security tab which we were in before and you should now see the new exclusion folder directory path appear. This will allow any program running from this folder to avoid antivirus scans which may affect mining, but not affect the security of the rest of your system.
+Another thing to consider doing at this point is taking advantage of a tool known as "O+O Windows Shutup." This removes certain tasks that Windows uses to track you. This adds security to your computer, as well as freeing up a bit of your processor to mine more efficiently than would otherwise be running these tasks.
+
+O+O Windows Shutup for removing Windows bloatware:
+https://www.oo-software.com/en/shutup10
+
+Windows 10 Debloater
+https://github.com/Sycnex/Windows10Debloater
+
+Now that you have created an area within your files to safely store and run mining software, download SRBMiner.
+
+## SRBMiner for GPUs
+Download and extract SRBMiner into the exclusion folder you created earlier
+https://github.com/doktor83/SRBMiner-Multi/releases
+
+After extracting, look in the folder and find the list of example batch files. Right-click to Rename one of the available example batch files anything that you will be able to remember. Then right-click again and click "Edit" (pick notepad if asked). Erase the example text and Copy and Paste from the below code instead. Remember to change the YOUR_WORKER_NAME value to your wallet address. This is how the pool knows where to send your rewards for mining.
+
+```
+setx GPU_MAX_HEAP_SIZE 100
+setx GPU_MAX_USE_SYNC_OBJECTS 1
+setx GPU_SINGLE_ALLOC_PERCENT 100
+setx GPU_MAX_ALLOC_PERCENT 100
+setx GPU_MAX_SINGLE_ALLOC_PERCENT 100
+@echo off
+cd %~dp0
+cls
+SRBMiner-MULTI.exe --disable-cpu --algorithm memehash --pool stratum-eu.pepepow.foztor.net:3332 --tls true --wallet YOUR_WALLET_ADDRESS --password RIG_NAME
+pause
+```
+
+Once this is complete, hit "File" and "Save as." Notepad will default the batch file as a text file, which will not run and instead will just open as a text file. To correct this you must change the "save as type" from .txt to "All files" or the batch file will not work. (see the example image below)
+Remember to "save as" the batch file as "all files"
+
+You can right-click on the batch file, and send it to the desktop (shortcut) to create a shortcut link on your desktop to your GPU mining software. Close out of everything and attempt to start the shortcut batch file on your desktop. It should start the SRBMiner in a command line box. It may ask you to accept some internet connection settings. The software will spit out a lot of information, so take a few minutes to observe. If everything was configured correctly you should see that your miner has connected to the pool, is hashing, and is also sometimes finding shares.
+
+Now that you know the connection and software works, you may want to spend some time to more finely tune your GPU devices.
+The best tool to adjust your GPU clock rate on Windows would be MSI afterburner for both AMD and NVIDIA:
+https://www.msi.com/Landing/afterburner/graphics-cards
+
+This part may require a lot of testing to make perfect. At the end of this guide, there are social links where you can get more detailed assistance with your specific hardware.
+
+After you are satisfied with your clock rates and can confirm you are hashing, head over to "https://pepepow.foztor.net/" and type in your wallet address under the "wallet" tab. You will see a variety of detailed information, primarily your workers and your percentage of shares submitted. Once the pool has found a block, you will earn a share of the rewards!
+
+## Conclusion:
+You made it to the end, great job! You are now mining with your GPU , maximizing the profitability of your computer's hardware!
+
+Click here to learn how to mine with your CPU and get paid in PEPEW
+PepePoW Discord: https://discord.gg/9BeGufq9ft
+SRBMiner Discord: https://discord.gg/az6wFepY8s
+
+How to sell your accumulated coins? Try XeggeX
+https://xeggex.com?ref=64a1904880f795c0d59a288b
+XeggeX Discord: https://discord.gg/dEAyJEHdHR
+
+Did you find this article to be informative? You should consider supporting decentralized initiatives by rewarding those who contribute to the ecosystem. By using the refcodes in this guide or even contributing a small donation - you would give me a big smile!
+
+My PePePoW Donation Address:
+ PT1JWC8cS89z3KFwRL46HS9ghjzSEJsYZ1
+Don't have any PEPEW yet?
+ bitcoin: bc1q5elx437hnz0l9qau8afxj9l234ps6lj60tr35s
+ litecoin: ltc1qdyt7augpzdkk4fzvaerrj3ren8pvvjhvy8cyz6
+ bitcoincash: qr609gkq7mnjqzh9j0nwjgy3xl4l6ezzmq7xj43mm4
+ dogecoin: DCnXGACgdYoNngjoufPTQ1DDNk71qGBW9D
+ monero: 86nye5vAP182z5tcDcmmapKsiFSNHnbyeGb7cDPnC4z4Bx1nfkVtAdEZwKy4Mde1TfNAaLuxc944kFA8QAXuE7gsHJkDefL
diff --git a/doc/pepeproofofworkstory.md b/doc/pepeproofofworkstory.md
new file mode 100644
index 0000000..06c3f8f
--- /dev/null
+++ b/doc/pepeproofofworkstory.md
@@ -0,0 +1,186 @@
+# The PEPE Proof of Work Story
+
+## English
+ The PEPE POW story is about decentralization and the utility of code as law. Find out how the PEPEW network freed itself of central authority.
+
+ PEPE POW layer 1 blockchain core originated in early May 2023 in the form of a cryptocurrency code fork (DASH) produced by an unknown developer. Likely using AI-assisted tools and hoping to capitalize on the popularity of the PEPE Ethereum token which was growing (at the time) - a frog-themed dash fork was produced that claimed to one day rival doge-coin as the “second best” proof of work meme coin.
+
+ In the post-ETH-merge mining environment of 2023, the few miners who had not yet sold their cards or shut down their operations were desperate for something to believe in. They checked mining pool stats and Bitcoin talk forum every morning to find the newest coins – as the competition was so fierce and the rewards so sparsely distributed.
+
+ PEPE POW billed itself as a community coin which would align itself with the greats among decentralized meme coins. As the miners began to discover this new coin, the community grew and began to form a life of its own. A tipping point came when multiple commercial mining software developers released new mining software that supported the PEPE Pow algorithm “memehash” for GPUs.
+
+ Though the project was PEPE “Proof of Work” it included additional features borrowed from DASH, such as a proof of stake governance layer (which rewards master node owners with part of the block rewards) and of course, a developer fee. With the availability of commercial mining software, more pools and more miners became interested.
+
+ Though there was a developer fee on a “community coin” – the network participants were still motivated and interest grew rapidly, at a point doing so exponentially. As more and more miners began to onboard, the network hash rate grew and soon PEPE POW was on the top of the hashrate no charts as a top-performing proof of work asset for home graphics cards.
+
+ As the joy from the peaks subsided, real issues began to emerge. The code was botched, resulting in issues maintaining consensus. As the need for development rose, the original developer became quieter until eventually disappearing altogether, unable or unwilling to fix the issues of the chain, likely already selling everything he had earned.
+
+ Leaving the chain for dead, the community however refused to die. A band of organized community members, including a willing developer who was motivated to help, began the process of slowly taking over the chain. Exchanges and pool owners were notified of the change and more than once it seemed that there was no hope.
+
+ Like rescuing a patient from a certain death, many members rushed to the aid of the coin – proving that there was much more value in the meme cryptocurrency protocol than what was dumped on the market. With the proper work being done correctly (including the help of many contributors) the community was able to fork PEPE POW into a new master branch.
+
+ The original developer fee was removed and the chain managed to survive. PEPE POW now exists as a testament to the effectiveness of decentralization, specifically in the context of using computer code to solve the “Byzantine general” problem. PEPEW is able to survive with competing interests all existing together cohesively, “trustlessly.” (operating confidently with trust, without actually trusting any individual to be honest)
+
+ PEPEW has shown that open-source systems such as Bitcoin can be used by individuals to establish and maintain trustless decentralized networks without the need for a central authority, or a developer to skim from the top. Using the governance feature of smart nodes to incentivize node holders, as well as the ability to mine and earn using a home computer – PEPE Proof of Work is set to become the next best Proof of Work Memecoin!
+
+## Spanish
+
+¡Crea una cuenta en Github para comenzar a contribuir con esta traducción! Comuníquese con el equipo de desarrollo si necesita más información.
+
+## Finnish
+
+Luo tili Githubissa, jotta voit alkaa osallistua tähän käännökseen! Ota yhteyttä kehitystiimiin, jos tarvitset lisätietoja.
+
+## Swahili
+
+Fungua akaunti kwenye Github ili kuanza kuchangia tafsiri hii! Tafadhali wasiliana na timu ya maendeleo ikiwa unahitaji maelezo zaidi.
+
+## Amharic
+
+ለዚህ ትርጉም ማበርከት ለመጀመር በ Github ላይ መለያ ይፍጠሩ! ተጨማሪ መረጃ ከፈለጉ እባክዎን የልማት ቡድኑን ያግኙ።
+
+## Yoruba
+
+Ṣẹda akọọlẹ kan lori Github lati bẹrẹ idasi si itumọ yii! Jọwọ kan si ẹgbẹ idagbasoke ti o ba nilo alaye diẹ sii.
+
+## Hindi
+
+इस अनुवाद में योगदान शुरू करने के लिए Github पर एक खाता बनाएँ! यदि आपको अधिक जानकारी चाहिए तो कृपया विकास टीम से संपर्क करें।
+
+## Urdu
+
+اس ترجمے میں تعاون شروع کرنے کے لیے Github پر ایک اکاؤنٹ بنائیں! اگر آپ کو مزید معلومات درکار ہوں تو براہ کرم ترقیاتی ٹیم سے رابطہ کریں۔
+
+## Bengali
+
+এই অনুবাদে অবদান রাখা শুরু করতে Github-এ একটি অ্যাকাউন্ট তৈরি করুন! আপনার আরও তথ্যের প্রয়োজন হলে অনুগ্রহ করে উন্নয়ন দলের সাথে যোগাযোগ করুন।
+
+## Russian
+ История PEPE POW посвещена децентрализации и полезности кода как закона. Узнайте о том, как сеть PEPEW освободилась от центральной власти.
+
+ Ядро блокчейна PEPE POW Layer 1 возникло в начале Мая 2023 года в виде форка кода криптовалюты(DASH), которое было создано неизвестным разработчиком. Вероятно, используя инструменты с поддержкой искусственного интеллекта и надеясь извлечь выгоду из популярности токена PEPE Ethereum, которая росла (в то время) - был выпущен форк dash на тему лягушки, который претендовал на то, чтобы однажды конкурировать с doge-coin как “второй лучший” мем-коин с доказательством работы.
+
+ В условиях пост-эфирного слияния в 2023 году, те немногие майнеры, что еще не продали свои карты или не прекратили свою деятельность, отчаянно искали что-то, во что можно было бы верить. Они каждое утро проверяли майнинг пулы и посещали форумы, посвященные биткойну в поисках новых монет - поскольку конкуренция была очень жестокой, а награды распределялись так скудно.
+
+ PEPE POW объявила себя как монета сообщества, которая должна была стать одной из величайших среди децентрализованных мем-коинов. По мере того, как майнеры открывали для себя эту новую монету, сообщество росло и начинало жить своей собственной жизнью. Переломный момент наступил тогда, когда несколько разработчиков коммерческого программного обеспечения для майнинга выпустили новое ПО для майнинга, поддерживающее PEPE POW алгоритм "memhash" для графических карт.
+
+ Хотя проект и носил название PEPE "Proof of Work"(доказательство работы), он включал в себя дополнительные функции, которые были заимствованы у DASH, такие как уровень управления Proof of Stake (который вознаграждал владельцев мастер нод частью вознаграждения за блок) и, конечно же, плату разработчику. С появлением коммерческого программного обеспечения для майнинга, им заинтересовалось все больше пулов и майнеров.
+
+ И не смотря на то, что с "монеты сообщества" шла плата разработчику - участники сети все еще были мотивированы и их интерес рос, в моменте рост был даже в геометрической прогрессии. По мере того, как все больше и больше майнеров подключалось к сети, хешрейт сети увеличивался, и вскоре PEPE POW оказался на вершине чартов hashrate no как наиболее высокоэффективный актив с доказательством работы для домашних видеокарт.
+
+ Когда радость от вершин утихала, начали возникать реальные проблемы. Код был ошибочным, что привело к проблемам с поддержанием консенсуса. По мере того как потребность в разработке возрастала, первоначальный разработчик становился все тише, пока в конце концов не исчез вовсе, не сумев или не пожелав устранить проблемы в цепочке и вероятно, уже продав все, что заработал.
+
+ Оставив блокчейн на погибель, сообщество, однако, отказалось умирать. Группа организованных членов сообщества, включая добровольного разработчика, мотивированного помочь, начала процесс постепенного захвата сети. Биржи и владельцы пулов были уведомлены об изменениях, и не раз казалось, что уже надежды нет.
+
+ Подобно спасению пациента от неминуемой смерти, многие участники бросились на помощь монете, доказав, что в протоколе мем-криптовалюты гораздо больше ценности, чем в том, что было выброшено на рынок. При правильной работе, выполненной соответственно(включая помощь многих участников), сообщество смогло разветвить PEPE POW в новую основную ветку.
+
+ Первоначальная плата разработчику была удалена и цепи удалось выжить. Теперь PEPE POW существует как свидетельство эффективности децентрализации, особенно в контексте использования компьютерного кода для решения проблемы “Византийского генерала”. PEPEW способен выживать, когда конкурирующие интересы существуют вместе, сплоченно, «без доверия».(действуя уверенно и доверяя, фактически не доверяя ни одному человеку, если быть честным)
+
+ PEPEW показал, что системы с открытым исходным кодом, такие как Биткойн, могут использоваться отдельными людьми для создания и поддержания не требующих доверия децентрализованных сетей без необходимости в центральном органе власти или разработчике, который будет руководить сверху. Используя фунции управления смарт-нодами для стимулирования держателей этих узлов, а так же возможность майнить и зарабатывать на домамшнем компьютере - PEPE Proof-of-Work станет следующим лучшим мем-коином с алгоритмом доказательства работы!
+
+## Simple Chinese
+PEPE POW的故事涉及到"去中心化"和"代码即法律"的概念。让我们看看PEPEW网络是如何摆脱中央授权的。
+
+PEPE POW的第1层区块链核心始于2023年5月初,由一个神秘的开发团队使用加密货币代码分叉(Dash)开发。该开发人员可能使用了人工智能工具,并希望利用当时正在增长的PEPE以太坊代币的热度,创建了一个以青蛙为主题的Dash分叉,声称将有一天超越Dogecoin成为“第二大”工作量证明的迷因币。
+
+在2023年5月以太坊合并后,那些尚未出售显卡或关闭挖矿业务的少数幸存的矿工,迫切需要一些可以信任的东西。他们每天早上都会查看矿池统计数据和Bitcoin Talk论坛,以寻找最新的币。但由于竞争非常激烈,导致奖励也非常稀少。
+
+PEPE POW以成为“社区币”为目标,向“去中心化迷因币”中的佼佼者看齐。随着矿工们开始发现这种新币,社区不断壮大,并开始形成自己的生命。当多个商业挖矿软件开发人员发布了支持PEPE Pow GPU挖矿软件(算法“memehash”),一个转折点到来了。
+
+尽管PEPE POW是一种“工作量证明”(Proof of Work)加密货币,但它也包含了一些从Dash借用来的功能,例如“持有证明”(proof of stake)的治理层(将部分区块奖励奖励给主节点拥有者)和开发人员费用。随着商业挖矿软件的可用性,更多的矿池和矿工开始对其产生兴趣。
+
+尽管PEPE POW收取开发人员费用,但网络参与者仍然充满动力,兴趣迅速增长。随着越来越多的矿工加入,网络哈希率不断增长,PEPE POW很快就成为GPU家用显卡最佳的工作量证明资产之一,并在哈希率排行榜上名列前茅。
+
+随着高峰期的喜悦逐渐消退,真正的问题开始出现。代码出现了一些问题,导致共识受到威胁。随着开发需求的增加,原始开发人员变得越来越沉默,最终消失。他可能无法或不愿意解决“链”的问题,也有可能已经卖掉了所有他赚到的钱。
+
+尽管“链”被抛下不理,但社区成员却不接受链的死亡消息。一群社区成员和一位开发人员,开始接管“链”的过程。交易所和矿池经营者被告知了这一变化,而且不止一次,似乎没有希望了。
+
+就像从死亡中抢救病人一样,许多成员赶紧为这个币提供帮助,证明了这个迷因加密货币的价值。在许多贡献者的帮助下,随着一件件正确工作的完成,社区最终将PEPE POW分叉到一个新的主分支。
+
+原来的“开发人员费用”已被删除,并且“链”得以存活下来。PEPE POW现在的存在,证明了去中心化的有效性,特别是在解决“拜占庭将军”问题方面。PEPEW能够在彼此竞争共存的情况下“无信任”地运营(没有真正信任任何人诚实的情况下自信地运营)。
+
+PEPEW已经显示,像比特币这样的开源系统可以用于个人建立和维护去中心化网络,无需中央授权或开发人员获利。通过使用智能节点的治理功能来奖励节点拥有者,以及使用家用电脑挖矿和赚钱的能力,PEPE POW将成为下一个最好的“工作量证明”迷因币!
+## Traditional Chinese
+PEPE POW 的故事是關於「去中心化」和「程式碼即法律」的概念。讓我們來看看PEPEW 網路是如何擺脫中央授權的。
+
+PEPE POW 的第 1 層區塊鏈核心始於 2023 年 5 月初,由一個神祕開發人員團隊使用加密貨幣代碼分叉(Dash)開發。該開發人員可能使用的是人工智慧工具,並希望利用當時正在增長的 PEPE 以太坊代幣的熱度,創建了一個以青蛙為主題的 Dash 分叉,聲稱將有一天超越 Dogecoin 成為「第二大」工作量證明的迷因幣。
+
+在 2023 年 5 月以太坊合併後,那些尚未出售顯卡或關閉挖礦業務的少數倖存的礦工,迫切需要一些可以信任的東西。他們每天早上都會查看礦池統計數據和 Bitcoin Talk 論壇,以尋找最新的幣。但因為競爭非常激烈,導致獎勵也非常稀少。
+
+PEPE POW 以成為「社區幣」為目標,向「去中心化迷因幣」中的佼佼者看齊。隨著礦工們開始發現這種新幣,社區不斷壯大,並開始形成自己的生命。當多個商業挖礦軟體開發人員發布了支持 PEPE Pow GPU 挖礦軟體 (演算法「memehash」),一個轉折點到來了。
+
+儘管 PEPE POW 是一種「工作量證明」(Proof of Work) 加密貨,它但它也包含了一些從 Dash 借用來的功能,例如「持有證明」(proof of stake) 的治理層(將部分區塊獎勵獎勵給主節點擁有者)和開發人員費用。隨著商業挖礦軟件的可用性,更多的礦池和礦工開始對其產生興趣。
+
+儘管 PEPE POW 收取開發人員費用,但網路參與者仍然充滿動力,興趣迅速增長。隨著越來越多的礦工加入,網絡哈希率 (Hash rate) 不斷增長,PEPE POW 很快就成為 GPU 家用顯卡最佳的工作量證明資產之一,且在哈希率排行榜上名列前茅。
+
+隨著高峰期的喜悅逐漸消退,真正的問題開始出現。程式碼出現了一些問題,導致共識受到威脅。隨著開發需求的增加,原始開發人員變得越來越沉默,最終消失。他可能無法或不願意解決「鏈」的問題,也有可能已經賣掉了所有他賺到的錢。
+
+儘管「鏈」被拋下不理,但社群成員卻不接受鏈的死亡消息。一群社區成員和一位開發人員,開始接管「鏈」的過程。交易所和礦池經營者被告知了這一變化,而且不止一次,似乎沒有希望了。
+
+就像從死亡中搶救病人一樣,許多成員趕緊為這個幣提供幫助,證明了這個迷因加密貨幣的價值。在許多貢獻者的幫助下,隨著一件件正確工作的完成,社群最終將 PEPE POW 分叉到一個新的主分支。
+
+原來的「開發人員費用」已被刪除,並且「鏈」得以存活下來。PEPE POW 現在的存在,證明了去中心化的有效性,特別是在解決「拜占庭將軍」問題方面。PEPEW 能夠在彼此競爭共存的情況下「無信任」地運營(沒有真正信任任何人誠實的情況下自信地運營)。
+
+PEPEW 已經顯示,像比特幣這樣的開源系統可以用於個人建立和維護去中心化網絡,無需中央授權或開發人員獲利。通過使用智慧節點的治理功能來獎勵節點擁有者,以及使用家用電腦挖礦和賺錢的能力,PEPE POW 將成為下一個最好的「工作量證明」迷因幣!
+
+## Filipino
+
+Gumawa ng account sa Github para magsimulang mag-ambag sa pagsasaling ito! Mangyaring makipag-ugnayan sa development team kung kailangan mo ng higit pang impormasyon.
+
+## Thai
+
+PEPE POW เป็นเครือข่ายบล็อคเชนที่ไร้ศูนย์กลาง ซึ่งหมายความว่าไม่มีบุคคลหรือองค์กรใดที่จะสามารถควบคุมเครือข่ายได้ แต่เครือข่ายจะถูกควบคุมโดยสมาชิกของเครือข่ายเองทั้งหมด
+
+PEPE POW เริ่มต้นจากการเป็นฟอร์คของ DASH ซึ่งเป็นสกุลเงินดิจิทัลอีกสกุลหนึ่ง ซึ่งถูกสร้างขึ้นโดยนักพัฒนารายหนึ่งที่ไม่ทราบชื่อ นักพัฒนารายนี้ได้ใช้เครื่องมือที่ใช้ปัญญาประดิษฐ์ในการสร้างฟอร์คของ DASH ขึ้นมา และตั้งชื่อว่า PEPE POW โดยหวังว่าจะใช้ประโยชน์จากความนิยมของโทเค็น PEPE บน Ethereum ซึ่งกำลังเติบโตในขณะนั้น
+
+ในช่วงหลังการรวม ETH ซึ่งเป็นการอัปเกรดเครือข่าย Ethereum ที่ทำให้การขุด ETH ทำได้ยากขึ้น ทำให้คนขุดหลายคนหันมาขุดสกุลเงินดิจิทัลอื่นๆ แทน PEPE POW จึงเป็นหนึ่งในสกุลเงินดิจิทัลที่คนขุดให้ความสนใจ
+
+PEPE POW เป็นสกุลเงินดิจิทัลที่ใช้ระบบ Proof of Work ซึ่งหมายความว่าคนขุดจะต้องใช้คอมพิวเตอร์ที่มีประสิทธิภาพสูงในการขุด PEPE POW นอกจากนี้ PEPE POW ยังมีคุณสมบัติอื่นๆ ที่ยืมมาจาก DASH เช่น ระบบ Proof of Stake Governance Layer ซึ่งจะให้รางวัลกับผู้ถือ Master Node และค่าธรรมเนียมนักพัฒนา
+
+ในช่วงแรก PEPE POW ได้รับความสนใจจากคนขุดเป็นจำนวนมาก ทำให้แฮชเรตของเครือข่ายเพิ่มสูงขึ้นอย่างรวดเร็ว อย่างไรก็ตาม หลังจากนั้นไม่นาน ก็ได้มีปัญหาเกิดขึ้นกับโค้ดของ PEPE POW ซึ่งทำให้เครือข่ายไม่สามารถรักษาฉันทามติได้ นักพัฒนาเดิมของ PEPE POW ได้หายตัวไป ทำให้ไม่มีใครสามารถแก้ไขปัญหาของเครือข่ายได้
+
+อย่างไรก็ตาม ชุมชนของ PEPE POW ไม่ได้ยอมแพ้ พวกเขาได้รวมตัวกันและช่วยกันแก้ไขปัญหาของเครือข่ายจนสำเร็จ และได้ทำการฟอร์ค PEPE POW ไปเป็นเครือข่ายใหม่ ซึ่งมีชื่อว่า PEPE POW Master Branch
+
+PEPE POW Master Branch ได้ลบค่าธรรมเนียมนักพัฒนาออกไป และเครือข่ายก็สามารถกลับมาทำงานได้อีกครั้ง PEPE POW Master Branch จึงเป็นตัวอย่างที่ดีเยี่ยมของพลังแห่งการไร้ศูนย์กลาง แม้ว่านักพัฒนาเดิมจะหายตัวไป แต่ชุมชนก็ยังสามารถมาช่วยกันแก้ไขปัญหาและรักษาเครือข่ายให้คงอยู่ต่อไปได้
+
+PEPE POW Master Branch เป็นเครือข่ายที่ไร้ศูนย์กลางอย่างแท้จริง สมาชิกของเครือข่ายสามารถเปลี่ยนแปลงโค้ดและระบบการบริหารจัดการได้โดยไม่ต้องพึ่งพานักพัฒนาหรือหน่วยงานใดๆ ทำให้ PEPE POW เป็นเครือข่ายที่น่าเชื่อถือและปลอดภัย
+
+## Turkish
+
+Bu çeviriye katkıda bulunmaya başlamak için Github'da bir hesap oluşturun! Daha fazla bilgiye ihtiyaç duyarsanız lütfen geliştirme ekibiyle iletişime geçin.
+
+## French
+
+Créez un compte sur Github pour commencer à contribuer à cette traduction ! Veuillez contacter l'équipe de développement si vous avez besoin de plus d'informations.
+
+## German
+
+Erstellen Sie ein Konto auf Github, um zu dieser Übersetzung beizutragen! Bitte wenden Sie sich an das Entwicklungsteam, wenn Sie weitere Informationen benötigen.
+
+## Indonesian
+
+Buat akun di Github untuk mulai berkontribusi pada terjemahan ini! Silakan hubungi tim pengembangan jika Anda memerlukan informasi lebih lanjut.
+
+## Danish
+
+Opret en konto på Github for at begynde at bidrage til denne oversættelse! Kontakt venligst udviklingsteamet, hvis du har brug for mere information.
+
+## Arabic (عربي)
+
+تتحدث قصة PEPE POW عن التفكك وفائدة الشفرة كقانون. اكتشف كيف تمكنت شبكة PEPEW من تحرير نفسها من السلطة المركزية.
+ظهرت تقنية سلسلة كتل PEPE POW الأساسية في الطبقة 1 في أوائل مايو 2023 على شكل فورك لشفرة العملة المشفرة (DASH) المنتجة من قبل مطور غير معروف. ومن المحتمل أن يكون المطور استخدم أدوات مساعدة بالذكاء الاصطناعي ويأمل في الاستفادة من شعبية عملة Ethereum PEPE التي كانت تتزايد في ذلك الوقت - تم إنتاج فورك مستند إلى الضفدع يهدف إلى أن يكون في يوم ما منافسًا لعملة Doge-coin باعتبارها عملة تداول تذكارية ثانوية "الأفضل ثانيًا" بناءً على دليل العمل.
+في بيئة التعدين بعد دمج ETH في عام 2023، القليل من المُعدِّنين الذين لم يبيعوا بطاقاتهم بعد أو أغلقوا عملياتهم كانوا يبحثون عن شيء يؤمنون به. كانوا يتحققون من إحصاءات تجمع التعدين والمنتدى الخاص بـ "Bitcoin talk" كل صباح للعثور على العملات الجديدة - نظرًا لأن المنافسة كانت شرسة جدًا وتوزيع الأرباح كان قليلًا.
+ادعت PEPE POW أنها عملة مجتمعية ستُوازن نفسها مع العملات التداولية التذكارية المركزية الرائدة. مع اكتشاف المُعدِّنين لهذه العملة الجديدة، نمت المجتمع وبدأ في اكتساب حياة خاصة به. وجاءت نقطة تحول عندما أصدر مطورو برامج التعدين التجارية العديدة برامج تعدين جديدة تدعم خوارزمية PEPE Pow" memehash" على وحدات المعالجة الرسومية.
+
+على الرغم من أن المشروع كان يستخدم نموذج "دليل العمل" للـ PEPE، إلا أنه كان يتضمن ميزات إضافية مستلهمة من DASH، مثل طبقة حوكمة ملكية الحصة (التي تكافئ أصحاب العقدة الرئيسية بجزء من مكافآت الكتلة)، وبالطبع رسوم المطور. مع توافر برامج التعدين التجارية، أصبح المزيد من التجمعات والمُعدِّنين مهتمين.
+على الرغم من وجود رسوم مطور على "عملة مجتمعية"، كانالمشاركون في الشبكة لا يزالون متحمسين وينمو الاهتمام بسرعة، وفي بعض الأحيان بشكل تصاعدي. مع انضمام المزيد والمزيد من المُعدِّنين، ارتفعت معدلات الهاش في الشبكة وأصبحت PEPE POW في أعلى قائمة الهاشريت كأصل عملة عمل جيدة لبطاقات الرسوم المنزلية.
+ومع انحسار الفرح من الذروة، بدأت المشاكل الحقيقية في الظهور. تعاني الشفرة من مشاكل تتعلق بالتوافق. مع ارتفاع الحاجة إلى التطوير، أصبح المطور الأصلي أقل نشاطًا حتى اختفى تمامًا، غير قادر أو غير راغب في إصلاح مشاكل السلسلة وربما قد قام ببيع كل ما ربحه بالفعل.
+
+رغم ترك السلسلة للموت، رفض المجتمع أن يموت. بدأ فريق مكون من أعضاء منظمين في المجتمع، بما في ذلك مطور مستعد للمساعدة، في عملية تولي تدريجية للسيطرة على السلسلة. تم إبلاغ بورصات العملات وأصحاب التجمعات بالتغيير، وفي أكثر من مرة بدا أنه لا يوجد أمل.
+
+مثل إنقاذ مريض من الموت المحتوم، تسابق العديد من الأعضاء لدعم العملة - مما يثبت أن هناك قيمة أكبر في بروتوكول العملة التذكارية من ما تم تفريغه في السوق. مع إجراء العمل السليم بشكل صحيح (بما في ذلك مساعدة العديد من المساهمين)، تمكن المجتمع من فورك PEPE POW إلى فرع رئيسي جديد.
+
+تمت إزالة رسوم المطور الأصلية وتمكنت السلسلة من البقاء على قيد الحياة. تعد PEPE POW الآن شهادة على فعالية التفكيك، على وجه التحديد في سياق استخدام الشفرة الحاسوبية لحل مشكلة "الجنرال البيزنطي". يمكن لـ PEPEW البقاء مع وجود مصالح منافسة تعمل معًا بتماسك "بدون الحاجة إلى الثقة الفعلية في أي فرد ليكون صادقاً".
+
+أظهرت PEPEW أن الأنظمة مفتوحة المصدر مثل بيتكوين يمكن استخدامها بواسطة الأفراد لإنشاء والحفاظ على شبكات مفككة بدون الحاجة إلى سلطة مركزية أو مطور للحصول على جزء من الأرباح. باستخدام ميزة الحوكمة في العقد الذكية لتحفيز حاملي العقدة، بالإضافة إلى القدرة على التعدين والكسب باستخدام جهاز الكمبيوتر المنزلي - ستصبح PEPE Proof of Work أفضل عملة تذكارية ثانوية تعتمد على دليل العمل في المستقبل!
+
diff --git a/doc/runningamasternode.md b/doc/runningamasternode.md
new file mode 100644
index 0000000..805667a
--- /dev/null
+++ b/doc/runningamasternode.md
@@ -0,0 +1,91 @@
+## Running a Masternode
+
+Once you have accumulated 10,000,000 PEPEW you are eligible to become a participant in the network governance - and earn part of the block reward.
+
+### Linux wallet masternode:
+First, enable port 8833
+```
+sudo ufw allow 8833/tcp
+```
+
+To download the latest wallet version (2.3.1.3) and unpack it from a ubuntu command line terminal, use the following
+```
+mkdir pepew2313 &&
+sudo chmod +x -R pepew2313 &&
+cd pepew2313 &&
+wget -c https://github.com/MattF42/PePe-core/releases/download/v2.3.1.3/PEPEPOW-v2.3.1.3--release-x86_64-linux-gnu.tar.gz -O - | tar -xz &&
+cd &&
+sudo chmod +x -R pepew2313 &&
+cd pepew2313
+```
+
+#### **1) Create a new wallet and transfer an exact total of 10,000,000 PEPEW!**
+*(Note: It has to be 10M no more or less! You must also wait for the Block confirmation to be greater than 15)*
+You may use the GUI to receive your coins, but then you need to run the "PEPEWd" before proceeding. You can do so in the terminal with the following command
+```
+~/pepew2313/PEPEPOWd
+```
+
+#### **2) Synchronize the block chain**
+*(Note: On GUI GNOME you can right-click within the folder and select "open in terminal")*
+
+Before you can start your node, your daemon must be fully synced. To check how many blocks you already have you can use
+```
+~/pepew2313/PEPEPOW-cli getblockcount
+```
+
+When you are fully updated you can confirm your balance is exactly 10,000,000 by running the following command
+```
+~/pepew2313/PEPEPOW-cli getbalance
+```
+
+Once you have done that, you are ready to get your genkey which will be used to setup your masternode.
+```
+~/pepew2313/PEPEPOW-cli masternode outputs &&
+~/pepew2313/PEPEPOW-cli masternode genkey
+```
+
+#### **3) Open the PEPEPOW.conf file and write to it:**
+
+Open PEPEPOW.conf
+```
+sudo nano ~/.PEPEPOWcore/PEPEPOW.conf
+```
+
+Write the following
+```
+Example:
+masternode=1
+masternodeprivkey=PUTHEREHTHESTRING_YOU_GET_FROM_GENKEY_NOT_THIS_ACTUAL_STRING
+externalip=YOUR.IP.ADDR.RESS_NOT_THIS_ACTUAL_STRING
+```
+*(Note: The IP address of the node server must be a public IP address, and port 8833 must be enabled on the server!)*
+
+#### **4) Open the masternode.conf file and write to it:**
+
+Open masternode.conf
+```
+sudo nano ~/.PEPEPOWcore/masternode.conf
+```
+
+Write the following
+```
+Example:
+mynodename ip:8833 masternodeprivkey masternode outputs[1] masternode outputs[2]
+pepepow YOUR.IP.ADDR.RESS:8833 PUTHEREHTHESTRING_YOU_GET_FROM_GENKEY_NOT_THIS_ACTUAL_STRING THE_FIRST_LONG_HEX_STRING_YOU_GET_FROM_MASTERNODEOUPUTS THE_NUMBER_YOU_GET_FROM_OUTPUTS
+```
+
+#### **5) Restart wallet**
+```
+sudo reboot
+```
+
+#### **6) Start master node:**
+```
+~/pepew2313/PEPEPOW-cli masternode start-all
+```
+
+#### **7) Check Status**
+```
+~/pepew2313/PEPEPOW-cli masternode status
+```
diff --git a/logo.png b/logo.png
new file mode 100644
index 0000000..c84dceb
Binary files /dev/null and b/logo.png differ
diff --git a/qa/rpc-tests/test_framework/mininode.py b/qa/rpc-tests/test_framework/mininode.py
index d870e5c..b304acb 100644
--- a/qa/rpc-tests/test_framework/mininode.py
+++ b/qa/rpc-tests/test_framework/mininode.py
@@ -35,7 +35,7 @@
import dash_hash
BIP0031_VERSION = 60000
-MY_VERSION = 70223 # current MIN_PEER_PROTO_VERSION
+MY_VERSION = 70301 # current MIN_PEER_PROTO_VERSION
MY_SUBVERSION = b"/python-mininode-tester:0.0.2/"
MAX_INV_SZ = 50000
diff --git a/share/genbuild.sh b/share/genbuild.sh
old mode 100644
new mode 100755
index a15cb34..e70d921
--- a/share/genbuild.sh
+++ b/share/genbuild.sh
@@ -34,6 +34,7 @@ if [ -e "$(which git 2>/dev/null)" -a "$(git rev-parse --is-inside-work-tree 2>/
LAST_COMMIT_DATE="$(git log -n 1 --format="%ci")"
fi
+SUFFIX="-release"
if [ -n "$DESC" ]; then
NEWINFO="#define BUILD_DESC \"$DESC\""
elif [ -n "$SUFFIX" ]; then
diff --git a/src/chainparams.cpp b/src/chainparams.cpp
index 3a6cc82..1ac0b29 100644
--- a/src/chainparams.cpp
+++ b/src/chainparams.cpp
@@ -128,7 +128,7 @@ class CMainParams : public CChainParams {
consensus.nBudgetPaymentsCycleBlocks = 16616; // ~(60*24*30)/2.6, actual number of blocks per month is 200700 / 12 = 16725
consensus.nBudgetPaymentsWindowBlocks = 100;
consensus.nBudgetProposalEstablishingTime = 60*60*24;
- consensus.nSuperblockStartBlock = 614820; // The block at which 12.1 goes live (end of final 12.0 budget cycle)
+ consensus.nSuperblockStartBlock = 120000; // Was previously 614820 inherited from Dash - surprised it worked at all prior to that - Foztor Jan 24
consensus.nSuperblockCycle = 16616; // ~(60*24*30)/2.6, actual number of blocks per month is 200700 / 12 = 16725
consensus.nGovernanceMinQuorum = 10;
consensus.nGovernanceFilterElements = 20000;
@@ -190,18 +190,35 @@ class CMainParams : public CChainParams {
assert(consensus.hashGenesisBlock == uint256S("0x00000a308cc3b469703a3bc1aa55bc251a71c9287d7b413242592c0ab0a31f13"));
assert(genesis.hashMerkleRoot == uint256S("0xe0028eb9648db56b1ac77cf090b99048a8007e2bb64b68f092c03c7f56a662c7"));
- vSeeds.push_back(CDNSSeedData("51.195.44.56", "51.195.44.56"));
- vSeeds.push_back(CDNSSeedData("54.37.10.212", "54.37.10.212"));
- vSeeds.push_back(CDNSSeedData("8.218.61.142", "8.218.61.142"));
- vSeeds.push_back(CDNSSeedData("8.210.212.129", "8.210.212.129"));
- vSeeds.push_back(CDNSSeedData("8.210.125.59", "8.210.125.59"));
- vSeeds.push_back(CDNSSeedData("8.217.94.169", "8.217.94.169"));
- vSeeds.push_back(CDNSSeedData("47.242.194.153", "47.242.194.153"));
- vSeeds.push_back(CDNSSeedData("8.217.116.73", "8.217.116.73"));
- vSeeds.push_back(CDNSSeedData("8.217.92.31", "8.217.92.31"));
- vSeeds.push_back(CDNSSeedData("8.217.89.95", "8.217.89.95"));
- vSeeds.push_back(CDNSSeedData("8.217.90.111", "8.217.90.111"));
- vSeeds.push_back(CDNSSeedData("8.217.38.226", "8.217.38.226"));
+ vSeeds.push_back(CDNSSeedData("101.37.28.146", "101.37.28.146"));
+ vSeeds.push_back(CDNSSeedData("109.205.212.243", "109.205.212.243"));
+ vSeeds.push_back(CDNSSeedData("121.36.243.160", "121.36.243.160"));
+ vSeeds.push_back(CDNSSeedData("132.145.29.145", "132.145.29.145"));
+ vSeeds.push_back(CDNSSeedData("141.147.71.107", "141.147.71.107"));
+ vSeeds.push_back(CDNSSeedData("141.98.90.157", "141.98.90.157"));
+ vSeeds.push_back(CDNSSeedData("172.104.5.209", "172.104.5.209"));
+ vSeeds.push_back(CDNSSeedData("181.45.56.1", "181.45.56.1"));
+ vSeeds.push_back(CDNSSeedData("182.43.92.100", "182.43.92.100"));
+ vSeeds.push_back(CDNSSeedData("186.12.200.15", "186.12.200.15"));
+ vSeeds.push_back(CDNSSeedData("192.46.215.125", "192.46.215.125"));
+ vSeeds.push_back(CDNSSeedData("5.188.238.193", "5.188.238.193"));
+ vSeeds.push_back(CDNSSeedData("5.9.151.50", "5.9.151.50"));
+ vSeeds.push_back(CDNSSeedData("51.161.131.90", "51.161.131.90"));
+ vSeeds.push_back(CDNSSeedData("54.39.49.96", "54.39.49.96"));
+ vSeeds.push_back(CDNSSeedData("173.249.12.11", "173.249.12.11"));
+ vSeeds.push_back(CDNSSeedData("207.180.227.207", "207.180.227.207"));
+ vSeeds.push_back(CDNSSeedData("167.86.91.2", "167.86.91.2"));
+ vSeeds.push_back(CDNSSeedData("167.86.87.54", "167.86.87.54"));
+ vSeeds.push_back(CDNSSeedData("167.86.85.148", "167.86.85.148"));
+ vSeeds.push_back(CDNSSeedData("167.86.124.240", "167.86.124.240"));
+ vSeeds.push_back(CDNSSeedData("18.215.33.154", "118.215.33.154"));
+ vSeeds.push_back(CDNSSeedData("193.122.107.175", "193.122.107.175"));
+ vSeeds.push_back(CDNSSeedData("23.239.15.91", "23.239.15.91"));
+ vSeeds.push_back(CDNSSeedData("132.145.54.241", "132.145.54.241"));
+ vSeeds.push_back(CDNSSeedData("2600:1f18:da7:7900:e0e:7371:c000:89", "2600:1f18:da7:7900:e0e:7371:c000:89"));
+ vSeeds.push_back(CDNSSeedData("2603:c020:c00c:ab7e:fb40:f9f6:8078:4aa8", "2603:c020:c00c:ab7e:fb40:f9f6:8078:4aa8"));
+
+
// PEPEPOW addresses start with 'X'
base58Prefixes[PUBKEY_ADDRESS] = std::vector(1,55);
@@ -483,4 +500,4 @@ void SelectParams(const std::string& network)
{
SelectBaseParams(network);
pCurrentParams = &Params(network);
-}
\ No newline at end of file
+}
diff --git a/src/chainparamsseeds.h b/src/chainparamsseeds.h
index ed8476b..fd5fcd2 100644
--- a/src/chainparamsseeds.h
+++ b/src/chainparamsseeds.h
@@ -8,8 +8,47 @@
* IPv4 as well as onion addresses are wrapped inside a IPv6 address accordingly.
*/
// ***TODO*** fix generate-seeds.py and REGENERATE
-static SeedSpec6 pnSeed6_main[] = {
+/**
+ * List of fixed seed nodes for the dash network
+ * AUTOGENERATED by contrib/seeds/generate-seeds.py
+ *
+ * Each line contains a 16-byte IPv6 address and a port.
+ * IPv4 as well as onion addresses are wrapped inside a IPv6 address accordingly.
+ */
+static SeedSpec6 pnSeed6_main[] = {
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x65,0x25,0x1c,0x92}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x6d,0xcd,0xd4,0xf3}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x79,0x24,0xf3,0xa0}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x84,0x91,0x1d,0x91}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8d,0x93,0x47,0x6b}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8d,0x93,0x49,0x3a}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x8d,0x62,0x5a,0x9d}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x92,0xbe,0x17,0x05}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x9d,0xf5,0x2d,0x9a}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa5,0xe3,0xad,0x65}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa7,0xac,0x6b,0x00}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa7,0x63,0xfd,0x48}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xac,0x68,0x05,0xd1}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb2,0x80,0xe3,0x0c}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb5,0x2d,0x38,0x01}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xb6,0x2b,0x5c,0x64}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xba,0x0c,0xc8,0x0f}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xc0,0x2e,0xd7,0x7d}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x23,0xb2,0xb1,0x52}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0xbc,0xee,0xc1}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x09,0x97,0x32}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x33,0xa1,0x83,0x5a}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x36,0x27,0x31,0x60}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xad,0xf9,0x0c,0x0b}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xcf,0xb4,0xe3,0xcf}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa7,0x56,0x5b,0x02}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa7,0x56,0x57,0x36}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa7,0x56,0x55,0x94}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xa7,0x56,0x7c,0xf0}, 8833},
+ {{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0x12,0xd7,0x21,0x9a}, 8833},
+ {{0x26,0x03,0xc0,0x20,0xc0,0x0c,0xab,0x7e,0xfb,0x40,0xf9,0xf6,0x80,0x78,0x4a,0xa8}, 8833},
+ {{0x26,0x00,0x1f,0x18,0x0d,0xa7,0x79,0x00,0x0e,0x0e,0x73,0x71,0xc0,0x00,0x00,0x89}, 8833}
};
static SeedSpec6 pnSeed6_test[] = {
diff --git a/src/governance-object.h b/src/governance-object.h
index 2782bab..6a860e4 100644
--- a/src/governance-object.h
+++ b/src/governance-object.h
@@ -24,8 +24,8 @@ class CGovernanceObject;
class CGovernanceVote;
static const int MAX_GOVERNANCE_OBJECT_DATA_SIZE = 16 * 1024;
-static const int MIN_GOVERNANCE_PEER_PROTO_VERSION = 70206;
-static const int GOVERNANCE_FILTER_PROTO_VERSION = 70206;
+static const int MIN_GOVERNANCE_PEER_PROTO_VERSION = 70301;
+static const int GOVERNANCE_FILTER_PROTO_VERSION = 70301;
static const double GOVERNANCE_FILTER_FP_RATE = 0.001;
diff --git a/src/instantx.h b/src/instantx.h
index bd8859d..03d243e 100644
--- a/src/instantx.h
+++ b/src/instantx.h
@@ -28,7 +28,7 @@ extern CInstantSend instantsend;
static const int INSTANTSEND_CONFIRMATIONS_REQUIRED = 6;
static const int DEFAULT_INSTANTSEND_DEPTH = 5;
-static const int MIN_INSTANTSEND_PROTO_VERSION = 70223;
+static const int MIN_INSTANTSEND_PROTO_VERSION = 70311;
// For how long we are going to accept votes/locks
// after we saw the first one for a specific transaction
diff --git a/src/masternode-payments.cpp b/src/masternode-payments.cpp
index 6445b08..f45ac78 100644
--- a/src/masternode-payments.cpp
+++ b/src/masternode-payments.cpp
@@ -39,95 +39,64 @@ bool IsBlockValueValid(const CBlock& block, int nBlockHeight, CAmount blockRewar
bool isBlockRewardValueMet = (block.vtx[0].GetValueOut() <= blockReward);
if(fDebug) LogPrintf("block.vtx[0].GetValueOut() %lld <= blockReward %lld\n", block.vtx[0].GetValueOut(), blockReward);
-
+ // Not in PEPEPOW It's just a hack
+ // superblocks started
+ // But not DASH superblocks as we know them
+ /*
+ * if(nPrevHeight >= FOUNDATION_HEIGHT){
+ * if(nPrevHeight % 1000 == 998) {
+ * nSubsidy = nSubsidy * 5;
+ * }else if(nPrevHeight % 100 == 87) {
+ * nSubsidy = nSubsidy * 2;
+ * }
+ * }
+ */
+
// we are still using budgets, but we have no data about them anymore,
// all we know is predefined budget cycle and window
const Consensus::Params& consensusParams = Params().GetConsensus();
- if(nBlockHeight < consensusParams.nSuperblockStartBlock) {
- int nOffset = nBlockHeight % consensusParams.nBudgetPaymentsCycleBlocks;
- if(nBlockHeight >= consensusParams.nBudgetPaymentsStartBlock &&
- nOffset < consensusParams.nBudgetPaymentsWindowBlocks) {
- // NOTE: make sure SPORK_13_OLD_SUPERBLOCK_FLAG is disabled when 12.1 starts to go live
- if(masternodeSync.IsSynced() && !sporkManager.IsSporkActive(SPORK_13_OLD_SUPERBLOCK_FLAG)) {
- // no budget blocks should be accepted here, if SPORK_13_OLD_SUPERBLOCK_FLAG is disabled
- LogPrint("gobject", "IsBlockValueValid -- Client synced but budget spork is disabled, checking block value against block reward\n");
- if(!isBlockRewardValueMet) {
- strErrorRet = strprintf("coinbase pays too much at height %d (actual=%d vs limit=%d), exceeded block reward, budgets are disabled",
- nBlockHeight, block.vtx[0].GetValueOut(), blockReward);
- }
+ if(nBlockHeight < FOUNDATION_HEIGHT) {
+ if(!isBlockRewardValueMet) {
+ strErrorRet = strprintf("coinbase PAYS_TOO_MUCH at height %d (actual=%d vs limit=%d), exceeded block reward, only regular blocks are allowed at this height",
+ nBlockHeight, block.vtx[0].GetValueOut(), blockReward);
+ }
return isBlockRewardValueMet;
- }
- LogPrint("gobject", "IsBlockValueValid -- WARNING: Skipping budget block value checks, accepting block\n");
- // TODO: reprocess blocks to make sure they are legit?
- return true;
- }
- // LogPrint("gobject", "IsBlockValueValid -- Block is not in budget cycle window, checking block value against block reward\n");
- if(!isBlockRewardValueMet) {
- strErrorRet = strprintf("coinbase pays too much at height %d (actual=%d vs limit=%d), exceeded block reward, block is not in budget cycle window",
- nBlockHeight, block.vtx[0].GetValueOut(), blockReward);
- }
- return isBlockRewardValueMet;
}
// superblocks started
+ // But not DASH superblocks as we know them - from validation.cpp where the reward is defined....
+ /*
+ * if(nPrevHeight >= FOUNDATION_HEIGHT){
+ * if(nPrevHeight % 1000 == 998) {
+ * nSubsidy = nSubsidy * 5;
+ * }else if(nPrevHeight % 100 == 87) {
+ * nSubsidy = nSubsidy * 2;
+ * }
+ * }
+ */
CAmount nSuperblockMaxValue = blockReward + CSuperblock::GetPaymentsLimit(nBlockHeight);
bool isSuperblockMaxValueMet = (block.vtx[0].GetValueOut() <= nSuperblockMaxValue);
LogPrint("gobject", "block.vtx[0].GetValueOut() %lld <= nSuperblockMaxValue %lld\n", block.vtx[0].GetValueOut(), nSuperblockMaxValue);
-
- if(!masternodeSync.IsSynced()) {
- // not enough data but at least it must NOT exceed superblock max value
- if(CSuperblock::IsValidBlockHeight(nBlockHeight)) {
- if(fDebug) LogPrintf("IsBlockPayeeValid -- WARNING: Client not synced, checking superblock max bounds only\n");
- if(!isSuperblockMaxValueMet) {
- strErrorRet = strprintf("coinbase pays too much at height %d (actual=%d vs limit=%d), exceeded superblock max value",
- nBlockHeight, block.vtx[0].GetValueOut(), nSuperblockMaxValue);
- }
- return isSuperblockMaxValueMet;
- }
- if(!isBlockRewardValueMet) {
- strErrorRet = strprintf("coinbase pays too much at height %d (actual=%d vs limit=%d), exceeded block reward, only regular blocks are allowed at this height",
- nBlockHeight, block.vtx[0].GetValueOut(), blockReward);
- }
- // it MUST be a regular block otherwise
- return isBlockRewardValueMet;
- }
-
- // we are synced, let's try to check as much data as we can
-
- if(sporkManager.IsSporkActive(SPORK_9_SUPERBLOCKS_ENABLED)) {
- if(CSuperblockManager::IsSuperblockTriggered(nBlockHeight)) {
- if(CSuperblockManager::IsValid(block.vtx[0], nBlockHeight, blockReward)) {
- LogPrint("gobject", "IsBlockValueValid -- Valid superblock at height %d: %s", nBlockHeight, block.vtx[0].ToString());
- // all checks are done in CSuperblock::IsValid, nothing to do here
- return true;
- }
-
- // triggered but invalid? that's weird
- LogPrintf("IsBlockValueValid -- ERROR: Invalid superblock detected at height %d: %s", nBlockHeight, block.vtx[0].ToString());
- // should NOT allow invalid superblocks, when superblocks are enabled
- strErrorRet = strprintf("invalid superblock detected at height %d", nBlockHeight);
- return false;
- }
- LogPrint("gobject", "IsBlockValueValid -- No triggered superblock detected at height %d\n", nBlockHeight);
- if(!isBlockRewardValueMet) {
- strErrorRet = strprintf("coinbase pays too much at height %d (actual=%d vs limit=%d), exceeded block reward, no triggered superblock detected",
- nBlockHeight, block.vtx[0].GetValueOut(), blockReward);
- }
- } else {
- // should NOT allow superblocks at all, when superblocks are disabled
- LogPrint("gobject", "IsBlockValueValid -- Superblocks are disabled, no superblocks allowed\n");
- if(!isBlockRewardValueMet) {
- strErrorRet = strprintf("coinbase pays too much at height %d (actual=%d vs limit=%d), exceeded block reward, superblocks are disabled",
- nBlockHeight, block.vtx[0].GetValueOut(), blockReward);
- }
- }
-
- // it MUST be a regular block
- return isBlockRewardValueMet;
+
+ // Superblocks are live
+ if( nBlockHeight % 100 == 88 ) { // Double reward
+ LogPrintf("IsBlockValueValid -- Double SUPERBLOCK_EXPECTED at height %d: %s", nBlockHeight, block.vtx[0].ToString());
+ blockReward = blockReward * 2;
+ }
+ if( nBlockHeight % 1000 == 999 ) { // 5 times reward
+ LogPrintf("IsBlockValueValid -- Quintuple SUPERBLOCK_EXPECTED at height %d: %s", nBlockHeight, block.vtx[0].ToString());
+ blockReward = blockReward * 5;
+ }
+ isBlockRewardValueMet = (block.vtx[0].GetValueOut() <= blockReward);
+ if(!isBlockRewardValueMet) {
+ strErrorRet = strprintf("coinbase PAYS_TOO_MUCH at height %d (actual=%d vs limit=%d), exceeded block reward, and it is not a superblock",
+ nBlockHeight, block.vtx[0].GetValueOut(), blockReward);
+ }
+ return isBlockRewardValueMet;
}
bool IsBlockPayeeValid(const CTransaction& txNew, int nBlockHeight, CAmount blockReward)
@@ -238,21 +207,33 @@ std::string GetRequiredPaymentsString(int nBlockHeight)
}
void CMasternodePayments::FillBloc(CMutableTransaction& txNew, int nBlockHeight, CAmount blockReward){
+ // This is where we pay the foundation Fee as of 2.4
+ //
+
+ if(Params().NetworkIDString() == CBaseChainParams::REGTEST) {
+ static const char* jijin[] = {
+ "ydZdAomNCF3y5oX45vY9g34attJv2RSenG",
+ };
+ CAmount found = GetFoundationPayment(nBlockHeight,0);
+ LogPrintf("CMasternodePayments::FilBloc -- StartFoundation: nBlockHeight=%d, amount=%s addres: %s\n", nBlockHeight, found,jijin[0]);
+ txNew.vout[0].nValue = txNew.vout[0].nValue - found;
+ int pos = 0;
+ LogPrint("mnpayments", "*********************** -- jijin address: %s\n",jijin[pos]);
+ CScript FOUNDER_19_SCRIPT = GetScriptForDestination(CBitcoinAddress(jijin[pos]).Get());
+ txNew.vout.push_back(CTxOut(found, CScript(FOUNDER_19_SCRIPT.begin(), FOUNDER_19_SCRIPT.end())));
+ } else {
+ static const char* jijin[] = {
+ "PHjJrmyDGCAjQFsbiucsC1Ex1nPbu8hgiC",
+ };
+ CAmount found = GetFoundationPayment(nBlockHeight,1);
+ LogPrintf("CMasternodePayments::FilBloc -- StartFoundation: nBlockHeight=%d, amount=%s addres: %s\n", nBlockHeight, found,jijin[0]);
+ txNew.vout[0].nValue = txNew.vout[0].nValue - found;
+ int pos = 0;
+ // LogPrint("mnpayments", "*********************** -- jijin address: %s\n",jijin[pos]);
+ CScript FOUNDER_19_SCRIPT = GetScriptForDestination(CBitcoinAddress(jijin[pos]).Get());
+ txNew.vout.push_back(CTxOut(found, CScript(FOUNDER_19_SCRIPT.begin(), FOUNDER_19_SCRIPT.end())));
+ }
- if(nBlockHeight < FOUNDATION_HEIGHT)
- {
- return;
- }
-
-// CAmount found = FOUNDATION_RATE*GetBlockSubsidy(0,nBlockHeight-1,Params().GetConsensus(), false) / 100;
- CAmount found = FOUNDATION;
- txNew.vout[0].nValue = txNew.vout[0].nValue - found;
-
-
- int pos = 0;
- LogPrint("mnpayments", "*********************** -- jijin address: %s\n",jijin[pos]);
- CScript FOUNDER_19_SCRIPT = GetScriptForDestination(CBitcoinAddress(jijin[pos]).Get());
- txNew.vout.push_back(CTxOut(found, CScript(FOUNDER_19_SCRIPT.begin(), FOUNDER_19_SCRIPT.end())));
}
void CMasternodePayments::Clear()
@@ -294,7 +275,15 @@ void CMasternodePayments::FillBlockPayee(CMutableTransaction& txNew, int nBlockH
masternode_info_t mnInfo;
if(!mnodeman.GetNextMasternodeInQueueForPayment(nBlockHeight, true, nCount, mnInfo)) {
// ...and we can't calculate it on our own
- LogPrintf("CMasternodePayments::FillBlockPayee -- Failed to detect masternode to pay\n");
+ LogPrintf("CMasternodePayments::FillBlockPayee Height: %d -- Failed to detect masternode to pay\n",nBlockHeight);
+ // We need to take the MN share of the DevFee off the mining reward here, otherwise the payment budget will be exceeded
+ int nMainNet = 1;
+ if(Params().NetworkIDString() == CBaseChainParams::REGTEST) {
+ nMainNet = 0;
+ };
+ CAmount foundationPayment = GetFoundationPayment(nBlockHeight,nMainNet);
+ txNew.vout[0].nValue = blockReward - foundationPayment;
+ //
return;
}
// fill payee with locally calculated winner and hope for the best
@@ -303,18 +292,30 @@ void CMasternodePayments::FillBlockPayee(CMutableTransaction& txNew, int nBlockH
// GET MASTERNODE PAYMENT VARIABLES SETUP
CAmount masternodePayment = GetMasternodePayment(nBlockHeight, blockReward);
-
- // split reward between miner ...
- txNew.vout[0].nValue -= masternodePayment;
- // ... and masternode
+ int nMainNet = 1;
+ if(Params().NetworkIDString() == CBaseChainParams::REGTEST) {
+ nMainNet = 0;
+ };
+ CAmount foundationPayment = GetFoundationPayment(nBlockHeight,nMainNet);
+
+ // split reward between miner ... masternode .. and foundation
+
+ if (masternodePayment > 0) {
+ // masternodePayment -= foundationPayment/2; /* This is done in GetMasternodePayment now */
+ // txNew.vout[0].nValue = masternodePayment;
+ txNew.vout[0].nValue = blockReward - (masternodePayment + foundationPayment);
+ } else {
+ txNew.vout[0].nValue = blockReward - foundationPayment;
+ }
txoutMasternodeRet = CTxOut(masternodePayment, payee);
txNew.vout.push_back(txoutMasternodeRet);
+ // .. and foundation
CTxDestination address1;
ExtractDestination(payee, address1);
CBitcoinAddress address2(address1);
-
- LogPrintf("CMasternodePayments::FillBlockPayee -- Masternode payment %lld to %s\n", masternodePayment, address2.ToString());
+ // LogPrintf("CMasternodePayments::FillBlockPayee -- Reward Calculation: nBlockHeight=%d, miner=%d MN=%d DevFee=%d\n", nBlockHeight, txNew.vout[0].nValue, masternodePayment, found);
+ LogPrintf("CMasternodePayments::FillBlockPayee -- Height: %d - Masternode / Mining /Foundation payment %lld / %lld / %lld to MN %s\n", nBlockHeight, masternodePayment, txNew.vout[0].nValue, foundationPayment, address2.ToString());
}
int CMasternodePayments::GetMinMasternodePaymentsProto() {
@@ -584,11 +585,19 @@ bool CMasternodeBlockPayees::IsTransactionValid(const CTransaction& txNew)
BOOST_FOREACH(CMasternodePayee& payee, vecPayees) {
if (payee.GetVoteCount() >= MNPAYMENTS_SIGNATURES_REQUIRED) {
- BOOST_FOREACH(CTxOut txout, txNew.vout) {
- if (payee.GetPayee() == txout.scriptPubKey && nMasternodePayment == txout.nValue) {
- LogPrint("mnpayments", "CMasternodeBlockPayees::IsTransactionValid -- Found required payment\n");
+ LogPrint("mnpayments", "CMasternodeBlockPayees::IsTransactionValid -- Found %d votes \n", payee.GetVoteCount());
+ BOOST_FOREACH(CTxOut txout, txNew.vout) {
+ CTxDestination address1;
+ ExtractDestination(payee.GetPayee(), address1);
+ CBitcoinAddress address2(address1);
+ strPayeesPossible = address2.ToString();
+ LogPrint("mnpayments", "CMasternodeBlockPayees::IsTransactionValid -- Considering %s ..... ",strPayeesPossible);
+ if (payee.GetPayee() == txout.scriptPubKey && nMasternodePayment == txout.nValue) {
+ LogPrint("mnpayments", "NOT Found required payment\n");
return true;
- }
+ } else {
+ LogPrint("mnpayments", "NOT Found required payment\n",strPayeesPossible);
+ }
}
CTxDestination address1;
@@ -722,7 +731,9 @@ bool CMasternodePaymentVote::IsValid(CNode* pnode, int nValidationHeight, std::s
if(nRank > MNPAYMENTS_SIGNATURES_TOTAL*2 && nBlockHeight > nValidationHeight) {
strError = strprintf("Masternode is not in the top %d (%d)", MNPAYMENTS_SIGNATURES_TOTAL*2, nRank);
LogPrintf("CMasternodePaymentVote::IsValid -- Error: %s\n", strError);
- Misbehaving(pnode->GetId(), 20);
+ // This seems too draconian, and more importantly is causing partioning : Foztor 20th August 2023
+ // Re-instated but reduced penatly from 20 to 2 24th August 2023 Foztor
+ Misbehaving(pnode->GetId(), 2);
}
// Still invalid however
return false;
@@ -750,6 +761,7 @@ bool CMasternodePayments::ProcessBlock(int nBlockHeight, CConnman& connman)
}
if (nRank > MNPAYMENTS_SIGNATURES_TOTAL) {
+ LogPrintf("CMasternodePayments::ProcessBlock -- NoVote: rank=%d, nBlockHeight=%d, masternode=%s\n", nRank, nBlockHeight, activeMasternode.outpoint.ToStringShort());
LogPrint("mnpayments", "CMasternodePayments::ProcessBlock -- Masternode not in the top %d (%d)\n", MNPAYMENTS_SIGNATURES_TOTAL, nRank);
return false;
}
@@ -757,7 +769,7 @@ bool CMasternodePayments::ProcessBlock(int nBlockHeight, CConnman& connman)
// LOCATE THE NEXT MASTERNODE WHICH SHOULD BE PAID
- LogPrintf("CMasternodePayments::ProcessBlock -- Start: nBlockHeight=%d, masternode=%s\n", nBlockHeight, activeMasternode.outpoint.ToStringShort());
+ LogPrintf("CMasternodePayments::ProcessBlock -- StartVote: rank=%d, nBlockHeight=%d, masternode=%s\n", nRank, nBlockHeight, activeMasternode.outpoint.ToStringShort());
// pay to the oldest MN that still had no payment but its input is old enough and it was active long enough
int nCount = 0;
diff --git a/src/masternode-payments.h b/src/masternode-payments.h
index b7b5328..8028fb8 100644
--- a/src/masternode-payments.h
+++ b/src/masternode-payments.h
@@ -18,20 +18,27 @@ class CMasternodeBlockPayees;
static const int MNPAYMENTS_SIGNATURES_REQUIRED = 6;
static const int MNPAYMENTS_SIGNATURES_TOTAL = 10;
-static const char* jijin[] = {
- "PTbZKW5hgUM5Cwn1UiHNx9QkYwchvbMueQ",
-};
+/*
+if(Params().NetworkIDString() == CBaseChainParams::REGTEST) {
+ static const char* jijin[] = {
+ "PEXdvFRuYY55CfLWHoE7fnsVf5eTfxJeBu",
+ }; } else {
+ static const char* jijin[] = {
+ "PEXdvFRuYY55CfLWHoE7fnsVf5eTfxJeBu",
+ }
+ */
+
-static const int FOUNDATION_HEIGHT = 129600;
-static const int64_t FOUNDATION_RATE = 5;
-static const int64_t FOUNDATION = 2000 * COIN;
+static const int FOUNDATION_HEIGHT = 129600; // This is when "Superblocks" started on PEPEPOW. They don't actually use the dash superblock capability.....
+static const int64_t FOUNDATION_RATE = 0;
+static const int64_t FOUNDATION = 1000 * COIN; // 1% to Foundation
//! minimum peer version that can receive and send masternode payment messages,
// vote for masternode and be elected as a payment winner
// V1 - Last protocol version before update
// V2 - Newest protocol version
-static const int MIN_MASTERNODE_PAYMENT_PROTO_VERSION_1 = 70223;
-static const int MIN_MASTERNODE_PAYMENT_PROTO_VERSION_2 = 70223;
+static const int MIN_MASTERNODE_PAYMENT_PROTO_VERSION_1 = 70301;
+static const int MIN_MASTERNODE_PAYMENT_PROTO_VERSION_2 = 70301;
extern CCriticalSection cs_vecPayees;
extern CCriticalSection cs_mapMasternodeBlocks;
diff --git a/src/masternode-sync.h b/src/masternode-sync.h
index e0022f7..581bdae 100644
--- a/src/masternode-sync.h
+++ b/src/masternode-sync.h
@@ -22,7 +22,8 @@ static const int MASTERNODE_SYNC_GOVOBJ_VOTE = 11;
static const int MASTERNODE_SYNC_FINISHED = 999;
static const int MASTERNODE_SYNC_TICK_SECONDS = 6;
-static const int MASTERNODE_SYNC_TIMEOUT_SECONDS = 30; // our blocks are 2.5 minutes so 30 seconds should be fine
+static const int MASTERNODE_SYNC_TIMEOUT_SECONDS = 8; // our blocks are 2.5 minutes so 30 seconds should be fine
+ // This was reduced to 8 seconds with the 2.1 release as 30 seconds is clearly too high given our block time
static const int MASTERNODE_SYNC_ENOUGH_PEERS = 6;
diff --git a/src/masternode.cpp b/src/masternode.cpp
index e9d15c1..77f2d48 100644
--- a/src/masternode.cpp
+++ b/src/masternode.cpp
@@ -154,17 +154,17 @@ void CMasternode::Check(bool fForce)
}
if(IsPoSeBanned()) {
- if(nHeight < nPoSeBanHeight) return; // too early?
+ if(nHeight < nPoSeBanHeight + 720 ) return; // too early? <-- Yes almost certainly. Add in 2.2.1.4 to make this last MUCH longer
// Otherwise give it a chance to proceed further to do all the usual checks and to change its state.
// Masternode still will be on the edge and can be banned back easily if it keeps ignoring mnverify
// or connect attempts. Will require few mnverify messages to strengthen its position in mn list.
- LogPrintf("CMasternode::Check -- Masternode %s is unbanned and back in list now\n", vin.prevout.ToStringShort());
+ LogPrintf("CMasternode::Check -- Masternode %s is PoSe unbanned and back in list now\n", vin.prevout.ToStringShort());
DecreasePoSeBanScore();
} else if(nPoSeBanScore >= MASTERNODE_POSE_BAN_MAX_SCORE) {
nActiveState = MASTERNODE_POSE_BAN;
// ban for the whole payment cycle
nPoSeBanHeight = nHeight + mnodeman.size();
- LogPrintf("CMasternode::Check -- Masternode %s is banned till block %d now\n", vin.prevout.ToStringShort(), nPoSeBanHeight);
+ LogPrintf("CMasternode::Check -- Masternode %s is PoSe banned till block %d now\n", vin.prevout.ToStringShort(), nPoSeBanHeight);
return;
}
diff --git a/src/masternode.h b/src/masternode.h
index c2250a6..935194c 100644
--- a/src/masternode.h
+++ b/src/masternode.h
@@ -20,7 +20,7 @@ static const int MASTERNODE_EXPIRATION_SECONDS = 65 * 60;
static const int MASTERNODE_WATCHDOG_MAX_SECONDS = 120 * 60;
static const int MASTERNODE_NEW_START_REQUIRED_SECONDS = 180 * 60;
-static const int MASTERNODE_POSE_BAN_MAX_SCORE = 5;
+static const int MASTERNODE_POSE_BAN_MAX_SCORE = 2;
//
// The Masternode Ping Class : Contains a different serialize method for sending pings from masternodes throughout the network
diff --git a/src/masternodeman.cpp b/src/masternodeman.cpp
index ee7d4ea..9a41dff 100644
--- a/src/masternodeman.cpp
+++ b/src/masternodeman.cpp
@@ -20,8 +20,9 @@
CMasternodeMan mnodeman;
const std::string CMasternodeMan::SERIALIZATION_VERSION_STRING = "CMasternodeMan-Version-7";
-const int64_t CMasternodeMan::FIVE_DAY = 3600 * 24 * 5;
-
+// const int64_t CMasternodeMan::FIVE_DAY = 3600 * 24 * 5;
+const int64_t CMasternodeMan::FIVE_DAY = 3600 * 24; // VERSION 2.1 has 24 hour MN maturity
+// const int64_t CMasternodeMan::FIVE_DAY = 600; // For DevNet TESTING ONLY!!
struct CompareLastPaidBlock
{
bool operator()(const std::pair& t1,
@@ -525,13 +526,16 @@ bool CMasternodeMan::GetNextMasternodeInQueueForPayment(int nBlockHeight, bool f
if(fFilterSigTime && mnpair.second.sigTime + (nMnCount*2.6*60) > GetAdjustedTime()) continue;
int64_t seconds = (int64_t)(mnpair.second.lastPing.sigTime - mnpair.second.sigTime);
-// LogPrint("masternode", "CMasternodeMan::GetNextMasternodeInQueueForPayment --seconds=i", seconds);
+ LogPrint("masternode", "CMasternodeMan::GetNextMasternodeInQueueForPayment --seconds=i", seconds);
if(seconds < CMasternodeMan::FIVE_DAY) {
-// LogPrint("masternode", "CMasternodeMan::GetNextMasternodeInQueueForPayment -- masternode: addr=%s, not fit five day, "
-// "seconds=%lli, "
-// "fiveDays=%lli,can't add to mapMasternodes\n", mnpair.second.addr.ToString(), seconds, FIVE_DAY);
- continue;
+ if(Params().NetworkIDString() == CBaseChainParams::REGTEST) {
+ LogPrintf("Regtest so skipping MN age requirements\n");
+ } else {
+ LogPrint("masternode", "CMasternodeMan::GetNextMasternodeInQueueForPayment -- masternode: addr=%s, not yet mature\n", mnpair.second.addr.ToString());
+ continue;
+ }
}
+ LogPrint("masternode", "CMasternodeMan::GetNextMasternodeInQueueForPayment -- masternode: addr=%s, is mature\n", mnpair.second.addr.ToString());
//make sure it has at least as many confirmations as there are masternodes
if(GetUTXOConfirmations(mnpair.first) < nMnCount) continue;
diff --git a/src/net.cpp b/src/net.cpp
index f0f2dba..fae1c96 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -1544,10 +1544,12 @@ void CConnman::ThreadDNSAddressSeed()
} else {
std::vector vIPs;
std::vector vAdd;
+ LogPrintf("Validating %s .... ",seed.host.c_str());
if (LookupHost(seed.host.c_str(), vIPs, 0, true))
{
BOOST_FOREACH(const CNetAddr& ip, vIPs)
{
+ LogPrintf("Found");
int nOneDay = 24*3600;
CAddress addr = CAddress(CService(ip, Params().GetDefaultPort()), NODE_NETWORK);
addr.nTime = GetTime() - 3*nOneDay - GetRand(4*nOneDay); // use a random age between 3 and 7 days old
@@ -1555,6 +1557,7 @@ void CConnman::ThreadDNSAddressSeed()
found++;
}
}
+ LogPrintf("\n");
// TODO: The seed name resolve may fail, yielding an IP of [::], which results in
// addrman assigning the same source to results from different seeds.
// This should switch to a hard-coded stable dummy IP for each seed name, so that the
diff --git a/src/net_processing.cpp b/src/net_processing.cpp
index 6cb9649..85b4ff8 100644
--- a/src/net_processing.cpp
+++ b/src/net_processing.cpp
@@ -1157,6 +1157,17 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv,
pfrom->fDisconnect = true;
return false;
}
+ if (sporkManager.IsSporkActive(SPORK_15_REQUIRE_FOUNDATION_FEE)) {
+ if (nVersion < MIN_PEER_SPORK_15)
+ {
+ // disconnect from peers older than this proto version
+ LogPrintf("peer=%d using obsolete version %i; disconnecting\n", pfrom->id, nVersion);
+ connman.PushMessageWithVersion(pfrom, INIT_PROTO_VERSION, NetMsgType::REJECT, strCommand, REJECT_OBSOLETE,
+ strprintf("Version must be %d or greater", MIN_PEER_PROTO_VERSION));
+ pfrom->fDisconnect = true;
+ return false;
+ }
+ }
if (nVersion == 10300)
nVersion = 300;
diff --git a/src/pow.cpp b/src/pow.cpp
index 089349b..debac23 100644
--- a/src/pow.cpp
+++ b/src/pow.cpp
@@ -90,7 +90,7 @@ unsigned int static DarkGravityWave(const CBlockIndex* pindexLast, const Consens
return bnPowLimit.GetCompact();
}
- if (pindexLast->nHeight > 129886 && pindexLast->nHeight < 130858) {
+ if (pindexLast->nHeight > 129886 && pindexLast->nHeight < 130858) {
return bnPowLimit.GetCompact();
}
diff --git a/src/privatesend-client.h b/src/privatesend-client.h
index 20a5b65..7ba9dac 100644
--- a/src/privatesend-client.h
+++ b/src/privatesend-client.h
@@ -16,7 +16,7 @@ class CConnman;
static const int DENOMS_COUNT_MAX = 100;
static const int DEFAULT_PRIVATESEND_ROUNDS = 2;
-static const int DEFAULT_PRIVATESEND_AMOUNT = 1000;
+static const int DEFAULT_PRIVATESEND_AMOUNT = 100000;
static const int DEFAULT_PRIVATESEND_LIQUIDITY = 0;
static const bool DEFAULT_PRIVATESEND_MULTISESSION = false;
diff --git a/src/privatesend.cpp b/src/privatesend.cpp
index d6e9e9a..0f58089 100644
--- a/src/privatesend.cpp
+++ b/src/privatesend.cpp
@@ -163,9 +163,12 @@ void CPrivateSend::InitStandardDenominations()
1DRK+1000 == (.1DRK+100)*10
10DRK+10000 == (1DRK+1000)*10
*/
- /* Disabled
+
+ vecStandardDenominations.push_back( (1000000 * COIN)+1000000000 );
+ vecStandardDenominations.push_back( (100000 * COIN)+100000000 );
+ vecStandardDenominations.push_back( (10000 * COIN)+10000000 );
+ vecStandardDenominations.push_back( (1000 * COIN)+1000000 );
vecStandardDenominations.push_back( (100 * COIN)+100000 );
- */
vecStandardDenominations.push_back( (10 * COIN)+10000 );
vecStandardDenominations.push_back( (1 * COIN)+1000 );
vecStandardDenominations.push_back( (.1 * COIN)+100 );
diff --git a/src/privatesend.h b/src/privatesend.h
index b247a2d..4389368 100644
--- a/src/privatesend.h
+++ b/src/privatesend.h
@@ -23,7 +23,7 @@ static const int PRIVATESEND_QUEUE_TIMEOUT = 30;
static const int PRIVATESEND_SIGNING_TIMEOUT = 15;
//! minimum peer version accepted by mixing pool
-static const int MIN_PRIVATESEND_PEER_PROTO_VERSION = 70223;
+static const int MIN_PRIVATESEND_PEER_PROTO_VERSION = 70311;
static const CAmount PRIVATESEND_ENTRY_MAX_SIZE = 9;
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index 242c692..f63b810 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -1435,15 +1435,15 @@ static bool ThreadSafeMessageBox(BitcoinGUI *gui, const std::string& message, co
void BitcoinGUI::subscribeToCoreSignals()
{
// Connect signals to client
- uiInterface.ThreadSafeMessageBox.connect(boost::bind(ThreadSafeMessageBox, this, _1, _2, _3));
- uiInterface.ThreadSafeQuestion.connect(boost::bind(ThreadSafeMessageBox, this, _1, _3, _4));
+ uiInterface.ThreadSafeMessageBox.connect(boost::bind(ThreadSafeMessageBox, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3));
+ uiInterface.ThreadSafeQuestion.connect(boost::bind(ThreadSafeMessageBox, this, boost::placeholders::_1, boost::placeholders::_3, boost::placeholders::_4));
}
void BitcoinGUI::unsubscribeFromCoreSignals()
{
// Disconnect signals from client
- uiInterface.ThreadSafeMessageBox.disconnect(boost::bind(ThreadSafeMessageBox, this, _1, _2, _3));
- uiInterface.ThreadSafeQuestion.disconnect(boost::bind(ThreadSafeMessageBox, this, _1, _3, _4));
+ uiInterface.ThreadSafeMessageBox.disconnect(boost::bind(ThreadSafeMessageBox, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3));
+ uiInterface.ThreadSafeQuestion.disconnect(boost::bind(ThreadSafeMessageBox, this, boost::placeholders::_1, boost::placeholders::_3, boost::placeholders::_4));
}
void BitcoinGUI::toggleNetworkActive()
diff --git a/src/qt/clientmodel.cpp b/src/qt/clientmodel.cpp
index ab375fd..904a016 100644
--- a/src/qt/clientmodel.cpp
+++ b/src/qt/clientmodel.cpp
@@ -375,25 +375,25 @@ static void NotifyAdditionalDataSyncProgressChanged(ClientModel *clientmodel, do
void ClientModel::subscribeToCoreSignals()
{
// Connect signals to client
- uiInterface.ShowProgress.connect(boost::bind(ShowProgress, this, _1, _2));
- uiInterface.NotifyNumConnectionsChanged.connect(boost::bind(NotifyNumConnectionsChanged, this, _1));
- uiInterface.NotifyNetworkActiveChanged.connect(boost::bind(NotifyNetworkActiveChanged, this, _1));
- uiInterface.NotifyAlertChanged.connect(boost::bind(NotifyAlertChanged, this, _1, _2));
+ uiInterface.ShowProgress.connect(boost::bind(ShowProgress, this, boost::placeholders::_1, boost::placeholders::_2));
+ uiInterface.NotifyNumConnectionsChanged.connect(boost::bind(NotifyNumConnectionsChanged, this, boost::placeholders::_1));
+ uiInterface.NotifyNetworkActiveChanged.connect(boost::bind(NotifyNetworkActiveChanged, this, boost::placeholders::_1));
+ uiInterface.NotifyAlertChanged.connect(boost::bind(NotifyAlertChanged, this, boost::placeholders::_1, boost::placeholders::_2));
uiInterface.BannedListChanged.connect(boost::bind(BannedListChanged, this));
- uiInterface.NotifyBlockTip.connect(boost::bind(BlockTipChanged, this, _1, _2, false));
- uiInterface.NotifyHeaderTip.connect(boost::bind(BlockTipChanged, this, _1, _2, true));
- uiInterface.NotifyAdditionalDataSyncProgressChanged.connect(boost::bind(NotifyAdditionalDataSyncProgressChanged, this, _1));
+ uiInterface.NotifyBlockTip.connect(boost::bind(BlockTipChanged, this, boost::placeholders::_1, boost::placeholders::_2, false));
+ uiInterface.NotifyHeaderTip.connect(boost::bind(BlockTipChanged, this, boost::placeholders::_1, boost::placeholders::_2, true));
+ uiInterface.NotifyAdditionalDataSyncProgressChanged.connect(boost::bind(NotifyAdditionalDataSyncProgressChanged, this, boost::placeholders::_1));
}
void ClientModel::unsubscribeFromCoreSignals()
{
// Disconnect signals from client
- uiInterface.ShowProgress.disconnect(boost::bind(ShowProgress, this, _1, _2));
- uiInterface.NotifyNumConnectionsChanged.disconnect(boost::bind(NotifyNumConnectionsChanged, this, _1));
- uiInterface.NotifyNetworkActiveChanged.disconnect(boost::bind(NotifyNetworkActiveChanged, this, _1));
- uiInterface.NotifyAlertChanged.disconnect(boost::bind(NotifyAlertChanged, this, _1, _2));
+ uiInterface.ShowProgress.disconnect(boost::bind(ShowProgress, this, boost::placeholders::_1, boost::placeholders::_2));
+ uiInterface.NotifyNumConnectionsChanged.disconnect(boost::bind(NotifyNumConnectionsChanged, this, boost::placeholders::_1));
+ uiInterface.NotifyNetworkActiveChanged.disconnect(boost::bind(NotifyNetworkActiveChanged, this, boost::placeholders::_1));
+ uiInterface.NotifyAlertChanged.disconnect(boost::bind(NotifyAlertChanged, this, boost::placeholders::_1, boost::placeholders::_2));
uiInterface.BannedListChanged.disconnect(boost::bind(BannedListChanged, this));
- uiInterface.NotifyBlockTip.disconnect(boost::bind(BlockTipChanged, this, _1, _2, false));
- uiInterface.NotifyHeaderTip.disconnect(boost::bind(BlockTipChanged, this, _1, _2, true));
- uiInterface.NotifyAdditionalDataSyncProgressChanged.disconnect(boost::bind(NotifyAdditionalDataSyncProgressChanged, this, _1));
+ uiInterface.NotifyBlockTip.disconnect(boost::bind(BlockTipChanged, this, boost::placeholders::_1, boost::placeholders::_2, false));
+ uiInterface.NotifyHeaderTip.disconnect(boost::bind(BlockTipChanged, this, boost::placeholders::_1, boost::placeholders::_2, true));
+ uiInterface.NotifyAdditionalDataSyncProgressChanged.disconnect(boost::bind(NotifyAdditionalDataSyncProgressChanged, this, boost::placeholders::_1));
}
diff --git a/src/qt/forms/optionsdialog.ui b/src/qt/forms/optionsdialog.ui
index db17817..a43098c 100644
--- a/src/qt/forms/optionsdialog.ui
+++ b/src/qt/forms/optionsdialog.ui
@@ -263,7 +263,7 @@
2
- 2000
+ 1000000
10
diff --git a/src/qt/intro.cpp b/src/qt/intro.cpp
index 21cbe49..e9aaa09 100644
--- a/src/qt/intro.cpp
+++ b/src/qt/intro.cpp
@@ -180,7 +180,7 @@ void Intro::pickDataDirectory()
/* Let the user choose one */
Intro intro;
intro.setDataDirectory(dataDirDefaultCurrent);
- intro.setWindowIcon(QIcon(":icons/bitcoin"));
+ intro.setWindowIcon(QIcon(QPixmap(":icons/bitcoin").scaled(QSize(128, 128), Qt::KeepAspectRatio, Qt::SmoothTransformation )));
while(true)
{
diff --git a/src/qt/res/css/crownium.css b/src/qt/res/css/crownium.css
index 9292e5f..5eb1e00 100644
--- a/src/qt/res/css/crownium.css
+++ b/src/qt/res/css/crownium.css
@@ -1,54 +1,54 @@
WalletFrame {
border-image: url(':/images/crownium/drkblue_walletFrame_bg') 0 0 0 0 stretch stretch;
-/* background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #222222, stop: .1 #EEEEEE, stop: .9 #EEEEEE, stop: 1 #222222); */
+/* background-color: #e8ff40 */
border-top:0px solid #000;
margin:0;
padding:0;
}
QStatusBar {
-background-color:#ffffff;
+background-color:#422600;
}
.QFrame {
background-color:transparent;
-border:0px solid #fff;
+border:0px solid #422600;
}
QMenuBar {
-background-color:#fff;
+background-color:#422600;
}
QMenuBar::item {
-background-color:#fff;
+background-color:#422600;
}
QMenuBar::item:selected {
-background-color:#f8f6f6;
+background-color:#422600;
}
QMenu {
-background-color:#f8f6f6;
+background-color:#422600;
}
QMenu::item {
-color:#333;
+color:#edfa8e;
}
QMenu::item:selected {
-background-color:#666666;
-color:#333333;
+background-color:#edfa8e;
+color:#edfa8e;
}
QToolBar {
-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .05 #222222, stop: .4 #EEEEEE, stop: .6 #EEEEEE, stop: 1 #222222);
+background-color: #edfa8e;
border:0px solid #333;
padding:0;
margin:0;
}
QToolBar > QToolButton {
-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .05 #222222, stop: .4 #EEEEEE, stop: .6 #EEEEEE, stop: 1 #222222);
+background-color: #edfa8e;
min-height:2.5em;
min-width:110px;
padding: 0em 1em;
@@ -56,21 +56,21 @@ color:#000000;
}
QToolBar > QToolButton:checked {
-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .05 #000000, stop: .4 #EEEEEE, stop: .6 #EEEEEE, stop: 1 #000000);
+background-color: #edfa8e;
font-weight:bold;
color:#000000;
border:none;
}
QToolBar > QToolButton:hover {
-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .05 #222222, stop: .4 #EEEEEE, stop: .6 #EEEEEE, stop: 1 #222222);
+background-color: #edfa8e;
font-weight:bold;
color:#000000;
border:none;
}
QMessageBox {
-background-color:#F8F6F6;
+background-color:#edfa8e;
}
/*******************************************************/
@@ -109,11 +109,11 @@ background-color:#f2f2f2;
/*******************************************************/
QPushButton { /* Global Button Style */
-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .05 #222222, stop: .3 #FFFFFF, stop: .7 #FFFFFF, stop: 1 #222222);
+background-color: #ffffff;
border:0;
border-radius:3px;
color:#000000;
-font-size:12px;
+font-size:14px;
font-weight:bold;
padding-left:25px;
padding-right:25px;
@@ -122,7 +122,7 @@ padding-bottom:5px;
}
QPushButton:hover {
-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .05 #444444, stop: .2 #FFFFFF, stop: .8 #FFFFFF, stop: 1 #444444);
+background-color: #ffffff;
}
QPushButton:focus {
@@ -284,7 +284,7 @@ background-color:transparent;
QHeaderView::section { /* Table Header Sections */
qproperty-alignment:center;
/* background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 0.25, stop: 0 #4c97bf, stop: 1 #56ABD8); */
-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .05 #222222, stop: .3 #FFFFFF, stop: .7 #FFFFFF, stop: 1 #222222);
+background-color: #ffffff;
color:#000000;
min-height:25px;
/* font-weight:bold; */
@@ -328,14 +328,14 @@ QScrollBar { /* Scroll Bar */
QScrollBar:vertical { /* Vertical Scroll Bar Attributes */
border:0;
-background:#ffffff;
+background:#15ff00;
width:18px;
margin: 18px 0px 18px 0px;
}
QScrollBar:horizontal { /* Horizontal Scroll Bar Attributes */
border:0;
-background:#ffffff;
+background:#15ff00;
height:18px;
margin: 0px 18px 0px 18px;
}
@@ -443,7 +443,7 @@ border-right: 1px solid #d7d7d7;
}
QDialog .QTabWidget QTabBar::tab:selected, QDialog .QTabWidget QTabBar::tab:hover {
-background-color:#ffffff;
+background-color:#15ff00;
color:#333;
}
@@ -485,7 +485,7 @@ font-weight:bold;
}
QDialog#OpenURIDialog QPushButton#selectFileButton { /* ... Button */
-background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb);
+background-color:#f8f6f6;
border:1px solid #d2d2d2;
color:#616161;
padding-left:10px;
@@ -573,7 +573,7 @@ background-color:#F8F6F6;
}
QWidget#AddressBookPage QPushButton#newAddress { /* New Address Button */
-background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb);
+background-color:#e8ff40;
border:1px solid #d2d2d2;
color:#616161;
padding-left:10px;
@@ -581,7 +581,7 @@ padding-right:10px;
}
QWidget#AddressBookPage QPushButton#newAddress:hover {
-background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb);
+background-color:#e8ff40;
color:#333;
}
@@ -590,7 +590,7 @@ border:1px solid #9e9e9e;
}
QWidget#AddressBookPage QPushButton#copyAddress { /* Copy Address Button */
-background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb);
+background-color:#e8ff40;
border:1px solid #d2d2d2;
color:#616161;
padding-left:10px;
@@ -598,7 +598,7 @@ padding-right:10px;
}
QWidget#AddressBookPage QPushButton#copyAddress:hover {
-background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb);
+background-color:#e8ff40;
color:#333;
}
@@ -607,7 +607,7 @@ border:1px solid #9e9e9e;
}
QWidget#AddressBookPage QPushButton#deleteAddress { /* Delete Address Button */
-background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb);
+background-color:#e8ff40;
border:1px solid #d2d2d2;
color:#616161;
padding-left:10px;
@@ -615,7 +615,7 @@ padding-right:10px;
}
QWidget#AddressBookPage QPushButton#deleteAddress:hover {
-background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb);
+background-color:#e8ff40;
color:#333;
}
@@ -735,7 +735,7 @@ border-image: url(':/images/crownium/drkblue_walletFrame_bg') 0 0 0 0 stretch st
}
QDialog#RPCConsole QWidget#tab_nettraffic QSlider#sldGraphRange{ /* Network slider background */
-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #000000, stop: .5 #FFFFFF, stop: .5 #FFFFFF, stop: 1 #000000);
+background-color: #e8ff40;
}
@@ -755,7 +755,7 @@ background-color:#F8F6F6;
}
QDialog#HelpMessageDialog QScrollArea * {
-background-color:#ffffff;
+background-color:#15ff00;
}
QDialog#HelpMessageDialog QScrollBar:vertical, QDialog#HelpMessageDialog QScrollBar:horizontal {
@@ -828,8 +828,8 @@ margin-left:16px;
QWidget .QFrame#frame .QLabel#labelBalanceText { /* Available Balance Label */
qproperty-alignment: 'AlignVCenter | AlignRight';
min-width:160px;
-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #000000, stop: .4 #444444, stop: .6 #444444, stop: 1 #000000);
-color:#ffffff;
+background-color: #e8ff40;
+color:#134200;
margin-right:5px;
padding-right:5px;
font-weight:bold;
@@ -931,9 +931,9 @@ min-width: 421px;
QWidget .QFrame#framePrivateSend .QLabel#labelPrivateSendHeader { /* PrivateSend Header */
qproperty-alignment: 'AlignVCenter | AlignRight';
min-width:160px;
-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #000000, stop: .4 #444444, stop: .6 #444444, stop: 1 #000000);
+background-color: #e8ff40;
/* border:3px outset #888888; */
-color:#ffffff;
+color:#134200;
margin-right:5px;
padding-right:5px;
font-weight:bold;
@@ -988,7 +988,7 @@ color:#333333;
}
QWidget .QFrame#framePrivateSend #privateSendFormLayoutWidget .QProgressBar#privateSendProgress::chunk {
-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #000000, stop: .4 #EEEEEE, stop: .6 #EEEEEE, stop: 1 #000000);
+background-color: #e8ff40;
width:1px;
}
@@ -1043,7 +1043,7 @@ color:#222222;
/* PRIVATESEND BUTTONS */
QWidget .QFrame#framePrivateSend .QPushButton { /* PrivateSend Buttons - General Attributes */
-border:0px solid #ffffff;
+border:0px solid #15ff00;
}
QWidget .QFrame#framePrivateSend QPushButton:focus {
@@ -1066,7 +1066,7 @@ QWidget .QFrame#framePrivateSend .QPushButton#togglePrivateSend:hover {
}
QWidget .QFrame#framePrivateSend .QPushButton#privateSendAuto { /* Try Mix Button */
-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .05 #222222, stop: .3 #FFFFFF, stop: .7 #FFFFFF, stop: 1 #222222);
+background-color: #e8ff40;
border:1px solid #d2d2d2;
color:#616161;
min-height:25px;
@@ -1075,7 +1075,7 @@ padding:0px;
}
QWidget .QFrame#framePrivateSend .QPushButton#privateSendAuto:hover {
-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .05 #222222, stop: .2 #FFFFFF, stop: .6 #FFFFFF, stop: 1 #222222);
+background-color: #e8ff40;
color:#000000;
}
@@ -1084,7 +1084,7 @@ border:1px solid #9e9e9e;
}
QWidget .QFrame#framePrivateSend .QPushButton#privateSendReset { /* Reset Button */
-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .05 #222222, stop: .3 #FFFFFF, stop: .7 #FFFFFF, stop: 1 #222222);
+background-color: #e8ff40;
border:1px solid #d2d2d2;
color:#616161;
min-height:25px;
@@ -1093,7 +1093,7 @@ padding:0px;
}
QWidget .QFrame#framePrivateSend .QPushButton#privateSendReset:hover {
-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .05 #222222, stop: .2 #FFFFFF, stop: .6 #FFFFFF, stop: 1 #222222);
+background-color: #e8ff40;
color:#000000;
}
@@ -1102,7 +1102,7 @@ border:1px solid #9e9e9e;
}
QWidget .QFrame#framePrivateSend .QPushButton#privateSendInfo { /* Info Button */
-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .05 #222222, stop: .3 #FFFFFF, stop: .7 #FFFFFF, stop: 1 #222222);
+background-color: #e8ff40;
border:1px solid #d2d2d2;
color:#616161;
min-height:25px;
@@ -1111,7 +1111,7 @@ padding:0px;
}
QWidget .QFrame#framePrivateSend .QPushButton#privateSendInfo:hover {
-background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .05 #222222, stop: .2 #FFFFFF, stop: .6 #FFFFFF, stop: 1 #222222);
+background-color: #e8ff40;
color:#000000;
}
@@ -1163,7 +1163,7 @@ margin-left:0px; /* CSS Voodoo - set to -66px to hide default transaction icons
/* MODAL OVERLAY */
QWidget#bgWidget { /* The 'frame' overlaying the overview-page */
- background:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb);
+ background:#593c00;
color:#616161;
padding-left:10px;
padding-right:10px;
@@ -1267,7 +1267,7 @@ QDialog#SendCoinsDialog .QPushButton#addButton:pressed {
QDialog#SendCoinsDialog .QCheckBox#checkUsePrivateSend { /* PrivateSend Checkbox */
color:#555555;
font-weight:bold;
-background: qradialgradient(cx:0.5, cy:0.5, radius: 0.5, fx:0.5, fy:0.5, stop:0 rgba(248, 246, 246, 128), stop: 1 rgba(0, 0, 0, 0));
+background: #e8ff40;
border-radius:5px;
padding-top:20px;
padding-bottom:18px;
@@ -1276,7 +1276,7 @@ padding-bottom:18px;
QDialog#SendCoinsDialog .QCheckBox#checkUseInstantSend { /* InstantSend Checkbox */
color:#555555;
font-weight:bold;
-background: qradialgradient(cx:0.5, cy:0.5, radius: 0.5, fx:0.5, fy:0.5, stop:0 rgba(248, 246, 246, 128), stop: 1 rgba(0, 0, 0, 0));
+background: #e8ff40;
border-radius:5px;
padding-top:20px;
padding-bottom:18px;
@@ -1330,7 +1330,7 @@ padding-right:5px;
QStackedWidget#SendCoinsEntry .QFrame#SendCoins .QLabel#amountLabel {
background-color:#6a6a6a;
-color:#ffffff;
+color:#15ff00;
}
QStackedWidget#SendCoinsEntry .QValidatedLineEdit#payTo { /* Pay To Input Field */
@@ -1462,7 +1462,7 @@ color:transparent;
QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget { /* Coin Control Widget Container */
outline:0;
-background-color:#ffffff;
+background-color:#15ff00;
border:0px solid #818181;
}
@@ -1517,7 +1517,7 @@ padding-right:5px;
QWidget#ReceiveCoinsDialog .QFrame#frame2 .QLabel#label { /* Amount Label */
background-color:#6a6a6a;
min-width:102px;
-color:#ffffff;
+color:#15ff00;
font-weight:bold;
font-size:11px;
padding-right:5px;
@@ -1533,7 +1533,7 @@ padding-right:5px;
}
QWidget#ReceiveCoinsDialog .QFrame#frame2 QPushButton#clearButton { /* Clear Button */
-background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb);
+background-color:#e8ff40;
border:1px solid #d2d2d2;
color:#616161;
padding-left:10px;
@@ -1541,7 +1541,7 @@ padding-right:10px;
}
QWidget#ReceiveCoinsDialog .QFrame#frame2 QPushButton#clearButton:hover {
-background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb);
+background-color:#e8ff40;
color:#333;
}
@@ -1550,7 +1550,7 @@ border:1px solid #9e9e9e;
}
QWidget#ReceiveCoinsDialog .QFrame#frame QPushButton#showRequestButton { /* Show Button */
-background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb);
+background-color:#e8ff40;
border:1px solid #d2d2d2;
color:#616161;
padding-left:10px;
@@ -1558,7 +1558,7 @@ padding-right:10px;
}
QWidget#ReceiveCoinsDialog .QFrame#frame QPushButton#showRequestButton:hover {
-background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb);
+background-color:#e8ff40;
color:#333;
}
@@ -1567,7 +1567,7 @@ border:1px solid #9e9e9e;
}
QWidget#ReceiveCoinsDialog .QFrame#frame QPushButton#removeRequestButton { /* Remove Button */
-background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(250, 250, 250, 128), stop: .95 rgba(250, 250, 250, 255), stop: 1 #ebebeb);
+background-color:#e8ff40;
border:1px solid #d2d2d2;
color:#616161;
padding-left:10px;
@@ -1575,7 +1575,7 @@ padding-right:10px;
}
QWidget#ReceiveCoinsDialog .QFrame#frame QPushButton#removeRequestButton:hover {
-background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: .01 #f6f6f6, stop: .1 rgba(240, 240, 240, 255), stop: .95 rgba(240, 240, 240, 255), stop: 1 #ebebeb);
+background-color:#e8ff40;
color:#333;
}
diff --git a/src/qt/res/css/light.css b/src/qt/res/css/light.css
index 4be2a88..27d9296 100644
--- a/src/qt/res/css/light.css
+++ b/src/qt/res/css/light.css
@@ -15,13 +15,16 @@
font-size: 12px;
}
-WalletFrame, QMainWindow, QDialog, QProgressBar:horizontal {
- background-color: #16161f;
+WalletFrame {
+border-image: url(':/images/light/drkblue_walletFrame_bg') 0 0 0 0 stretch stretch;
+border-top:0px solid #000;
+margin:0;
+padding:0;
}
.QFrame {
background-color:transparent;
- border:0px solid #16161f;
+ border:0px solid #2e0042;
}
@@ -39,7 +42,7 @@ a, QDialog a, *::Link{
/* Toolbar */
QToolBar, QStatusBar {
- background-color:#16161f;
+ background-color:#2e0042;
padding:0;
margin:0;
@@ -55,22 +58,22 @@ QToolBar > QToolButton {
}
QToolBar > QToolButton:hover{
- background-color: #2a2a3d
+ background-color: #b300ff
}
QToolBar > QToolButton:checked {
- background-color:#20202E;
+ background-color:#2e0042;
font-weight:bold;
}
/* -------------------Right Menu--------------------- */
-QMenuBar{background-color:#16161F;}
+QMenuBar{background-color:#2e0042;}
QMenuBar::item {
/*padding: 5px;*/
- background-color:#16161F;
+ background-color:#2e0042;
color:#ffffff;
}
QMenu{
- background-color:#16161F;
+ background-color:#2e0042;
color:#ffffff;
border: 1px solid #3f3f5b;
padding: 0;
@@ -80,11 +83,11 @@ QMenuBar::item {
/*padding: 5px;*/
}
QMenu::item:hover {
- background-color:#16161f;
+ background-color:#2e0042;
}
QMenu::item:selected {
- background-color:#16161f;
- color: #3e8ef7
+ background-color:#2e0042;
+ color: #2e0042
}
/* -------------------Checkbox--------------------- */
@@ -131,26 +134,26 @@ QPushButton {
vertical-align: middle;
padding: 8px 14px;
border-radius: 4px;
- color: #3e8ef7;
+ color: #2e0042;
background-color: transparent;
- border: 1px solid #3e8ef7;
+ border: 1px solid #2e0042;
}
QPushButton:hover {
color: #fff;
- background-color: #3e8ef7;
- border-color: #3e8ef7;
+ background-color: #2e0042;
+ border-color: #2e0042;
}
QPushButton:focus {
- border-color: #247cf0;
+ border-color: #2e0042;
}
QPushButton:pressed {
- border-color: #247cf0
+ border-color: #2e0042
}
QPushButton:disabled {
color: #3f3f5b;
background-color: transparent;
- border-color: #20202E;
+ border-color: #2e0042;
}
/* -------------------Textbox--------------------- */
@@ -160,13 +163,13 @@ QPushButton {
min-height:24px;
padding:3px;
- background-color:#20202E;
+ background-color:#2e0042;
border: 1px solid #3f3f5b;
}
.QValidatedLineEdit:disabled, .QLineEdit:disabled {
/* background-color:#f2f2f2; */
- background-color: #16161f;
+ background-color: #2e0042;
opacity: 0.7;
color: #3f3f5b;
}
@@ -180,7 +183,7 @@ QPushButton {
/* Dropdown Menus */
padding: 3px 5px;
min-height:24px;
- background-color:#20202E;
+ background-color:#2e0042;
border: 1px solid #3f3f5b;
}
@@ -197,7 +200,7 @@ QComboBox::down-arrow {
border-image: url(':/images/light/drkblue_downArrow') 0 0 0 0 stretch stretch;
}
QComboBox QListView {
- background-color:#20202E;
+ background-color:#2e0042;
border:1px solid #3f3f5b;
padding-right:1px;
padding-left:1px;
@@ -209,11 +212,11 @@ QComboBox>QListView::item {
}
QComboBox::item:alternate {
- background:#16161f;
+ background:#2e0042;
}
QComboBox::item:selected {
border:0px solid transparent;
- background:#16161f;
+ background:#2e0042;
}
QComboBox::indicator {
background-color:transparent;
@@ -225,11 +228,11 @@ QComboBox::indicator {
QAbstractSpinBox::down-button, QAbstractSpinBox::up-button{
width:20px;
height: 15px;
- background:#20202E;
+ background:#2e0042;
border: 0;
}
QAbstractSpinBox::up-button:pressed, QAbstractSpinBox::down-button:pressed{
- background:#16161f;
+ background:#2e0042;
}
QAbstractSpinBox::up-button {
@@ -263,7 +266,7 @@ QAbstractSpinBox::down-arrow {
QHeaderView::section {
/* Table Header Sections */
qproperty-alignment:center;
- background: #20202E;
+ background: #2e0042;
min-height:25px;
font-weight:bold;
border-top:1px solid #3f3f5b;
@@ -272,7 +275,7 @@ QHeaderView::section {
padding: 3px 5px;
}
QHeaderView::section:hover{
- background: #16161f;
+ background: #2e0042;
}
QHeaderView::down-arrow, QHeaderView::up-arrow{
@@ -299,15 +302,15 @@ QHeaderView::section {
}
QTableView::item {
/* Table Item */
- background: #2a2a3d;
+ background: #b300ff;
border:0px;
margin: 0;
font-size:12px;
}
QTableView::item:selected {
/* Table Item Selected */
- background: #20202e;
- color: #3e8ef7
+ background: #2e0042;
+ color: #2e0042
}
/* -------------------Scrollbar--------------------- */
@@ -316,7 +319,7 @@ QHeaderView::section {
QScrollBar {
/* Scroll Bar */
border:0;
- background: #16161f;
+ background: #2e0042;
}
QScrollBar:vertical {
/* Vertical Scroll Bar Attributes */
@@ -332,27 +335,27 @@ QScrollBar {
}
QScrollBar::handle:vertical {
/* Scroll Bar Slider - vertical */
- background: #3e8ef7;
+ background: #2e0042;
min-height:6px;
}
QScrollBar::handle:horizontal {
/* Scroll Bar Slider - horizontal */
- background: #3e8ef7;
+ background: #2e0042;
min-width:6px;
}
QScrollBar::add-page, QScrollBar::sub-page {
/* Scroll Bar Background */
- background:#000000;
+ background:#2e0042;
}
QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical, QScrollBar::add-line:horizontal, QScrollBar::sub-line:horizontal {
/* Define Arrow Button Dimensions */
- background-color:#3e8ef7;
- /* border: 1px solid #3e8ef7; */
+ background-color:#2e0042;
+ /* border: 1px solid #2e0042; */
width:6px;
height:6px;
}
QScrollBar::add-line:vertical:pressed, QScrollBar::sub-line:vertical:pressed, QScrollBar::add-line:horizontal:pressed, QScrollBar::sub-line:horizontal:pressed {
- background-color:#247cf0;
+ background-color:#2e0042;
}
QScrollBar::sub-line:vertical {
/* Vertical - top button position */
@@ -403,7 +406,7 @@ QScrollBar {
border: 1px solid #3f3f5b;
}
.QTabWidget QTabBar::tab {
- background-color:#20202E;
+ background-color:#2e0042;
padding: 8px 10px;
border-top: 1px solid #3f3f5b;
}
@@ -414,8 +417,8 @@ QScrollBar {
border-right: 1px solid #3f3f5b;
}
.QTabWidget QTabBar::tab:selected, .QTabWidget QTabBar::tab:hover {
- background-color:#16161f;
- color:#3e8ef7;
+ background-color:#2e0042;
+ color:#2e0042;
}
/* -------------------MODAL OVERLAY--------------------- */
@@ -433,12 +436,13 @@ QWidget#bgWidget {
margin-right: 20px;
background-color:transparent;
}
- QWidget#contentWidget {
- background: #16161f;
- margin:0;
- padding-top:20px;
- padding-bottom: 20px;
- }
+ QWidget#contentWidget { /* The actual content with the text/buttons/etc... */
+border-image: url(':/images/light/drkblue_walletFrame_bg') 0 0 0 0 stretch stretch;
+border-top:0px solid #000;
+margin:0;
+padding-top:20px;
+padding-bottom: 20px;
+}
/* -------------------OVERVIEW SCREEN--------------------- */
@@ -458,7 +462,7 @@ QWidget .QFrame#frameWallet {
QWidget .QFrame#frameWallet .QLabel#labelWallet {
/* Wallet Label */
qproperty-alignment: 'AlignVCenter | AlignCenter';
- background-color:#20202E;
+ background-color:#2e0042;
margin-right:5px;
padding-right:5px;
font-size: 14px;
@@ -559,7 +563,7 @@ QWidget .QFrame#frameWallet {
qproperty-alignment: 'AlignVCenter | AlignLeft';
font-size:14px;
margin-left:0px;
- color: #3e8ef7
+ color: #2e0042
}
QWidget .QFrame#frameWallet .QLabel#labelWatchTotal {
/* Watch-only Total Balance */
@@ -588,7 +592,7 @@ QWidget .QFrame#framePrivateSend {
qproperty-alignment: 'AlignVCenter | AlignCenter';
max-width: 421px;
min-width: 421px;
- background-color:#20202E;
+ background-color:transparent;
margin-right: 5px;
padding-right: 5px;
font-weight:normal;
@@ -616,7 +620,7 @@ QWidget .QFrame#framePrivateSend {
/* PrivateSend Enabled Status Label */
qproperty-alignment: 'AlignVCenter | AlignRight';
min-width:160px;
- background-color:#16161f;
+ background-color:#2e0042;
margin-right:5px;
padding-right:5px;
}
@@ -625,7 +629,7 @@ QWidget .QFrame#framePrivateSend {
/* PrivateSend Completion Label */
qproperty-alignment: 'AlignVCenter | AlignRight';
min-width:160px;
- background-color:#16161f;
+ background-color:#2e0042;
margin-right:5px;
padding-right:5px;
}
@@ -651,7 +655,7 @@ QWidget .QFrame#framePrivateSend {
/* PrivateSend Amount and Rounds Label */
qproperty-alignment: 'AlignVCenter | AlignRight';
min-width:160px;
- background-color:#16161f;
+ background-color:#2e0042;
margin-right:5px;
padding-right:5px;
}
@@ -678,15 +682,15 @@ QWidget .QFrame#framePrivateSend {
QWidget .QFrame#framePrivateSend .QPushButton#privateSendInfo {
/* Info Button */
- color: #0bb2d4;
+ color: #2e0042;
background-color: transparent;
- border-color: #0bb2d4;
+ border-color: #2e0042;
}
QWidget .QFrame#framePrivateSend .QPushButton#privateSendInfo:hover {
color: #fff;
- background-color: #0bb2d4;
- border-color: #0bb2d4;
+ background-color: ##2e0042;
+ border-color: #2e0042;
}
QWidget .QFrame#framePrivateSend .QPushButton#privateSendInfo:pressed {
@@ -875,20 +879,20 @@ QDialog#CoinControlDialog .QLabel#labelCoinControlQuantityText {
QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::item {
padding:3px 5px;
- background: #2a2a3d;
+ background: #b300ff;
border-right: 1px solid #3f3f5b;
border-bottom: 1px solid #3f3f5b;
}
QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::item:selected {
/* Coin Control Item (selected) */
- background: #20202e;
- color: #3e8ef7
+ background: #2e0042;
+ color: #2e0042
}
QDialog#CoinControlDialog .CoinControlTreeWidget#treeWidget::item:checked {
/* Coin Control Item (checked) */
- background: #20202e;
- color: #3e8ef7
+ background: #2e0042;
+ color: #2e0042
}
@@ -1104,7 +1108,7 @@ QDialog#RPCConsole QWidget#tab_info QLabel#label_11, QDialog#RPCConsole QWidget#
}
QDialog#RPCConsole QWidget#tab_peers QLabel#peerHeading {
/* Peers Info Header */
- color:#1c75bc;
+ color:#2e0042;
}
QDialog#RPCConsole QPushButton#openDebugLogfileButton {
max-width:60px;
@@ -1164,3 +1168,4 @@ QDialog#EditAddressDialog QLabel {
+
diff --git a/src/qt/res/icons/bitcoin.ico b/src/qt/res/icons/bitcoin.ico
index e0618a3..811006f 100644
Binary files a/src/qt/res/icons/bitcoin.ico and b/src/qt/res/icons/bitcoin.ico differ
diff --git a/src/qt/res/icons/bitcoin.png b/src/qt/res/icons/bitcoin.png
index 40eb55c..540d131 100644
Binary files a/src/qt/res/icons/bitcoin.png and b/src/qt/res/icons/bitcoin.png differ
diff --git a/src/qt/res/icons/bitcoin_testnet.ico b/src/qt/res/icons/bitcoin_testnet.ico
index e0618a3..e6b6459 100644
Binary files a/src/qt/res/icons/bitcoin_testnet.ico and b/src/qt/res/icons/bitcoin_testnet.ico differ
diff --git a/src/qt/res/icons/bitcoin_testnet.png b/src/qt/res/icons/bitcoin_testnet.png
index 40eb55c..d58169d 100644
Binary files a/src/qt/res/icons/bitcoin_testnet.png and b/src/qt/res/icons/bitcoin_testnet.png differ
diff --git a/src/qt/res/icons/chevron.png b/src/qt/res/icons/chevron.png
index 6460ace..7ae0a97 100644
Binary files a/src/qt/res/icons/chevron.png and b/src/qt/res/icons/chevron.png differ
diff --git a/src/qt/res/icons/crownium/about.png b/src/qt/res/icons/crownium/about.png
index 8dba8dd..f939d87 100644
Binary files a/src/qt/res/icons/crownium/about.png and b/src/qt/res/icons/crownium/about.png differ
diff --git a/src/qt/res/icons/crownium/add.png b/src/qt/res/icons/crownium/add.png
index 9a03715..61391a4 100644
Binary files a/src/qt/res/icons/crownium/add.png and b/src/qt/res/icons/crownium/add.png differ
diff --git "a/src/qt/res/icons/crownium/address-book - \345\211\257\346\234\254.png" "b/src/qt/res/icons/crownium/address-book - \345\211\257\346\234\254.png"
new file mode 100644
index 0000000..3581220
Binary files /dev/null and "b/src/qt/res/icons/crownium/address-book - \345\211\257\346\234\254.png" differ
diff --git a/src/qt/res/icons/crownium/address-book.png b/src/qt/res/icons/crownium/address-book.png
index 0569b07..35ad12d 100644
Binary files a/src/qt/res/icons/crownium/address-book.png and b/src/qt/res/icons/crownium/address-book.png differ
diff --git a/src/qt/res/icons/crownium/bitcoin.ico b/src/qt/res/icons/crownium/bitcoin.ico
index e0618a3..811006f 100644
Binary files a/src/qt/res/icons/crownium/bitcoin.ico and b/src/qt/res/icons/crownium/bitcoin.ico differ
diff --git a/src/qt/res/icons/crownium/bitcoin.png b/src/qt/res/icons/crownium/bitcoin.png
index 40eb55c..540d131 100644
Binary files a/src/qt/res/icons/crownium/bitcoin.png and b/src/qt/res/icons/crownium/bitcoin.png differ
diff --git a/src/qt/res/icons/crownium/bitcoin_testnet.ico b/src/qt/res/icons/crownium/bitcoin_testnet.ico
index e0618a3..e6b6459 100644
Binary files a/src/qt/res/icons/crownium/bitcoin_testnet.ico and b/src/qt/res/icons/crownium/bitcoin_testnet.ico differ
diff --git a/src/qt/res/icons/crownium/bitcoin_testnet.png b/src/qt/res/icons/crownium/bitcoin_testnet.png
index 40eb55c..d58169d 100644
Binary files a/src/qt/res/icons/crownium/bitcoin_testnet.png and b/src/qt/res/icons/crownium/bitcoin_testnet.png differ
diff --git a/src/qt/res/icons/crownium/browse.png b/src/qt/res/icons/crownium/browse.png
index 0032637..952384d 100644
Binary files a/src/qt/res/icons/crownium/browse.png and b/src/qt/res/icons/crownium/browse.png differ
diff --git a/src/qt/res/icons/crownium/chevron.png b/src/qt/res/icons/crownium/chevron.png
new file mode 100644
index 0000000..3359869
Binary files /dev/null and b/src/qt/res/icons/crownium/chevron.png differ
diff --git a/src/qt/res/icons/crownium/clock1.png b/src/qt/res/icons/crownium/clock1.png
index 214ac9b..fa612ea 100644
Binary files a/src/qt/res/icons/crownium/clock1.png and b/src/qt/res/icons/crownium/clock1.png differ
diff --git a/src/qt/res/icons/crownium/clock2.png b/src/qt/res/icons/crownium/clock2.png
index 5b0dd7a..d059a85 100644
Binary files a/src/qt/res/icons/crownium/clock2.png and b/src/qt/res/icons/crownium/clock2.png differ
diff --git a/src/qt/res/icons/crownium/clock3.png b/src/qt/res/icons/crownium/clock3.png
index 523139f..fb9215b 100644
Binary files a/src/qt/res/icons/crownium/clock3.png and b/src/qt/res/icons/crownium/clock3.png differ
diff --git a/src/qt/res/icons/crownium/clock4.png b/src/qt/res/icons/crownium/clock4.png
index c007f50..cbf38ac 100644
Binary files a/src/qt/res/icons/crownium/clock4.png and b/src/qt/res/icons/crownium/clock4.png differ
diff --git a/src/qt/res/icons/crownium/clock5.png b/src/qt/res/icons/crownium/clock5.png
index 2d40197..a7fb13b 100644
Binary files a/src/qt/res/icons/crownium/clock5.png and b/src/qt/res/icons/crownium/clock5.png differ
diff --git a/src/qt/res/icons/crownium/configure.png b/src/qt/res/icons/crownium/configure.png
index abbbbc2..0db953b 100644
Binary files a/src/qt/res/icons/crownium/configure.png and b/src/qt/res/icons/crownium/configure.png differ
diff --git a/src/qt/res/icons/crownium/connect0_16.png b/src/qt/res/icons/crownium/connect0_16.png
index c18e0f4..b332eb8 100644
Binary files a/src/qt/res/icons/crownium/connect0_16.png and b/src/qt/res/icons/crownium/connect0_16.png differ
diff --git a/src/qt/res/icons/crownium/connect1_16.png b/src/qt/res/icons/crownium/connect1_16.png
index daeedd5..9d5df15 100644
Binary files a/src/qt/res/icons/crownium/connect1_16.png and b/src/qt/res/icons/crownium/connect1_16.png differ
diff --git a/src/qt/res/icons/crownium/connect2_16.png b/src/qt/res/icons/crownium/connect2_16.png
index bd24b1c..bbd3c04 100644
Binary files a/src/qt/res/icons/crownium/connect2_16.png and b/src/qt/res/icons/crownium/connect2_16.png differ
diff --git a/src/qt/res/icons/crownium/connect3_16.png b/src/qt/res/icons/crownium/connect3_16.png
index 1c15e12..2c20384 100644
Binary files a/src/qt/res/icons/crownium/connect3_16.png and b/src/qt/res/icons/crownium/connect3_16.png differ
diff --git a/src/qt/res/icons/crownium/connect4_16.png b/src/qt/res/icons/crownium/connect4_16.png
index 0eb2b84..7ff3198 100644
Binary files a/src/qt/res/icons/crownium/connect4_16.png and b/src/qt/res/icons/crownium/connect4_16.png differ
diff --git a/src/qt/res/icons/crownium/debugwindow.png b/src/qt/res/icons/crownium/debugwindow.png
index 0a59796..52a567f 100644
Binary files a/src/qt/res/icons/crownium/debugwindow.png and b/src/qt/res/icons/crownium/debugwindow.png differ
diff --git a/src/qt/res/icons/crownium/drkblue_address-book.png b/src/qt/res/icons/crownium/drkblue_address-book.png
index 98c273e..ddd0524 100644
Binary files a/src/qt/res/icons/crownium/drkblue_address-book.png and b/src/qt/res/icons/crownium/drkblue_address-book.png differ
diff --git a/src/qt/res/icons/crownium/drkblue_editcopy.png b/src/qt/res/icons/crownium/drkblue_editcopy.png
index d2201f8..4fc0121 100644
Binary files a/src/qt/res/icons/crownium/drkblue_editcopy.png and b/src/qt/res/icons/crownium/drkblue_editcopy.png differ
diff --git a/src/qt/res/icons/crownium/drkblue_editpaste.png b/src/qt/res/icons/crownium/drkblue_editpaste.png
index 5729b7f..ec1ac2b 100644
Binary files a/src/qt/res/icons/crownium/drkblue_editpaste.png and b/src/qt/res/icons/crownium/drkblue_editpaste.png differ
diff --git a/src/qt/res/icons/crownium/drkblue_remove.png b/src/qt/res/icons/crownium/drkblue_remove.png
index be818ef..c04dc86 100644
Binary files a/src/qt/res/icons/crownium/drkblue_remove.png and b/src/qt/res/icons/crownium/drkblue_remove.png differ
diff --git a/src/qt/res/icons/crownium/edit.png b/src/qt/res/icons/crownium/edit.png
index 26f424e..6ed714d 100644
Binary files a/src/qt/res/icons/crownium/edit.png and b/src/qt/res/icons/crownium/edit.png differ
diff --git a/src/qt/res/icons/crownium/editcopy.png b/src/qt/res/icons/crownium/editcopy.png
index 1dd4bf8..780fd80 100644
Binary files a/src/qt/res/icons/crownium/editcopy.png and b/src/qt/res/icons/crownium/editcopy.png differ
diff --git a/src/qt/res/icons/crownium/editpaste.png b/src/qt/res/icons/crownium/editpaste.png
index 5ca24e3..676475b 100644
Binary files a/src/qt/res/icons/crownium/editpaste.png and b/src/qt/res/icons/crownium/editpaste.png differ
diff --git a/src/qt/res/icons/crownium/export.png b/src/qt/res/icons/crownium/export.png
index a350e28..cf84d3e 100644
Binary files a/src/qt/res/icons/crownium/export.png and b/src/qt/res/icons/crownium/export.png differ
diff --git a/src/qt/res/icons/crownium/eye.png b/src/qt/res/icons/crownium/eye.png
index 28d8f8a..44cb7ee 100644
Binary files a/src/qt/res/icons/crownium/eye.png and b/src/qt/res/icons/crownium/eye.png differ
diff --git a/src/qt/res/icons/crownium/eye_minus.png b/src/qt/res/icons/crownium/eye_minus.png
index 1b9555d..920c710 100644
Binary files a/src/qt/res/icons/crownium/eye_minus.png and b/src/qt/res/icons/crownium/eye_minus.png differ
diff --git a/src/qt/res/icons/crownium/eye_plus.png b/src/qt/res/icons/crownium/eye_plus.png
index f3d862e..295266b 100644
Binary files a/src/qt/res/icons/crownium/eye_plus.png and b/src/qt/res/icons/crownium/eye_plus.png differ
diff --git a/src/qt/res/icons/crownium/filesave.png b/src/qt/res/icons/crownium/filesave.png
index 0032637..cc0156f 100644
Binary files a/src/qt/res/icons/crownium/filesave.png and b/src/qt/res/icons/crownium/filesave.png differ
diff --git a/src/qt/res/icons/crownium/fontbigger.png b/src/qt/res/icons/crownium/fontbigger.png
index 6429382..69c73a3 100644
Binary files a/src/qt/res/icons/crownium/fontbigger.png and b/src/qt/res/icons/crownium/fontbigger.png differ
diff --git a/src/qt/res/icons/crownium/fontsmaller.png b/src/qt/res/icons/crownium/fontsmaller.png
index 0f74b7f..d0abd56 100644
Binary files a/src/qt/res/icons/crownium/fontsmaller.png and b/src/qt/res/icons/crownium/fontsmaller.png differ
diff --git a/src/qt/res/icons/crownium/hd_disabled.png b/src/qt/res/icons/crownium/hd_disabled.png
index b6fce2e..14c5b6f 100644
Binary files a/src/qt/res/icons/crownium/hd_disabled.png and b/src/qt/res/icons/crownium/hd_disabled.png differ
diff --git a/src/qt/res/icons/crownium/hd_enabled.png b/src/qt/res/icons/crownium/hd_enabled.png
index c65c8dd..ae1d452 100644
Binary files a/src/qt/res/icons/crownium/hd_enabled.png and b/src/qt/res/icons/crownium/hd_enabled.png differ
diff --git a/src/qt/res/icons/crownium/history.png b/src/qt/res/icons/crownium/history.png
index f7f11e7..a059c42 100644
Binary files a/src/qt/res/icons/crownium/history.png and b/src/qt/res/icons/crownium/history.png differ
diff --git a/src/qt/res/icons/crownium/info.png b/src/qt/res/icons/crownium/info.png
new file mode 100644
index 0000000..a23a1e1
Binary files /dev/null and b/src/qt/res/icons/crownium/info.png differ
diff --git a/src/qt/res/icons/crownium/key.png b/src/qt/res/icons/crownium/key.png
index 734f5e4..82ff1c7 100644
Binary files a/src/qt/res/icons/crownium/key.png and b/src/qt/res/icons/crownium/key.png differ
diff --git a/src/qt/res/icons/crownium/lock_closed.png b/src/qt/res/icons/crownium/lock_closed.png
index 0677384..71d98a9 100644
Binary files a/src/qt/res/icons/crownium/lock_closed.png and b/src/qt/res/icons/crownium/lock_closed.png differ
diff --git a/src/qt/res/icons/crownium/lock_open.png b/src/qt/res/icons/crownium/lock_open.png
index 6711c20..10a5b5d 100644
Binary files a/src/qt/res/icons/crownium/lock_open.png and b/src/qt/res/icons/crownium/lock_open.png differ
diff --git a/src/qt/res/icons/crownium/masternodes-1.png b/src/qt/res/icons/crownium/masternodes-1.png
new file mode 100644
index 0000000..bd236c9
Binary files /dev/null and b/src/qt/res/icons/crownium/masternodes-1.png differ
diff --git a/src/qt/res/icons/crownium/masternodes-2.png b/src/qt/res/icons/crownium/masternodes-2.png
new file mode 100644
index 0000000..9ecc398
Binary files /dev/null and b/src/qt/res/icons/crownium/masternodes-2.png differ
diff --git a/src/qt/res/icons/crownium/masternodes.png b/src/qt/res/icons/crownium/masternodes.png
index 206e214..dab1a3e 100644
Binary files a/src/qt/res/icons/crownium/masternodes.png and b/src/qt/res/icons/crownium/masternodes.png differ
diff --git a/src/qt/res/icons/crownium/network_disabled.png b/src/qt/res/icons/crownium/network_disabled.png
index 05217e5..248c9c0 100644
Binary files a/src/qt/res/icons/crownium/network_disabled.png and b/src/qt/res/icons/crownium/network_disabled.png differ
diff --git a/src/qt/res/icons/crownium/notsynced.png b/src/qt/res/icons/crownium/notsynced.png
index e3326cf..7302f1a 100644
Binary files a/src/qt/res/icons/crownium/notsynced.png and b/src/qt/res/icons/crownium/notsynced.png differ
diff --git a/src/qt/res/icons/crownium/open.png b/src/qt/res/icons/crownium/open.png
new file mode 100644
index 0000000..ebf3adf
Binary files /dev/null and b/src/qt/res/icons/crownium/open.png differ
diff --git a/src/qt/res/icons/crownium/overview.png b/src/qt/res/icons/crownium/overview.png
index 08092a4..3c11d1c 100644
Binary files a/src/qt/res/icons/crownium/overview.png and b/src/qt/res/icons/crownium/overview.png differ
diff --git a/src/qt/res/icons/crownium/quit.png b/src/qt/res/icons/crownium/quit.png
index 55cb44b..939685a 100644
Binary files a/src/qt/res/icons/crownium/quit.png and b/src/qt/res/icons/crownium/quit.png differ
diff --git a/src/qt/res/icons/crownium/receive.png b/src/qt/res/icons/crownium/receive.png
index 157bdf6..adf780f 100644
Binary files a/src/qt/res/icons/crownium/receive.png and b/src/qt/res/icons/crownium/receive.png differ
diff --git a/src/qt/res/icons/crownium/remove.png b/src/qt/res/icons/crownium/remove.png
index be818ef..53135a0 100644
Binary files a/src/qt/res/icons/crownium/remove.png and b/src/qt/res/icons/crownium/remove.png differ
diff --git a/src/qt/res/icons/crownium/send.png b/src/qt/res/icons/crownium/send.png
index 70d9dac..c752689 100644
Binary files a/src/qt/res/icons/crownium/send.png and b/src/qt/res/icons/crownium/send.png differ
diff --git a/src/qt/res/icons/crownium/server.png b/src/qt/res/icons/crownium/server.png
new file mode 100644
index 0000000..d4fe49e
Binary files /dev/null and b/src/qt/res/icons/crownium/server.png differ
diff --git a/src/qt/res/icons/crownium/sitemap.png b/src/qt/res/icons/crownium/sitemap.png
new file mode 100644
index 0000000..e0f07d7
Binary files /dev/null and b/src/qt/res/icons/crownium/sitemap.png differ
diff --git a/src/qt/res/icons/crownium/synced.png b/src/qt/res/icons/crownium/synced.png
index 46f29c3..1a224f6 100644
Binary files a/src/qt/res/icons/crownium/synced.png and b/src/qt/res/icons/crownium/synced.png differ
diff --git a/src/qt/res/icons/crownium/toolbar.png b/src/qt/res/icons/crownium/toolbar.png
new file mode 100644
index 0000000..78eec6c
Binary files /dev/null and b/src/qt/res/icons/crownium/toolbar.png differ
diff --git a/src/qt/res/icons/crownium/toolbar_testnet.png b/src/qt/res/icons/crownium/toolbar_testnet.png
new file mode 100644
index 0000000..2905d4e
Binary files /dev/null and b/src/qt/res/icons/crownium/toolbar_testnet.png differ
diff --git a/src/qt/res/icons/crownium/toolbox.png b/src/qt/res/icons/crownium/toolbox.png
new file mode 100644
index 0000000..12bec87
Binary files /dev/null and b/src/qt/res/icons/crownium/toolbox.png differ
diff --git a/src/qt/res/icons/crownium/transaction0.png b/src/qt/res/icons/crownium/transaction0.png
index 5be287e..9fffa2b 100644
Binary files a/src/qt/res/icons/crownium/transaction0.png and b/src/qt/res/icons/crownium/transaction0.png differ
diff --git a/src/qt/res/icons/crownium/transaction2.png b/src/qt/res/icons/crownium/transaction2.png
index 5e8e40d..eb0256c 100644
Binary files a/src/qt/res/icons/crownium/transaction2.png and b/src/qt/res/icons/crownium/transaction2.png differ
diff --git a/src/qt/res/icons/crownium/transaction_abandoned.png b/src/qt/res/icons/crownium/transaction_abandoned.png
index 0a44de4..bdfe4da 100644
Binary files a/src/qt/res/icons/crownium/transaction_abandoned.png and b/src/qt/res/icons/crownium/transaction_abandoned.png differ
diff --git a/src/qt/res/icons/crownium/transaction_conflicted.png b/src/qt/res/icons/crownium/transaction_conflicted.png
index 2de05df..4177791 100644
Binary files a/src/qt/res/icons/crownium/transaction_conflicted.png and b/src/qt/res/icons/crownium/transaction_conflicted.png differ
diff --git a/src/qt/res/icons/crownium/tx_inout.png b/src/qt/res/icons/crownium/tx_inout.png
index 18acc37..7c3a6b0 100644
Binary files a/src/qt/res/icons/crownium/tx_inout.png and b/src/qt/res/icons/crownium/tx_inout.png differ
diff --git a/src/qt/res/icons/crownium/tx_input.png b/src/qt/res/icons/crownium/tx_input.png
index 5fbbe18..770dc86 100644
Binary files a/src/qt/res/icons/crownium/tx_input.png and b/src/qt/res/icons/crownium/tx_input.png differ
diff --git a/src/qt/res/icons/crownium/tx_mined.png b/src/qt/res/icons/crownium/tx_mined.png
index 51fab33..aa38a6a 100644
Binary files a/src/qt/res/icons/crownium/tx_mined.png and b/src/qt/res/icons/crownium/tx_mined.png differ
diff --git a/src/qt/res/icons/crownium/tx_output.png b/src/qt/res/icons/crownium/tx_output.png
index 358b5d4..c10d31c 100644
Binary files a/src/qt/res/icons/crownium/tx_output.png and b/src/qt/res/icons/crownium/tx_output.png differ
diff --git a/src/qt/res/icons/crownium/verify.png b/src/qt/res/icons/crownium/verify.png
index 0ce4203..692cc31 100644
Binary files a/src/qt/res/icons/crownium/verify.png and b/src/qt/res/icons/crownium/verify.png differ
diff --git a/src/qt/res/icons/crownium/warning.png b/src/qt/res/icons/crownium/warning.png
new file mode 100644
index 0000000..e92fda0
Binary files /dev/null and b/src/qt/res/icons/crownium/warning.png differ
diff --git a/src/qt/res/icons/drkblue/about.png b/src/qt/res/icons/drkblue/about.png
index 8dba8dd..f939d87 100644
Binary files a/src/qt/res/icons/drkblue/about.png and b/src/qt/res/icons/drkblue/about.png differ
diff --git a/src/qt/res/icons/drkblue/add.png b/src/qt/res/icons/drkblue/add.png
index 746f580..61391a4 100644
Binary files a/src/qt/res/icons/drkblue/add.png and b/src/qt/res/icons/drkblue/add.png differ
diff --git "a/src/qt/res/icons/drkblue/address-book - \345\211\257\346\234\254.png" "b/src/qt/res/icons/drkblue/address-book - \345\211\257\346\234\254.png"
new file mode 100644
index 0000000..3581220
Binary files /dev/null and "b/src/qt/res/icons/drkblue/address-book - \345\211\257\346\234\254.png" differ
diff --git a/src/qt/res/icons/drkblue/address-book.png b/src/qt/res/icons/drkblue/address-book.png
index 05bcabd..35ad12d 100644
Binary files a/src/qt/res/icons/drkblue/address-book.png and b/src/qt/res/icons/drkblue/address-book.png differ
diff --git a/src/qt/res/icons/drkblue/bitcoin.ico b/src/qt/res/icons/drkblue/bitcoin.ico
index e0618a3..811006f 100644
Binary files a/src/qt/res/icons/drkblue/bitcoin.ico and b/src/qt/res/icons/drkblue/bitcoin.ico differ
diff --git a/src/qt/res/icons/drkblue/bitcoin.png b/src/qt/res/icons/drkblue/bitcoin.png
index 40eb55c..540d131 100644
Binary files a/src/qt/res/icons/drkblue/bitcoin.png and b/src/qt/res/icons/drkblue/bitcoin.png differ
diff --git a/src/qt/res/icons/drkblue/bitcoin.xcf b/src/qt/res/icons/drkblue/bitcoin.xcf
new file mode 100644
index 0000000..df3a1fa
Binary files /dev/null and b/src/qt/res/icons/drkblue/bitcoin.xcf differ
diff --git a/src/qt/res/icons/drkblue/bitcoin_testnet.ico b/src/qt/res/icons/drkblue/bitcoin_testnet.ico
index e0618a3..e6b6459 100644
Binary files a/src/qt/res/icons/drkblue/bitcoin_testnet.ico and b/src/qt/res/icons/drkblue/bitcoin_testnet.ico differ
diff --git a/src/qt/res/icons/drkblue/bitcoin_testnet.png b/src/qt/res/icons/drkblue/bitcoin_testnet.png
index 40eb55c..d58169d 100644
Binary files a/src/qt/res/icons/drkblue/bitcoin_testnet.png and b/src/qt/res/icons/drkblue/bitcoin_testnet.png differ
diff --git a/src/qt/res/icons/drkblue/browse.png b/src/qt/res/icons/drkblue/browse.png
index 0032637..952384d 100644
Binary files a/src/qt/res/icons/drkblue/browse.png and b/src/qt/res/icons/drkblue/browse.png differ
diff --git a/src/qt/res/icons/drkblue/chevron.png b/src/qt/res/icons/drkblue/chevron.png
new file mode 100644
index 0000000..3359869
Binary files /dev/null and b/src/qt/res/icons/drkblue/chevron.png differ
diff --git a/src/qt/res/icons/drkblue/clock1.png b/src/qt/res/icons/drkblue/clock1.png
index 214ac9b..fa612ea 100644
Binary files a/src/qt/res/icons/drkblue/clock1.png and b/src/qt/res/icons/drkblue/clock1.png differ
diff --git a/src/qt/res/icons/drkblue/clock2.png b/src/qt/res/icons/drkblue/clock2.png
index 5b0dd7a..d059a85 100644
Binary files a/src/qt/res/icons/drkblue/clock2.png and b/src/qt/res/icons/drkblue/clock2.png differ
diff --git a/src/qt/res/icons/drkblue/clock3.png b/src/qt/res/icons/drkblue/clock3.png
index 523139f..fb9215b 100644
Binary files a/src/qt/res/icons/drkblue/clock3.png and b/src/qt/res/icons/drkblue/clock3.png differ
diff --git a/src/qt/res/icons/drkblue/clock4.png b/src/qt/res/icons/drkblue/clock4.png
index c007f50..cbf38ac 100644
Binary files a/src/qt/res/icons/drkblue/clock4.png and b/src/qt/res/icons/drkblue/clock4.png differ
diff --git a/src/qt/res/icons/drkblue/clock5.png b/src/qt/res/icons/drkblue/clock5.png
index 2d40197..a7fb13b 100644
Binary files a/src/qt/res/icons/drkblue/clock5.png and b/src/qt/res/icons/drkblue/clock5.png differ
diff --git a/src/qt/res/icons/drkblue/configure.png b/src/qt/res/icons/drkblue/configure.png
index abbbbc2..0db953b 100644
Binary files a/src/qt/res/icons/drkblue/configure.png and b/src/qt/res/icons/drkblue/configure.png differ
diff --git a/src/qt/res/icons/drkblue/connect0_16.png b/src/qt/res/icons/drkblue/connect0_16.png
index c18e0f4..b332eb8 100644
Binary files a/src/qt/res/icons/drkblue/connect0_16.png and b/src/qt/res/icons/drkblue/connect0_16.png differ
diff --git a/src/qt/res/icons/drkblue/connect1_16.png b/src/qt/res/icons/drkblue/connect1_16.png
index daeedd5..9d5df15 100644
Binary files a/src/qt/res/icons/drkblue/connect1_16.png and b/src/qt/res/icons/drkblue/connect1_16.png differ
diff --git a/src/qt/res/icons/drkblue/connect2_16.png b/src/qt/res/icons/drkblue/connect2_16.png
index bd24b1c..bbd3c04 100644
Binary files a/src/qt/res/icons/drkblue/connect2_16.png and b/src/qt/res/icons/drkblue/connect2_16.png differ
diff --git a/src/qt/res/icons/drkblue/connect3_16.png b/src/qt/res/icons/drkblue/connect3_16.png
index 1c15e12..2c20384 100644
Binary files a/src/qt/res/icons/drkblue/connect3_16.png and b/src/qt/res/icons/drkblue/connect3_16.png differ
diff --git a/src/qt/res/icons/drkblue/connect4_16.png b/src/qt/res/icons/drkblue/connect4_16.png
index 0eb2b84..7ff3198 100644
Binary files a/src/qt/res/icons/drkblue/connect4_16.png and b/src/qt/res/icons/drkblue/connect4_16.png differ
diff --git a/src/qt/res/icons/drkblue/debugwindow.png b/src/qt/res/icons/drkblue/debugwindow.png
index 0a59796..52a567f 100644
Binary files a/src/qt/res/icons/drkblue/debugwindow.png and b/src/qt/res/icons/drkblue/debugwindow.png differ
diff --git a/src/qt/res/icons/drkblue/drkblue_address-book.png b/src/qt/res/icons/drkblue/drkblue_address-book.png
index 1af1f60..ddd0524 100644
Binary files a/src/qt/res/icons/drkblue/drkblue_address-book.png and b/src/qt/res/icons/drkblue/drkblue_address-book.png differ
diff --git a/src/qt/res/icons/drkblue/drkblue_editcopy.png b/src/qt/res/icons/drkblue/drkblue_editcopy.png
index d2201f8..4fc0121 100644
Binary files a/src/qt/res/icons/drkblue/drkblue_editcopy.png and b/src/qt/res/icons/drkblue/drkblue_editcopy.png differ
diff --git a/src/qt/res/icons/drkblue/drkblue_editpaste.png b/src/qt/res/icons/drkblue/drkblue_editpaste.png
index 317c2ed..ec1ac2b 100644
Binary files a/src/qt/res/icons/drkblue/drkblue_editpaste.png and b/src/qt/res/icons/drkblue/drkblue_editpaste.png differ
diff --git a/src/qt/res/icons/drkblue/drkblue_remove.png b/src/qt/res/icons/drkblue/drkblue_remove.png
index 99fd966..c04dc86 100644
Binary files a/src/qt/res/icons/drkblue/drkblue_remove.png and b/src/qt/res/icons/drkblue/drkblue_remove.png differ
diff --git a/src/qt/res/icons/drkblue/edit.png b/src/qt/res/icons/drkblue/edit.png
index 3be6532..6ed714d 100644
Binary files a/src/qt/res/icons/drkblue/edit.png and b/src/qt/res/icons/drkblue/edit.png differ
diff --git a/src/qt/res/icons/light/about.png b/src/qt/res/icons/light/about.png
index 8dba8dd..f939d87 100644
Binary files a/src/qt/res/icons/light/about.png and b/src/qt/res/icons/light/about.png differ
diff --git a/src/qt/res/icons/light/add.png b/src/qt/res/icons/light/add.png
index 9a1d348..61391a4 100644
Binary files a/src/qt/res/icons/light/add.png and b/src/qt/res/icons/light/add.png differ
diff --git "a/src/qt/res/icons/light/address-book - \345\211\257\346\234\254.png" "b/src/qt/res/icons/light/address-book - \345\211\257\346\234\254.png"
index 235b612..3581220 100644
Binary files "a/src/qt/res/icons/light/address-book - \345\211\257\346\234\254.png" and "b/src/qt/res/icons/light/address-book - \345\211\257\346\234\254.png" differ
diff --git a/src/qt/res/icons/light/address-book.png b/src/qt/res/icons/light/address-book.png
index 235b612..35ad12d 100644
Binary files a/src/qt/res/icons/light/address-book.png and b/src/qt/res/icons/light/address-book.png differ
diff --git a/src/qt/res/icons/light/bitcoin.ico b/src/qt/res/icons/light/bitcoin.ico
index e0618a3..811006f 100644
Binary files a/src/qt/res/icons/light/bitcoin.ico and b/src/qt/res/icons/light/bitcoin.ico differ
diff --git a/src/qt/res/icons/light/bitcoin.png b/src/qt/res/icons/light/bitcoin.png
index 40eb55c..540d131 100644
Binary files a/src/qt/res/icons/light/bitcoin.png and b/src/qt/res/icons/light/bitcoin.png differ
diff --git a/src/qt/res/icons/light/bitcoin_testnet.ico b/src/qt/res/icons/light/bitcoin_testnet.ico
index e0618a3..e6b6459 100644
Binary files a/src/qt/res/icons/light/bitcoin_testnet.ico and b/src/qt/res/icons/light/bitcoin_testnet.ico differ
diff --git a/src/qt/res/icons/light/bitcoin_testnet.png b/src/qt/res/icons/light/bitcoin_testnet.png
index 40eb55c..d58169d 100644
Binary files a/src/qt/res/icons/light/bitcoin_testnet.png and b/src/qt/res/icons/light/bitcoin_testnet.png differ
diff --git a/src/qt/res/icons/light/browse.png b/src/qt/res/icons/light/browse.png
index 0032637..952384d 100644
Binary files a/src/qt/res/icons/light/browse.png and b/src/qt/res/icons/light/browse.png differ
diff --git a/src/qt/res/icons/light/chevron.png b/src/qt/res/icons/light/chevron.png
index 2309fb3..3359869 100644
Binary files a/src/qt/res/icons/light/chevron.png and b/src/qt/res/icons/light/chevron.png differ
diff --git a/src/qt/res/icons/light/clock1.png b/src/qt/res/icons/light/clock1.png
index 51f313d..fa612ea 100644
Binary files a/src/qt/res/icons/light/clock1.png and b/src/qt/res/icons/light/clock1.png differ
diff --git a/src/qt/res/icons/light/clock2.png b/src/qt/res/icons/light/clock2.png
index 51f313d..d059a85 100644
Binary files a/src/qt/res/icons/light/clock2.png and b/src/qt/res/icons/light/clock2.png differ
diff --git a/src/qt/res/icons/light/clock3.png b/src/qt/res/icons/light/clock3.png
index 5897c9d..fb9215b 100644
Binary files a/src/qt/res/icons/light/clock3.png and b/src/qt/res/icons/light/clock3.png differ
diff --git a/src/qt/res/icons/light/clock4.png b/src/qt/res/icons/light/clock4.png
index a5bc81d..cbf38ac 100644
Binary files a/src/qt/res/icons/light/clock4.png and b/src/qt/res/icons/light/clock4.png differ
diff --git a/src/qt/res/icons/light/clock5.png b/src/qt/res/icons/light/clock5.png
index c633389..a7fb13b 100644
Binary files a/src/qt/res/icons/light/clock5.png and b/src/qt/res/icons/light/clock5.png differ
diff --git a/src/qt/res/icons/light/configure.png b/src/qt/res/icons/light/configure.png
index 0cdd63d..0db953b 100644
Binary files a/src/qt/res/icons/light/configure.png and b/src/qt/res/icons/light/configure.png differ
diff --git a/src/qt/res/icons/light/connect0_16.png b/src/qt/res/icons/light/connect0_16.png
index 22b972c..b332eb8 100644
Binary files a/src/qt/res/icons/light/connect0_16.png and b/src/qt/res/icons/light/connect0_16.png differ
diff --git a/src/qt/res/icons/light/connect1_16.png b/src/qt/res/icons/light/connect1_16.png
index 08b440c..9d5df15 100644
Binary files a/src/qt/res/icons/light/connect1_16.png and b/src/qt/res/icons/light/connect1_16.png differ
diff --git a/src/qt/res/icons/light/connect2_16.png b/src/qt/res/icons/light/connect2_16.png
index d2aac88..bbd3c04 100644
Binary files a/src/qt/res/icons/light/connect2_16.png and b/src/qt/res/icons/light/connect2_16.png differ
diff --git a/src/qt/res/icons/light/connect3_16.png b/src/qt/res/icons/light/connect3_16.png
index a2ffbdb..2c20384 100644
Binary files a/src/qt/res/icons/light/connect3_16.png and b/src/qt/res/icons/light/connect3_16.png differ
diff --git a/src/qt/res/icons/light/connect4_16.png b/src/qt/res/icons/light/connect4_16.png
index b1d208a..7ff3198 100644
Binary files a/src/qt/res/icons/light/connect4_16.png and b/src/qt/res/icons/light/connect4_16.png differ
diff --git a/src/qt/res/icons/light/debugwindow.png b/src/qt/res/icons/light/debugwindow.png
index 023ee86..52a567f 100644
Binary files a/src/qt/res/icons/light/debugwindow.png and b/src/qt/res/icons/light/debugwindow.png differ
diff --git a/src/qt/res/icons/light/drkblue_address-book.png b/src/qt/res/icons/light/drkblue_address-book.png
index 235b612..ddd0524 100644
Binary files a/src/qt/res/icons/light/drkblue_address-book.png and b/src/qt/res/icons/light/drkblue_address-book.png differ
diff --git a/src/qt/res/icons/light/drkblue_editcopy.png b/src/qt/res/icons/light/drkblue_editcopy.png
index 82ab162..4fc0121 100644
Binary files a/src/qt/res/icons/light/drkblue_editcopy.png and b/src/qt/res/icons/light/drkblue_editcopy.png differ
diff --git a/src/qt/res/icons/light/drkblue_editpaste.png b/src/qt/res/icons/light/drkblue_editpaste.png
index 82ab162..ec1ac2b 100644
Binary files a/src/qt/res/icons/light/drkblue_editpaste.png and b/src/qt/res/icons/light/drkblue_editpaste.png differ
diff --git a/src/qt/res/icons/light/drkblue_remove.png b/src/qt/res/icons/light/drkblue_remove.png
index 858ecb3..c04dc86 100644
Binary files a/src/qt/res/icons/light/drkblue_remove.png and b/src/qt/res/icons/light/drkblue_remove.png differ
diff --git a/src/qt/res/icons/light/edit.png b/src/qt/res/icons/light/edit.png
index 82ab162..6ed714d 100644
Binary files a/src/qt/res/icons/light/edit.png and b/src/qt/res/icons/light/edit.png differ
diff --git a/src/qt/res/icons/light/editcopy.png b/src/qt/res/icons/light/editcopy.png
index 82ab162..780fd80 100644
Binary files a/src/qt/res/icons/light/editcopy.png and b/src/qt/res/icons/light/editcopy.png differ
diff --git a/src/qt/res/icons/light/editpaste.png b/src/qt/res/icons/light/editpaste.png
index 82ab162..676475b 100644
Binary files a/src/qt/res/icons/light/editpaste.png and b/src/qt/res/icons/light/editpaste.png differ
diff --git a/src/qt/res/icons/light/export.png b/src/qt/res/icons/light/export.png
index 6346da2..cf84d3e 100644
Binary files a/src/qt/res/icons/light/export.png and b/src/qt/res/icons/light/export.png differ
diff --git a/src/qt/res/icons/light/eye.png b/src/qt/res/icons/light/eye.png
index 1b19400..44cb7ee 100644
Binary files a/src/qt/res/icons/light/eye.png and b/src/qt/res/icons/light/eye.png differ
diff --git a/src/qt/res/icons/light/eye_minus.png b/src/qt/res/icons/light/eye_minus.png
index 7779055..920c710 100644
Binary files a/src/qt/res/icons/light/eye_minus.png and b/src/qt/res/icons/light/eye_minus.png differ
diff --git a/src/qt/res/icons/light/eye_plus.png b/src/qt/res/icons/light/eye_plus.png
index 2eed2d5..295266b 100644
Binary files a/src/qt/res/icons/light/eye_plus.png and b/src/qt/res/icons/light/eye_plus.png differ
diff --git a/src/qt/res/icons/light/filesave.png b/src/qt/res/icons/light/filesave.png
index 0032637..cc0156f 100644
Binary files a/src/qt/res/icons/light/filesave.png and b/src/qt/res/icons/light/filesave.png differ
diff --git a/src/qt/res/icons/light/fontbigger.png b/src/qt/res/icons/light/fontbigger.png
index 03c746d..69c73a3 100644
Binary files a/src/qt/res/icons/light/fontbigger.png and b/src/qt/res/icons/light/fontbigger.png differ
diff --git a/src/qt/res/icons/light/fontsmaller.png b/src/qt/res/icons/light/fontsmaller.png
index efea398..d0abd56 100644
Binary files a/src/qt/res/icons/light/fontsmaller.png and b/src/qt/res/icons/light/fontsmaller.png differ
diff --git a/src/qt/res/icons/light/hd_disabled.png b/src/qt/res/icons/light/hd_disabled.png
index 15cee6d..14c5b6f 100644
Binary files a/src/qt/res/icons/light/hd_disabled.png and b/src/qt/res/icons/light/hd_disabled.png differ
diff --git a/src/qt/res/icons/light/hd_enabled.png b/src/qt/res/icons/light/hd_enabled.png
index ef9cb60..ae1d452 100644
Binary files a/src/qt/res/icons/light/hd_enabled.png and b/src/qt/res/icons/light/hd_enabled.png differ
diff --git a/src/qt/res/icons/light/history.png b/src/qt/res/icons/light/history.png
index 8516a90..a059c42 100644
Binary files a/src/qt/res/icons/light/history.png and b/src/qt/res/icons/light/history.png differ
diff --git a/src/qt/res/icons/light/info.png b/src/qt/res/icons/light/info.png
index 692b50c..a23a1e1 100644
Binary files a/src/qt/res/icons/light/info.png and b/src/qt/res/icons/light/info.png differ
diff --git a/src/qt/res/icons/light/key.png b/src/qt/res/icons/light/key.png
index 26654e3..82ff1c7 100644
Binary files a/src/qt/res/icons/light/key.png and b/src/qt/res/icons/light/key.png differ
diff --git a/src/qt/res/icons/light/lock_closed.png b/src/qt/res/icons/light/lock_closed.png
index 4faa544..71d98a9 100644
Binary files a/src/qt/res/icons/light/lock_closed.png and b/src/qt/res/icons/light/lock_closed.png differ
diff --git a/src/qt/res/icons/light/lock_open.png b/src/qt/res/icons/light/lock_open.png
index cf9816c..10a5b5d 100644
Binary files a/src/qt/res/icons/light/lock_open.png and b/src/qt/res/icons/light/lock_open.png differ
diff --git a/src/qt/res/icons/light/masternodes-1.png b/src/qt/res/icons/light/masternodes-1.png
index f67c806..bd236c9 100644
Binary files a/src/qt/res/icons/light/masternodes-1.png and b/src/qt/res/icons/light/masternodes-1.png differ
diff --git a/src/qt/res/icons/light/masternodes-2.png b/src/qt/res/icons/light/masternodes-2.png
index b5ad147..9ecc398 100644
Binary files a/src/qt/res/icons/light/masternodes-2.png and b/src/qt/res/icons/light/masternodes-2.png differ
diff --git a/src/qt/res/icons/light/masternodes.png b/src/qt/res/icons/light/masternodes.png
index cf2569f..dab1a3e 100644
Binary files a/src/qt/res/icons/light/masternodes.png and b/src/qt/res/icons/light/masternodes.png differ
diff --git a/src/qt/res/icons/light/network_disabled.png b/src/qt/res/icons/light/network_disabled.png
index 3e6651f..248c9c0 100644
Binary files a/src/qt/res/icons/light/network_disabled.png and b/src/qt/res/icons/light/network_disabled.png differ
diff --git a/src/qt/res/icons/light/notsynced.png b/src/qt/res/icons/light/notsynced.png
index e3326cf..7302f1a 100644
Binary files a/src/qt/res/icons/light/notsynced.png and b/src/qt/res/icons/light/notsynced.png differ
diff --git a/src/qt/res/icons/light/open.png b/src/qt/res/icons/light/open.png
index 4d958f0..ebf3adf 100644
Binary files a/src/qt/res/icons/light/open.png and b/src/qt/res/icons/light/open.png differ
diff --git a/src/qt/res/icons/light/overview.png b/src/qt/res/icons/light/overview.png
index 5265bd0..3c11d1c 100644
Binary files a/src/qt/res/icons/light/overview.png and b/src/qt/res/icons/light/overview.png differ
diff --git a/src/qt/res/icons/light/receive.png b/src/qt/res/icons/light/receive.png
index f6dcc47..adf780f 100644
Binary files a/src/qt/res/icons/light/receive.png and b/src/qt/res/icons/light/receive.png differ
diff --git a/src/qt/res/icons/light/remove.png b/src/qt/res/icons/light/remove.png
index 858ecb3..53135a0 100644
Binary files a/src/qt/res/icons/light/remove.png and b/src/qt/res/icons/light/remove.png differ
diff --git a/src/qt/res/icons/light/send.png b/src/qt/res/icons/light/send.png
index f741c7c..c752689 100644
Binary files a/src/qt/res/icons/light/send.png and b/src/qt/res/icons/light/send.png differ
diff --git a/src/qt/res/icons/light/server.png b/src/qt/res/icons/light/server.png
index 023ee86..d4fe49e 100644
Binary files a/src/qt/res/icons/light/server.png and b/src/qt/res/icons/light/server.png differ
diff --git a/src/qt/res/icons/light/sitemap.png b/src/qt/res/icons/light/sitemap.png
index bc3fe7b..e0f07d7 100644
Binary files a/src/qt/res/icons/light/sitemap.png and b/src/qt/res/icons/light/sitemap.png differ
diff --git a/src/qt/res/icons/light/synced.png b/src/qt/res/icons/light/synced.png
index b791050..1a224f6 100644
Binary files a/src/qt/res/icons/light/synced.png and b/src/qt/res/icons/light/synced.png differ
diff --git a/src/qt/res/icons/light/toolbar.png b/src/qt/res/icons/light/toolbar.png
index 556eeb4..78eec6c 100644
Binary files a/src/qt/res/icons/light/toolbar.png and b/src/qt/res/icons/light/toolbar.png differ
diff --git a/src/qt/res/icons/light/toolbar_testnet.png b/src/qt/res/icons/light/toolbar_testnet.png
index 6809da7..2905d4e 100644
Binary files a/src/qt/res/icons/light/toolbar_testnet.png and b/src/qt/res/icons/light/toolbar_testnet.png differ
diff --git a/src/qt/res/icons/light/toolbox.png b/src/qt/res/icons/light/toolbox.png
index f37c49a..12bec87 100644
Binary files a/src/qt/res/icons/light/toolbox.png and b/src/qt/res/icons/light/toolbox.png differ
diff --git a/src/qt/res/icons/light/transaction0.png b/src/qt/res/icons/light/transaction0.png
index 30f0400..9fffa2b 100644
Binary files a/src/qt/res/icons/light/transaction0.png and b/src/qt/res/icons/light/transaction0.png differ
diff --git a/src/qt/res/icons/light/transaction2.png b/src/qt/res/icons/light/transaction2.png
index b791050..eb0256c 100644
Binary files a/src/qt/res/icons/light/transaction2.png and b/src/qt/res/icons/light/transaction2.png differ
diff --git a/src/qt/res/icons/light/tx_inout.png b/src/qt/res/icons/light/tx_inout.png
index d930429..7c3a6b0 100644
Binary files a/src/qt/res/icons/light/tx_inout.png and b/src/qt/res/icons/light/tx_inout.png differ
diff --git a/src/qt/res/icons/light/tx_input.png b/src/qt/res/icons/light/tx_input.png
index cb6cb1b..770dc86 100644
Binary files a/src/qt/res/icons/light/tx_input.png and b/src/qt/res/icons/light/tx_input.png differ
diff --git a/src/qt/res/icons/light/tx_mined.png b/src/qt/res/icons/light/tx_mined.png
index b2ceca2..aa38a6a 100644
Binary files a/src/qt/res/icons/light/tx_mined.png and b/src/qt/res/icons/light/tx_mined.png differ
diff --git a/src/qt/res/icons/light/tx_output.png b/src/qt/res/icons/light/tx_output.png
index 00a3a25..c10d31c 100644
Binary files a/src/qt/res/icons/light/tx_output.png and b/src/qt/res/icons/light/tx_output.png differ
diff --git a/src/qt/res/icons/light/verify.png b/src/qt/res/icons/light/verify.png
index a4ab981..692cc31 100644
Binary files a/src/qt/res/icons/light/verify.png and b/src/qt/res/icons/light/verify.png differ
diff --git a/src/qt/res/icons/light/warning.png b/src/qt/res/icons/light/warning.png
index 6bc5ac7..e92fda0 100644
Binary files a/src/qt/res/icons/light/warning.png and b/src/qt/res/icons/light/warning.png differ
diff --git a/src/qt/res/icons/trad/about.png b/src/qt/res/icons/trad/about.png
index 8dba8dd..f939d87 100644
Binary files a/src/qt/res/icons/trad/about.png and b/src/qt/res/icons/trad/about.png differ
diff --git a/src/qt/res/icons/trad/add.png b/src/qt/res/icons/trad/add.png
index 746f580..61391a4 100644
Binary files a/src/qt/res/icons/trad/add.png and b/src/qt/res/icons/trad/add.png differ
diff --git "a/src/qt/res/icons/trad/address-book - \345\211\257\346\234\254.png" "b/src/qt/res/icons/trad/address-book - \345\211\257\346\234\254.png"
new file mode 100644
index 0000000..3581220
Binary files /dev/null and "b/src/qt/res/icons/trad/address-book - \345\211\257\346\234\254.png" differ
diff --git a/src/qt/res/icons/trad/address-book.png b/src/qt/res/icons/trad/address-book.png
index 05bcabd..35ad12d 100644
Binary files a/src/qt/res/icons/trad/address-book.png and b/src/qt/res/icons/trad/address-book.png differ
diff --git a/src/qt/res/icons/trad/bitcoin.ico b/src/qt/res/icons/trad/bitcoin.ico
index e0618a3..811006f 100644
Binary files a/src/qt/res/icons/trad/bitcoin.ico and b/src/qt/res/icons/trad/bitcoin.ico differ
diff --git a/src/qt/res/icons/trad/bitcoin.png b/src/qt/res/icons/trad/bitcoin.png
index 40eb55c..540d131 100644
Binary files a/src/qt/res/icons/trad/bitcoin.png and b/src/qt/res/icons/trad/bitcoin.png differ
diff --git a/src/qt/res/icons/trad/bitcoin_testnet.ico b/src/qt/res/icons/trad/bitcoin_testnet.ico
index e0618a3..e6b6459 100644
Binary files a/src/qt/res/icons/trad/bitcoin_testnet.ico and b/src/qt/res/icons/trad/bitcoin_testnet.ico differ
diff --git a/src/qt/res/icons/trad/bitcoin_testnet.png b/src/qt/res/icons/trad/bitcoin_testnet.png
index 40eb55c..d58169d 100644
Binary files a/src/qt/res/icons/trad/bitcoin_testnet.png and b/src/qt/res/icons/trad/bitcoin_testnet.png differ
diff --git a/src/qt/res/icons/trad/browse.png b/src/qt/res/icons/trad/browse.png
index 0032637..952384d 100644
Binary files a/src/qt/res/icons/trad/browse.png and b/src/qt/res/icons/trad/browse.png differ
diff --git a/src/qt/res/icons/trad/chevron.png b/src/qt/res/icons/trad/chevron.png
new file mode 100644
index 0000000..3359869
Binary files /dev/null and b/src/qt/res/icons/trad/chevron.png differ
diff --git a/src/qt/res/icons/trad/clock1.png b/src/qt/res/icons/trad/clock1.png
index 214ac9b..fa612ea 100644
Binary files a/src/qt/res/icons/trad/clock1.png and b/src/qt/res/icons/trad/clock1.png differ
diff --git a/src/qt/res/icons/trad/clock2.png b/src/qt/res/icons/trad/clock2.png
index 5b0dd7a..d059a85 100644
Binary files a/src/qt/res/icons/trad/clock2.png and b/src/qt/res/icons/trad/clock2.png differ
diff --git a/src/qt/res/icons/trad/clock3.png b/src/qt/res/icons/trad/clock3.png
index 523139f..fb9215b 100644
Binary files a/src/qt/res/icons/trad/clock3.png and b/src/qt/res/icons/trad/clock3.png differ
diff --git a/src/qt/res/icons/trad/clock4.png b/src/qt/res/icons/trad/clock4.png
index c007f50..cbf38ac 100644
Binary files a/src/qt/res/icons/trad/clock4.png and b/src/qt/res/icons/trad/clock4.png differ
diff --git a/src/qt/res/icons/trad/clock5.png b/src/qt/res/icons/trad/clock5.png
index 2d40197..a7fb13b 100644
Binary files a/src/qt/res/icons/trad/clock5.png and b/src/qt/res/icons/trad/clock5.png differ
diff --git a/src/qt/res/icons/trad/configure.png b/src/qt/res/icons/trad/configure.png
index abbbbc2..0db953b 100644
Binary files a/src/qt/res/icons/trad/configure.png and b/src/qt/res/icons/trad/configure.png differ
diff --git a/src/qt/res/icons/trad/connect0_16.png b/src/qt/res/icons/trad/connect0_16.png
index 1376cd7..b332eb8 100644
Binary files a/src/qt/res/icons/trad/connect0_16.png and b/src/qt/res/icons/trad/connect0_16.png differ
diff --git a/src/qt/res/icons/trad/connect1_16.png b/src/qt/res/icons/trad/connect1_16.png
index a196ef3..9d5df15 100644
Binary files a/src/qt/res/icons/trad/connect1_16.png and b/src/qt/res/icons/trad/connect1_16.png differ
diff --git a/src/qt/res/icons/trad/connect2_16.png b/src/qt/res/icons/trad/connect2_16.png
index d86563c..bbd3c04 100644
Binary files a/src/qt/res/icons/trad/connect2_16.png and b/src/qt/res/icons/trad/connect2_16.png differ
diff --git a/src/qt/res/icons/trad/connect3_16.png b/src/qt/res/icons/trad/connect3_16.png
index d9087d7..2c20384 100644
Binary files a/src/qt/res/icons/trad/connect3_16.png and b/src/qt/res/icons/trad/connect3_16.png differ
diff --git a/src/qt/res/icons/trad/connect4_16.png b/src/qt/res/icons/trad/connect4_16.png
index 10be0de..7ff3198 100644
Binary files a/src/qt/res/icons/trad/connect4_16.png and b/src/qt/res/icons/trad/connect4_16.png differ
diff --git a/src/qt/res/icons/trad/debugwindow.png b/src/qt/res/icons/trad/debugwindow.png
index 0a59796..52a567f 100644
Binary files a/src/qt/res/icons/trad/debugwindow.png and b/src/qt/res/icons/trad/debugwindow.png differ
diff --git a/src/qt/res/icons/trad/drkblue_address-book.png b/src/qt/res/icons/trad/drkblue_address-book.png
index 1af1f60..ddd0524 100644
Binary files a/src/qt/res/icons/trad/drkblue_address-book.png and b/src/qt/res/icons/trad/drkblue_address-book.png differ
diff --git a/src/qt/res/icons/trad/drkblue_editcopy.png b/src/qt/res/icons/trad/drkblue_editcopy.png
index d2201f8..4fc0121 100644
Binary files a/src/qt/res/icons/trad/drkblue_editcopy.png and b/src/qt/res/icons/trad/drkblue_editcopy.png differ
diff --git a/src/qt/res/icons/trad/drkblue_editpaste.png b/src/qt/res/icons/trad/drkblue_editpaste.png
index 317c2ed..ec1ac2b 100644
Binary files a/src/qt/res/icons/trad/drkblue_editpaste.png and b/src/qt/res/icons/trad/drkblue_editpaste.png differ
diff --git a/src/qt/res/icons/trad/drkblue_remove.png b/src/qt/res/icons/trad/drkblue_remove.png
index 99fd966..c04dc86 100644
Binary files a/src/qt/res/icons/trad/drkblue_remove.png and b/src/qt/res/icons/trad/drkblue_remove.png differ
diff --git a/src/qt/res/icons/trad/edit.png b/src/qt/res/icons/trad/edit.png
index 3be6532..6ed714d 100644
Binary files a/src/qt/res/icons/trad/edit.png and b/src/qt/res/icons/trad/edit.png differ
diff --git a/src/qt/res/icons/trad/editcopy.png b/src/qt/res/icons/trad/editcopy.png
index 1dd4bf8..780fd80 100644
Binary files a/src/qt/res/icons/trad/editcopy.png and b/src/qt/res/icons/trad/editcopy.png differ
diff --git a/src/qt/res/icons/warning.png b/src/qt/res/icons/warning.png
index a4f95d5..1188e1a 100644
Binary files a/src/qt/res/icons/warning.png and b/src/qt/res/icons/warning.png differ
diff --git a/src/qt/res/images/crownium/about.png b/src/qt/res/images/crownium/about.png
index ed0a1d4..afe9574 100644
Binary files a/src/qt/res/images/crownium/about.png and b/src/qt/res/images/crownium/about.png differ
diff --git a/src/qt/res/images/crownium/checked.png b/src/qt/res/images/crownium/checked.png
index 0e35c7c..4f337d8 100644
Binary files a/src/qt/res/images/crownium/checked.png and b/src/qt/res/images/crownium/checked.png differ
diff --git a/src/qt/res/images/crownium/dash_logo_horizontal.png b/src/qt/res/images/crownium/dash_logo_horizontal.png
index 95789de..9d2e9fd 100644
Binary files a/src/qt/res/images/crownium/dash_logo_horizontal.png and b/src/qt/res/images/crownium/dash_logo_horizontal.png differ
diff --git a/src/qt/res/images/crownium/drkblue_downArrow.png b/src/qt/res/images/crownium/drkblue_downArrow.png
index c9d70a7..2259e1d 100644
Binary files a/src/qt/res/images/crownium/drkblue_downArrow.png and b/src/qt/res/images/crownium/drkblue_downArrow.png differ
diff --git a/src/qt/res/images/crownium/drkblue_downArrow_small.png b/src/qt/res/images/crownium/drkblue_downArrow_small.png
index 96eed1b..ef309ae 100644
Binary files a/src/qt/res/images/crownium/drkblue_downArrow_small.png and b/src/qt/res/images/crownium/drkblue_downArrow_small.png differ
diff --git a/src/qt/res/images/crownium/drkblue_leftArrow_small.png b/src/qt/res/images/crownium/drkblue_leftArrow_small.png
index 4920bca..f3e9861 100644
Binary files a/src/qt/res/images/crownium/drkblue_leftArrow_small.png and b/src/qt/res/images/crownium/drkblue_leftArrow_small.png differ
diff --git a/src/qt/res/images/crownium/drkblue_qtreeview_selected.png b/src/qt/res/images/crownium/drkblue_qtreeview_selected.png
index 9c9ae02..a8c128a 100644
Binary files a/src/qt/res/images/crownium/drkblue_qtreeview_selected.png and b/src/qt/res/images/crownium/drkblue_qtreeview_selected.png differ
diff --git a/src/qt/res/images/crownium/drkblue_rightArrow_small.png b/src/qt/res/images/crownium/drkblue_rightArrow_small.png
index 5035dcd..7ed328a 100644
Binary files a/src/qt/res/images/crownium/drkblue_rightArrow_small.png and b/src/qt/res/images/crownium/drkblue_rightArrow_small.png differ
diff --git a/src/qt/res/images/crownium/drkblue_upArrow_small.png b/src/qt/res/images/crownium/drkblue_upArrow_small.png
index 8f13bf3..c0dff0f 100644
Binary files a/src/qt/res/images/crownium/drkblue_upArrow_small.png and b/src/qt/res/images/crownium/drkblue_upArrow_small.png differ
diff --git a/src/qt/res/images/crownium/drkblue_walletFrame_bg.png b/src/qt/res/images/crownium/drkblue_walletFrame_bg.png
index 506ccad..f5ee0d1 100644
Binary files a/src/qt/res/images/crownium/drkblue_walletFrame_bg.png and b/src/qt/res/images/crownium/drkblue_walletFrame_bg.png differ
diff --git a/src/qt/res/images/crownium/splash.png b/src/qt/res/images/crownium/splash.png
index d487b64..f1867b3 100644
Binary files a/src/qt/res/images/crownium/splash.png and b/src/qt/res/images/crownium/splash.png differ
diff --git a/src/qt/res/images/crownium/splash_testnet.png b/src/qt/res/images/crownium/splash_testnet.png
index bbbbb5e..5a9ab94 100644
Binary files a/src/qt/res/images/crownium/splash_testnet.png and b/src/qt/res/images/crownium/splash_testnet.png differ
diff --git a/src/qt/res/images/crownium/unchecked.png b/src/qt/res/images/crownium/unchecked.png
index 296e6a5..b16ef40 100644
Binary files a/src/qt/res/images/crownium/unchecked.png and b/src/qt/res/images/crownium/unchecked.png differ
diff --git a/src/qt/res/images/drkblue/about.png b/src/qt/res/images/drkblue/about.png
index 0bc45bf..1dbcdb7 100644
Binary files a/src/qt/res/images/drkblue/about.png and b/src/qt/res/images/drkblue/about.png differ
diff --git a/src/qt/res/images/drkblue/checked.png b/src/qt/res/images/drkblue/checked.png
index 5d3cde4..4f337d8 100644
Binary files a/src/qt/res/images/drkblue/checked.png and b/src/qt/res/images/drkblue/checked.png differ
diff --git a/src/qt/res/images/drkblue/dash_logo_horizontal.png b/src/qt/res/images/drkblue/dash_logo_horizontal.png
index 6e5d175..9d2e9fd 100644
Binary files a/src/qt/res/images/drkblue/dash_logo_horizontal.png and b/src/qt/res/images/drkblue/dash_logo_horizontal.png differ
diff --git a/src/qt/res/images/drkblue/drkblue_downArrow.png b/src/qt/res/images/drkblue/drkblue_downArrow.png
index e26c529..2259e1d 100644
Binary files a/src/qt/res/images/drkblue/drkblue_downArrow.png and b/src/qt/res/images/drkblue/drkblue_downArrow.png differ
diff --git a/src/qt/res/images/drkblue/drkblue_downArrow_small.png b/src/qt/res/images/drkblue/drkblue_downArrow_small.png
index 0f66a1a..ef309ae 100644
Binary files a/src/qt/res/images/drkblue/drkblue_downArrow_small.png and b/src/qt/res/images/drkblue/drkblue_downArrow_small.png differ
diff --git a/src/qt/res/images/drkblue/drkblue_leftArrow_small.png b/src/qt/res/images/drkblue/drkblue_leftArrow_small.png
index eb0f63e..f3e9861 100644
Binary files a/src/qt/res/images/drkblue/drkblue_leftArrow_small.png and b/src/qt/res/images/drkblue/drkblue_leftArrow_small.png differ
diff --git a/src/qt/res/images/drkblue/drkblue_qtreeview_selected.png b/src/qt/res/images/drkblue/drkblue_qtreeview_selected.png
index 2656a1e..a8c128a 100644
Binary files a/src/qt/res/images/drkblue/drkblue_qtreeview_selected.png and b/src/qt/res/images/drkblue/drkblue_qtreeview_selected.png differ
diff --git a/src/qt/res/images/drkblue/drkblue_rightArrow_small.png b/src/qt/res/images/drkblue/drkblue_rightArrow_small.png
index 6041a52..7ed328a 100644
Binary files a/src/qt/res/images/drkblue/drkblue_rightArrow_small.png and b/src/qt/res/images/drkblue/drkblue_rightArrow_small.png differ
diff --git a/src/qt/res/images/drkblue/drkblue_upArrow_small.png b/src/qt/res/images/drkblue/drkblue_upArrow_small.png
index 4e854fd..c0dff0f 100644
Binary files a/src/qt/res/images/drkblue/drkblue_upArrow_small.png and b/src/qt/res/images/drkblue/drkblue_upArrow_small.png differ
diff --git a/src/qt/res/images/drkblue/drkblue_walletFrame_bg.png b/src/qt/res/images/drkblue/drkblue_walletFrame_bg.png
index f69ed3b..a8d757c 100644
Binary files a/src/qt/res/images/drkblue/drkblue_walletFrame_bg.png and b/src/qt/res/images/drkblue/drkblue_walletFrame_bg.png differ
diff --git a/src/qt/res/images/drkblue/splash.png b/src/qt/res/images/drkblue/splash.png
index 267d9a2..cf5a6ee 100644
Binary files a/src/qt/res/images/drkblue/splash.png and b/src/qt/res/images/drkblue/splash.png differ
diff --git a/src/qt/res/images/drkblue/splash_testnet.png b/src/qt/res/images/drkblue/splash_testnet.png
index 396980c..cf5a6ee 100644
Binary files a/src/qt/res/images/drkblue/splash_testnet.png and b/src/qt/res/images/drkblue/splash_testnet.png differ
diff --git a/src/qt/res/images/drkblue/unchecked.png b/src/qt/res/images/drkblue/unchecked.png
index 38c7ebc..b16ef40 100644
Binary files a/src/qt/res/images/drkblue/unchecked.png and b/src/qt/res/images/drkblue/unchecked.png differ
diff --git a/src/qt/res/images/light/about.png b/src/qt/res/images/light/about.png
index 2f2ff17..ebb8bd1 100644
Binary files a/src/qt/res/images/light/about.png and b/src/qt/res/images/light/about.png differ
diff --git a/src/qt/res/images/light/checked.png b/src/qt/res/images/light/checked.png
index 69e60eb..4f337d8 100644
Binary files a/src/qt/res/images/light/checked.png and b/src/qt/res/images/light/checked.png differ
diff --git a/src/qt/res/images/light/dash_logo_horizontal.png b/src/qt/res/images/light/dash_logo_horizontal.png
index 0be9a18..9d2e9fd 100644
Binary files a/src/qt/res/images/light/dash_logo_horizontal.png and b/src/qt/res/images/light/dash_logo_horizontal.png differ
diff --git a/src/qt/res/images/light/drkblue_downArrow.png b/src/qt/res/images/light/drkblue_downArrow.png
index 1cdedb7..2259e1d 100644
Binary files a/src/qt/res/images/light/drkblue_downArrow.png and b/src/qt/res/images/light/drkblue_downArrow.png differ
diff --git a/src/qt/res/images/light/drkblue_downArrow_small.png b/src/qt/res/images/light/drkblue_downArrow_small.png
index 2c75067..ef309ae 100644
Binary files a/src/qt/res/images/light/drkblue_downArrow_small.png and b/src/qt/res/images/light/drkblue_downArrow_small.png differ
diff --git a/src/qt/res/images/light/drkblue_leftArrow_small.png b/src/qt/res/images/light/drkblue_leftArrow_small.png
index f1a5ede..f3e9861 100644
Binary files a/src/qt/res/images/light/drkblue_leftArrow_small.png and b/src/qt/res/images/light/drkblue_leftArrow_small.png differ
diff --git a/src/qt/res/images/light/drkblue_qtreeview_selected.png b/src/qt/res/images/light/drkblue_qtreeview_selected.png
index 2656a1e..a8c128a 100644
Binary files a/src/qt/res/images/light/drkblue_qtreeview_selected.png and b/src/qt/res/images/light/drkblue_qtreeview_selected.png differ
diff --git a/src/qt/res/images/light/drkblue_rightArrow_small.png b/src/qt/res/images/light/drkblue_rightArrow_small.png
index 38f45d4..7ed328a 100644
Binary files a/src/qt/res/images/light/drkblue_rightArrow_small.png and b/src/qt/res/images/light/drkblue_rightArrow_small.png differ
diff --git a/src/qt/res/images/light/drkblue_upArrow_small.png b/src/qt/res/images/light/drkblue_upArrow_small.png
index 6480960..c0dff0f 100644
Binary files a/src/qt/res/images/light/drkblue_upArrow_small.png and b/src/qt/res/images/light/drkblue_upArrow_small.png differ
diff --git a/src/qt/res/images/light/drkblue_walletFrame_bg.png b/src/qt/res/images/light/drkblue_walletFrame_bg.png
index f69ed3b..4a802dc 100644
Binary files a/src/qt/res/images/light/drkblue_walletFrame_bg.png and b/src/qt/res/images/light/drkblue_walletFrame_bg.png differ
diff --git a/src/qt/res/images/light/splash.png b/src/qt/res/images/light/splash.png
index ee0ed5d..7a3c909 100644
Binary files a/src/qt/res/images/light/splash.png and b/src/qt/res/images/light/splash.png differ
diff --git a/src/qt/res/images/light/splash_testnet.png b/src/qt/res/images/light/splash_testnet.png
index 5197848..7a3c909 100644
Binary files a/src/qt/res/images/light/splash_testnet.png and b/src/qt/res/images/light/splash_testnet.png differ
diff --git a/src/qt/res/images/light/unchecked.png b/src/qt/res/images/light/unchecked.png
index c9e8742..b16ef40 100644
Binary files a/src/qt/res/images/light/unchecked.png and b/src/qt/res/images/light/unchecked.png differ
diff --git a/src/qt/res/images/trad/about.png b/src/qt/res/images/trad/about.png
index 0bc45bf..afe9574 100644
Binary files a/src/qt/res/images/trad/about.png and b/src/qt/res/images/trad/about.png differ
diff --git a/src/qt/res/images/trad/checked.png b/src/qt/res/images/trad/checked.png
index 238e834..4f337d8 100644
Binary files a/src/qt/res/images/trad/checked.png and b/src/qt/res/images/trad/checked.png differ
diff --git a/src/qt/res/images/trad/dash_logo_horizontal.png b/src/qt/res/images/trad/dash_logo_horizontal.png
index 6e5d175..9d2e9fd 100644
Binary files a/src/qt/res/images/trad/dash_logo_horizontal.png and b/src/qt/res/images/trad/dash_logo_horizontal.png differ
diff --git a/src/qt/res/images/trad/drkblue_downArrow.png b/src/qt/res/images/trad/drkblue_downArrow.png
index e26c529..2259e1d 100644
Binary files a/src/qt/res/images/trad/drkblue_downArrow.png and b/src/qt/res/images/trad/drkblue_downArrow.png differ
diff --git a/src/qt/res/images/trad/drkblue_downArrow_small.png b/src/qt/res/images/trad/drkblue_downArrow_small.png
index 0f66a1a..ef309ae 100644
Binary files a/src/qt/res/images/trad/drkblue_downArrow_small.png and b/src/qt/res/images/trad/drkblue_downArrow_small.png differ
diff --git a/src/qt/res/images/trad/drkblue_leftArrow_small.png b/src/qt/res/images/trad/drkblue_leftArrow_small.png
index eb0f63e..f3e9861 100644
Binary files a/src/qt/res/images/trad/drkblue_leftArrow_small.png and b/src/qt/res/images/trad/drkblue_leftArrow_small.png differ
diff --git a/src/qt/res/images/trad/drkblue_qtreeview_selected.png b/src/qt/res/images/trad/drkblue_qtreeview_selected.png
index 2656a1e..a8c128a 100644
Binary files a/src/qt/res/images/trad/drkblue_qtreeview_selected.png and b/src/qt/res/images/trad/drkblue_qtreeview_selected.png differ
diff --git a/src/qt/res/images/trad/drkblue_rightArrow_small.png b/src/qt/res/images/trad/drkblue_rightArrow_small.png
index 6041a52..7ed328a 100644
Binary files a/src/qt/res/images/trad/drkblue_rightArrow_small.png and b/src/qt/res/images/trad/drkblue_rightArrow_small.png differ
diff --git a/src/qt/res/images/trad/drkblue_upArrow_small.png b/src/qt/res/images/trad/drkblue_upArrow_small.png
index 4e854fd..c0dff0f 100644
Binary files a/src/qt/res/images/trad/drkblue_upArrow_small.png and b/src/qt/res/images/trad/drkblue_upArrow_small.png differ
diff --git a/src/qt/res/images/trad/drkblue_walletFrame_bg.png b/src/qt/res/images/trad/drkblue_walletFrame_bg.png
index f69ed3b..f5ee0d1 100644
Binary files a/src/qt/res/images/trad/drkblue_walletFrame_bg.png and b/src/qt/res/images/trad/drkblue_walletFrame_bg.png differ
diff --git a/src/qt/res/images/trad/splash.png b/src/qt/res/images/trad/splash.png
index 267d9a2..f1867b3 100644
Binary files a/src/qt/res/images/trad/splash.png and b/src/qt/res/images/trad/splash.png differ
diff --git a/src/qt/res/images/trad/splash_testnet.png b/src/qt/res/images/trad/splash_testnet.png
index 396980c..5a9ab94 100644
Binary files a/src/qt/res/images/trad/splash_testnet.png and b/src/qt/res/images/trad/splash_testnet.png differ
diff --git a/src/qt/res/images/trad/unchecked.png b/src/qt/res/images/trad/unchecked.png
index aaac898..b16ef40 100644
Binary files a/src/qt/res/images/trad/unchecked.png and b/src/qt/res/images/trad/unchecked.png differ
diff --git a/src/qt/res/movies/spinner-000.png b/src/qt/res/movies/spinner-000.png
index 0dc48d0..da47035 100644
Binary files a/src/qt/res/movies/spinner-000.png and b/src/qt/res/movies/spinner-000.png differ
diff --git a/src/qt/res/movies/spinner-001.png b/src/qt/res/movies/spinner-001.png
index d167f20..7ed75a0 100644
Binary files a/src/qt/res/movies/spinner-001.png and b/src/qt/res/movies/spinner-001.png differ
diff --git a/src/qt/res/movies/spinner-002.png b/src/qt/res/movies/spinner-002.png
index 4a1f1f8..c641025 100644
Binary files a/src/qt/res/movies/spinner-002.png and b/src/qt/res/movies/spinner-002.png differ
diff --git a/src/qt/res/movies/spinner-003.png b/src/qt/res/movies/spinner-003.png
index fb1c2cd..2d07242 100644
Binary files a/src/qt/res/movies/spinner-003.png and b/src/qt/res/movies/spinner-003.png differ
diff --git a/src/qt/res/movies/spinner-004.png b/src/qt/res/movies/spinner-004.png
index 4df2132..9e5b71f 100644
Binary files a/src/qt/res/movies/spinner-004.png and b/src/qt/res/movies/spinner-004.png differ
diff --git a/src/qt/res/movies/spinner-005.png b/src/qt/res/movies/spinner-005.png
index 5d6f41e..a9cc60d 100644
Binary files a/src/qt/res/movies/spinner-005.png and b/src/qt/res/movies/spinner-005.png differ
diff --git a/src/qt/res/movies/spinner-006.png b/src/qt/res/movies/spinner-006.png
index c1f7d18..1eb375d 100644
Binary files a/src/qt/res/movies/spinner-006.png and b/src/qt/res/movies/spinner-006.png differ
diff --git a/src/qt/res/movies/spinner-007.png b/src/qt/res/movies/spinner-007.png
index 1e794b2..50c53c4 100644
Binary files a/src/qt/res/movies/spinner-007.png and b/src/qt/res/movies/spinner-007.png differ
diff --git a/src/qt/res/movies/spinner-008.png b/src/qt/res/movies/spinner-008.png
index df12ea8..ce622aa 100644
Binary files a/src/qt/res/movies/spinner-008.png and b/src/qt/res/movies/spinner-008.png differ
diff --git a/src/qt/res/movies/spinner-009.png b/src/qt/res/movies/spinner-009.png
index 18fc3a7..fa16395 100644
Binary files a/src/qt/res/movies/spinner-009.png and b/src/qt/res/movies/spinner-009.png differ
diff --git a/src/qt/res/movies/spinner-010.png b/src/qt/res/movies/spinner-010.png
index a79c845..aa3e9b8 100644
Binary files a/src/qt/res/movies/spinner-010.png and b/src/qt/res/movies/spinner-010.png differ
diff --git a/src/qt/res/movies/spinner-011.png b/src/qt/res/movies/spinner-011.png
index 57baf66..098f1a3 100644
Binary files a/src/qt/res/movies/spinner-011.png and b/src/qt/res/movies/spinner-011.png differ
diff --git a/src/qt/res/movies/spinner-012.png b/src/qt/res/movies/spinner-012.png
index 9deae78..0772062 100644
Binary files a/src/qt/res/movies/spinner-012.png and b/src/qt/res/movies/spinner-012.png differ
diff --git a/src/qt/res/movies/spinner-013.png b/src/qt/res/movies/spinner-013.png
index 0659d48..49398f7 100644
Binary files a/src/qt/res/movies/spinner-013.png and b/src/qt/res/movies/spinner-013.png differ
diff --git a/src/qt/res/movies/spinner-014.png b/src/qt/res/movies/spinner-014.png
index bc1ef51..0e0ea8c 100644
Binary files a/src/qt/res/movies/spinner-014.png and b/src/qt/res/movies/spinner-014.png differ
diff --git a/src/qt/res/movies/spinner-015.png b/src/qt/res/movies/spinner-015.png
index 24b57b6..102d058 100644
Binary files a/src/qt/res/movies/spinner-015.png and b/src/qt/res/movies/spinner-015.png differ
diff --git a/src/qt/res/movies/spinner-016.png b/src/qt/res/movies/spinner-016.png
index d622872..d7e0e74 100644
Binary files a/src/qt/res/movies/spinner-016.png and b/src/qt/res/movies/spinner-016.png differ
diff --git a/src/qt/res/movies/spinner-017.png b/src/qt/res/movies/spinner-017.png
index f48f688..51149f7 100644
Binary files a/src/qt/res/movies/spinner-017.png and b/src/qt/res/movies/spinner-017.png differ
diff --git a/src/qt/res/movies/spinner-018.png b/src/qt/res/movies/spinner-018.png
index a2c8f38..69d9ea1 100644
Binary files a/src/qt/res/movies/spinner-018.png and b/src/qt/res/movies/spinner-018.png differ
diff --git a/src/qt/res/movies/spinner-019.png b/src/qt/res/movies/spinner-019.png
index 9d7cc35..fe00d23 100644
Binary files a/src/qt/res/movies/spinner-019.png and b/src/qt/res/movies/spinner-019.png differ
diff --git a/src/qt/res/movies/spinner-020.png b/src/qt/res/movies/spinner-020.png
index 1a07acc..27a74c9 100644
Binary files a/src/qt/res/movies/spinner-020.png and b/src/qt/res/movies/spinner-020.png differ
diff --git a/src/qt/res/movies/spinner-021.png b/src/qt/res/movies/spinner-021.png
index 9cea8f2..6aed356 100644
Binary files a/src/qt/res/movies/spinner-021.png and b/src/qt/res/movies/spinner-021.png differ
diff --git a/src/qt/res/movies/spinner-022.png b/src/qt/res/movies/spinner-022.png
index 60250f6..e50aa1e 100644
Binary files a/src/qt/res/movies/spinner-022.png and b/src/qt/res/movies/spinner-022.png differ
diff --git a/src/qt/res/movies/spinner-023.png b/src/qt/res/movies/spinner-023.png
index fc290a0..4cd38dd 100644
Binary files a/src/qt/res/movies/spinner-023.png and b/src/qt/res/movies/spinner-023.png differ
diff --git a/src/qt/res/movies/spinner-024.png b/src/qt/res/movies/spinner-024.png
index c5dcf1e..60063da 100644
Binary files a/src/qt/res/movies/spinner-024.png and b/src/qt/res/movies/spinner-024.png differ
diff --git a/src/qt/res/movies/spinner-025.png b/src/qt/res/movies/spinner-025.png
index 7f3577a..d0c7c5c 100644
Binary files a/src/qt/res/movies/spinner-025.png and b/src/qt/res/movies/spinner-025.png differ
diff --git a/src/qt/res/movies/spinner-026.png b/src/qt/res/movies/spinner-026.png
index 1663ddf..c999768 100644
Binary files a/src/qt/res/movies/spinner-026.png and b/src/qt/res/movies/spinner-026.png differ
diff --git a/src/qt/res/movies/spinner-027.png b/src/qt/res/movies/spinner-027.png
index d0e6da4..4d8585b 100644
Binary files a/src/qt/res/movies/spinner-027.png and b/src/qt/res/movies/spinner-027.png differ
diff --git a/src/qt/res/movies/spinner-028.png b/src/qt/res/movies/spinner-028.png
index 2a7aba5..2544e3c 100644
Binary files a/src/qt/res/movies/spinner-028.png and b/src/qt/res/movies/spinner-028.png differ
diff --git a/src/qt/res/movies/spinner-029.png b/src/qt/res/movies/spinner-029.png
index c8ca15c..4c46796 100644
Binary files a/src/qt/res/movies/spinner-029.png and b/src/qt/res/movies/spinner-029.png differ
diff --git a/src/qt/res/movies/spinner-030.png b/src/qt/res/movies/spinner-030.png
index c847c99..01d24fd 100644
Binary files a/src/qt/res/movies/spinner-030.png and b/src/qt/res/movies/spinner-030.png differ
diff --git a/src/qt/res/movies/spinner-031.png b/src/qt/res/movies/spinner-031.png
index 4034431..42e8de2 100644
Binary files a/src/qt/res/movies/spinner-031.png and b/src/qt/res/movies/spinner-031.png differ
diff --git a/src/qt/res/movies/spinner-032.png b/src/qt/res/movies/spinner-032.png
index f9db080..6922621 100644
Binary files a/src/qt/res/movies/spinner-032.png and b/src/qt/res/movies/spinner-032.png differ
diff --git a/src/qt/res/movies/spinner-033.png b/src/qt/res/movies/spinner-033.png
index 43f5771..008865e 100644
Binary files a/src/qt/res/movies/spinner-033.png and b/src/qt/res/movies/spinner-033.png differ
diff --git a/src/qt/res/movies/spinner-034.png b/src/qt/res/movies/spinner-034.png
index c26656f..ba2cc1c 100644
Binary files a/src/qt/res/movies/spinner-034.png and b/src/qt/res/movies/spinner-034.png differ
diff --git a/src/qt/res/movies/spinner-035.png b/src/qt/res/movies/spinner-035.png
index e471f95..cf93661 100644
Binary files a/src/qt/res/movies/spinner-035.png and b/src/qt/res/movies/spinner-035.png differ
diff --git a/src/qt/splashscreen.cpp b/src/qt/splashscreen.cpp
index 363b734..b193f48 100644
--- a/src/qt/splashscreen.cpp
+++ b/src/qt/splashscreen.cpp
@@ -164,29 +164,29 @@ static void SetProgressBreakAction(SplashScreen *splash, const std::functionShowProgress.connect(boost::bind(ShowProgress, splash, _1, _2));
+ wallet->ShowProgress.connect(boost::bind(ShowProgress, splash, boost::placeholders::_1, boost::placeholders::_2));
}
#endif
void SplashScreen::subscribeToCoreSignals()
{
// Connect signals to client
- uiInterface.InitMessage.connect(boost::bind(InitMessage, this, _1));
- uiInterface.ShowProgress.connect(boost::bind(ShowProgress, this, _1, _2));
- uiInterface.SetProgressBreakAction.connect(boost::bind(SetProgressBreakAction, this, _1));
+ uiInterface.InitMessage.connect(boost::bind(InitMessage, this, boost::placeholders::_1));
+ uiInterface.ShowProgress.connect(boost::bind(ShowProgress, this, boost::placeholders::_1, boost::placeholders::_2));
+ uiInterface.SetProgressBreakAction.connect(boost::bind(SetProgressBreakAction, this, boost::placeholders::_1));
#ifdef ENABLE_WALLET
- uiInterface.LoadWallet.connect(boost::bind(ConnectWallet, this, _1));
+ uiInterface.LoadWallet.connect(boost::bind(ConnectWallet, this, boost::placeholders::_1));
#endif
}
void SplashScreen::unsubscribeFromCoreSignals()
{
// Disconnect signals from client
- uiInterface.InitMessage.disconnect(boost::bind(InitMessage, this, _1));
- uiInterface.ShowProgress.disconnect(boost::bind(ShowProgress, this, _1, _2));
+ uiInterface.InitMessage.disconnect(boost::bind(InitMessage, this, boost::placeholders::_1));
+ uiInterface.ShowProgress.disconnect(boost::bind(ShowProgress, this, boost::placeholders::_1, boost::placeholders::_2));
#ifdef ENABLE_WALLET
if(pwalletMain)
- pwalletMain->ShowProgress.disconnect(boost::bind(ShowProgress, this, _1, _2));
+ pwalletMain->ShowProgress.disconnect(boost::bind(ShowProgress, this, boost::placeholders::_1, boost::placeholders::_2));
#endif
}
diff --git a/src/qt/trafficgraphwidget.cpp b/src/qt/trafficgraphwidget.cpp
index bf89b92..51734d3 100644
--- a/src/qt/trafficgraphwidget.cpp
+++ b/src/qt/trafficgraphwidget.cpp
@@ -8,6 +8,7 @@
#include
#include
+#include
#include
#include
@@ -119,13 +120,13 @@ void TrafficGraphWidget::paintEvent(QPaintEvent *)
if(!queue.empty()) {
QPainterPath pIn;
- paintPath(pIn, queue, boost::bind(chooseIn,_1));
+ paintPath(pIn, queue, boost::bind(chooseIn,boost::placeholders::_1));
painter.fillPath(pIn, QColor(0, 255, 0, 128));
painter.setPen(Qt::green);
painter.drawPath(pIn);
QPainterPath pOut;
- paintPath(pOut, queue, boost::bind(chooseOut,_1));
+ paintPath(pOut, queue, boost::bind(chooseOut,boost::placeholders::_1));
painter.fillPath(pOut, QColor(255, 0, 0, 128));
painter.setPen(Qt::red);
painter.drawPath(pOut);
diff --git a/src/qt/transactiontablemodel.cpp b/src/qt/transactiontablemodel.cpp
index 5ba8e02..ecc32b4 100644
--- a/src/qt/transactiontablemodel.cpp
+++ b/src/qt/transactiontablemodel.cpp
@@ -801,13 +801,13 @@ static void ShowProgress(TransactionTableModel *ttm, const std::string &title, i
void TransactionTableModel::subscribeToCoreSignals()
{
// Connect signals to wallet
- wallet->NotifyTransactionChanged.connect(boost::bind(NotifyTransactionChanged, this, _1, _2, _3));
- wallet->ShowProgress.connect(boost::bind(ShowProgress, this, _1, _2));
+ wallet->NotifyTransactionChanged.connect(boost::bind(NotifyTransactionChanged, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3));
+ wallet->ShowProgress.connect(boost::bind(ShowProgress, this, boost::placeholders::_1, boost::placeholders::_2));
}
void TransactionTableModel::unsubscribeFromCoreSignals()
{
// Disconnect signals from wallet
- wallet->NotifyTransactionChanged.disconnect(boost::bind(NotifyTransactionChanged, this, _1, _2, _3));
- wallet->ShowProgress.disconnect(boost::bind(ShowProgress, this, _1, _2));
+ wallet->NotifyTransactionChanged.disconnect(boost::bind(NotifyTransactionChanged, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3));
+ wallet->ShowProgress.disconnect(boost::bind(ShowProgress, this, boost::placeholders::_1, boost::placeholders::_2));
}
diff --git a/src/qt/walletmodel.cpp b/src/qt/walletmodel.cpp
index 93085db..9bb3a3d 100644
--- a/src/qt/walletmodel.cpp
+++ b/src/qt/walletmodel.cpp
@@ -557,21 +557,21 @@ static void NotifyWatchonlyChanged(WalletModel *walletmodel, bool fHaveWatchonly
void WalletModel::subscribeToCoreSignals()
{
// Connect signals to wallet
- wallet->NotifyStatusChanged.connect(boost::bind(&NotifyKeyStoreStatusChanged, this, _1));
- wallet->NotifyAddressBookChanged.connect(boost::bind(NotifyAddressBookChanged, this, _1, _2, _3, _4, _5, _6));
- wallet->NotifyTransactionChanged.connect(boost::bind(NotifyTransactionChanged, this, _1, _2, _3));
- wallet->ShowProgress.connect(boost::bind(ShowProgress, this, _1, _2));
- wallet->NotifyWatchonlyChanged.connect(boost::bind(NotifyWatchonlyChanged, this, _1));
+ wallet->NotifyStatusChanged.connect(boost::bind(&NotifyKeyStoreStatusChanged, this, boost::placeholders::_1));
+ wallet->NotifyAddressBookChanged.connect(boost::bind(NotifyAddressBookChanged, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4, boost::placeholders::_5, boost::placeholders::_6));
+ wallet->NotifyTransactionChanged.connect(boost::bind(NotifyTransactionChanged, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3));
+ wallet->ShowProgress.connect(boost::bind(ShowProgress, this, boost::placeholders::_1, boost::placeholders::_2));
+ wallet->NotifyWatchonlyChanged.connect(boost::bind(NotifyWatchonlyChanged, this, boost::placeholders::_1));
}
void WalletModel::unsubscribeFromCoreSignals()
{
// Disconnect signals from wallet
- wallet->NotifyStatusChanged.disconnect(boost::bind(&NotifyKeyStoreStatusChanged, this, _1));
- wallet->NotifyAddressBookChanged.disconnect(boost::bind(NotifyAddressBookChanged, this, _1, _2, _3, _4, _5, _6));
- wallet->NotifyTransactionChanged.disconnect(boost::bind(NotifyTransactionChanged, this, _1, _2, _3));
- wallet->ShowProgress.disconnect(boost::bind(ShowProgress, this, _1, _2));
- wallet->NotifyWatchonlyChanged.disconnect(boost::bind(NotifyWatchonlyChanged, this, _1));
+ wallet->NotifyStatusChanged.disconnect(boost::bind(&NotifyKeyStoreStatusChanged, this, boost::placeholders::_1));
+ wallet->NotifyAddressBookChanged.disconnect(boost::bind(NotifyAddressBookChanged, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3, boost::placeholders::_4, boost::placeholders::_5, boost::placeholders::_6));
+ wallet->NotifyTransactionChanged.disconnect(boost::bind(NotifyTransactionChanged, this, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3));
+ wallet->ShowProgress.disconnect(boost::bind(ShowProgress, this, boost::placeholders::_1, boost::placeholders::_2));
+ wallet->NotifyWatchonlyChanged.disconnect(boost::bind(NotifyWatchonlyChanged, this, boost::placeholders::_1));
}
// WalletModel::UnlockContext implementation
diff --git a/src/rpc/mining.cpp b/src/rpc/mining.cpp
index af133c4..202e40f 100644
--- a/src/rpc/mining.cpp
+++ b/src/rpc/mining.cpp
@@ -744,21 +744,47 @@ UniValue getblocktemplate(const UniValue& params, bool fHelp)
result.push_back(Pair("superblocks_started", pindexPrev->nHeight + 1 > Params().GetConsensus().nSuperblockStartBlock));
result.push_back(Pair("superblocks_enabled", sporkManager.IsSporkActive(SPORK_9_SUPERBLOCKS_ENABLED)));
-
- UniValue foundationArray(UniValue::VARR);
- int h = pindexPrev->nHeight+1;
- int pos = 0;
-
- CBitcoinAddress address2(jijin[pos]);
- CScript FOUNDER_19_1_SCRIPT = GetScriptForDestination(address2.Get());
- UniValue entry(UniValue::VOBJ);
- entry.push_back(Pair("payee", address2.ToString().c_str()));
- entry.push_back(Pair("script", HexStr(FOUNDER_19_1_SCRIPT.begin(), FOUNDER_19_1_SCRIPT.end())));
- entry.push_back(Pair("amount", FOUNDATION));
- foundationArray.push_back(entry);
+ // 2.2.1.6 25th August 2023 - Foztor
+ // Pools that use getblocktemplate get confused, we should have removed this as part of 2.2 anyway.
+ // Thanks to PinPin @zergpool for helping to find this.
+ //
+ // 2.4.1.0 Jan 2024 - Foztor
+ // We choose to re-introduce the Foundation Fee.....
+
+ UniValue foundationArray(UniValue::VARR);
+ int h = pindexPrev->nHeight+1;
+ int pos = 0;
+
+ static const char* jijin[] = {
+ "PHjJrmyDGCAjQFsbiucsC1Ex1nPbu8hgiC",
+ };
+ static const char* jijin2[] = {
+ "ydZdAomNCF3y5oX45vY9g34attJv2RSenG",
+ };
+
+ if(Params().NetworkIDString() == CBaseChainParams::REGTEST) {
+ CBitcoinAddress addressF(jijin2[pos]);
+ CScript FOUNDER_19_1_SCRIPT = GetScriptForDestination(addressF.Get());
+ CAmount foundationPayment = GetFoundationPayment(h,0);
+ UniValue entry(UniValue::VOBJ);
+ entry.push_back(Pair("payee", addressF.ToString().c_str()));
+ entry.push_back(Pair("script", HexStr(FOUNDER_19_1_SCRIPT.begin(), FOUNDER_19_1_SCRIPT.end())));
+ entry.push_back(Pair("amount", foundationPayment));
+ foundationArray.push_back(entry);
+ } else {
+ CBitcoinAddress addressF(jijin[pos]);
+ CScript FOUNDER_19_1_SCRIPT = GetScriptForDestination(addressF.Get());
+ CAmount foundationPayment = GetFoundationPayment(h,1);
+ UniValue entry(UniValue::VOBJ);
+ entry.push_back(Pair("payee", addressF.ToString().c_str()));
+ entry.push_back(Pair("script", HexStr(FOUNDER_19_1_SCRIPT.begin(), FOUNDER_19_1_SCRIPT.end())));
+ entry.push_back(Pair("amount", foundationPayment));
+ foundationArray.push_back(entry);
+ }
- result.push_back(Pair("foundation", foundationArray));
+ result.push_back(Pair("foundation", foundationArray));
+ // End of removal of foundation from getblocktemplate in 2.2.1.6
return result;
}
diff --git a/src/script/PEPEPOWconsensus.h b/src/script/PEPEPOWconsensus.h
new file mode 100644
index 0000000..ff7dc4a
--- /dev/null
+++ b/src/script/PEPEPOWconsensus.h
@@ -0,0 +1,69 @@
+// Copyright (c) 2009-2010 Satoshi Nakamoto
+// Copyright (c) 2009-2015 The Bitcoin Core developers
+// Distributed under the MIT software license, see the accompanying
+// file COPYING or http://www.opensource.org/licenses/mit-license.php.
+
+#ifndef BITCOIN_BITCOINCONSENSUS_H
+#define BITCOIN_BITCOINCONSENSUS_H
+
+#if defined(BUILD_BITCOIN_INTERNAL) && defined(HAVE_CONFIG_H)
+#include "config/PEPEPOW-config.h"
+ #if defined(_WIN32)
+ #if defined(DLL_EXPORT)
+ #if defined(HAVE_FUNC_ATTRIBUTE_DLLEXPORT)
+ #define EXPORT_SYMBOL __declspec(dllexport)
+ #else
+ #define EXPORT_SYMBOL
+ #endif
+ #endif
+ #elif defined(HAVE_FUNC_ATTRIBUTE_VISIBILITY)
+ #define EXPORT_SYMBOL __attribute__ ((visibility ("default")))
+ #endif
+#elif defined(MSC_VER) && !defined(STATIC_LIBBITCOINCONSENSUS)
+ #define EXPORT_SYMBOL __declspec(dllimport)
+#endif
+
+#ifndef EXPORT_SYMBOL
+ #define EXPORT_SYMBOL
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define BITCOINCONSENSUS_API_VER 0
+
+typedef enum PEPEPOWconsensus_error_t
+{
+ PEPEPOWconsensus_ERR_OK = 0,
+ PEPEPOWconsensus_ERR_TX_INDEX,
+ PEPEPOWconsensus_ERR_TX_SIZE_MISMATCH,
+ PEPEPOWconsensus_ERR_TX_DESERIALIZE,
+} PEPEPOWconsensus_error;
+
+/** Script verification flags */
+enum
+{
+ PEPEPOWconsensus_SCRIPT_FLAGS_VERIFY_NONE = 0,
+ PEPEPOWconsensus_SCRIPT_FLAGS_VERIFY_P2SH = (1U << 0), // evaluate P2SH (BIP16) subscripts
+ PEPEPOWconsensus_SCRIPT_FLAGS_VERIFY_DERSIG = (1U << 2), // enforce strict DER (BIP66) compliance
+ PEPEPOWconsensus_SCRIPT_FLAGS_VERIFY_CHECKLOCKTIMEVERIFY = (1U << 9), // enable CHECKLOCKTIMEVERIFY (BIP65)
+};
+
+/// Returns 1 if the input nIn of the serialized transaction pointed to by
+/// txTo correctly spends the scriptPubKey pointed to by scriptPubKey under
+/// the additional constraints specified by flags.
+/// If not NULL, err will contain an error/success code for the operation
+EXPORT_SYMBOL int PEPEPOWconsensus_verify_script(const unsigned char *scriptPubKey, unsigned int scriptPubKeyLen,
+ const unsigned char *txTo , unsigned int txToLen,
+ unsigned int nIn, unsigned int flags, PEPEPOWconsensus_error* err);
+
+EXPORT_SYMBOL unsigned int PEPEPOWconsensus_version();
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#undef EXPORT_SYMBOL
+
+#endif // BITCOIN_BITCOINCONSENSUS_H
diff --git a/src/secp256k1/Makefile.am b/src/secp256k1/Makefile.am
index 7772a4e..782f825 100644
--- a/src/secp256k1/Makefile.am
+++ b/src/secp256k1/Makefile.am
@@ -75,8 +75,9 @@ TESTS = tests
endif
if USE_ECMULT_STATIC_PRECOMPUTATION
-CPPFLAGS_FOR_BUILD +=-I$(top_srcdir)
-CFLAGS_FOR_BUILD += -Wall -Wextra -Wno-unused-function
+CPPFLAGS_FOR_BUILD =-I$(top_srcdir)
+CFLAGS_FOR_BUILD = -Wall -Wextra -Wno-unused-function
+CC_FOR_BUILD = cc
gen_context_OBJECTS = gen_context.o
gen_context_BIN = gen_context$(BUILD_EXEEXT)
diff --git a/src/spork.cpp b/src/spork.cpp
index 1e191c8..670fdee 100644
--- a/src/spork.cpp
+++ b/src/spork.cpp
@@ -134,6 +134,7 @@ bool CSporkManager::IsSporkActive(int nSporkID)
case SPORK_12_RECONSIDER_BLOCKS: r = SPORK_12_RECONSIDER_BLOCKS_DEFAULT; break;
case SPORK_13_OLD_SUPERBLOCK_FLAG: r = SPORK_13_OLD_SUPERBLOCK_FLAG_DEFAULT; break;
case SPORK_14_REQUIRE_SENTINEL_FLAG: r = SPORK_14_REQUIRE_SENTINEL_FLAG_DEFAULT; break;
+ case SPORK_15_REQUIRE_FOUNDATION_FEE: r = SPORK_15_REQUIRE_FOUNDATION_FEE_DEFAULT; break;
default:
LogPrint("spork", "CSporkManager::IsSporkActive -- Unknown Spork ID %d\n", nSporkID);
r = 4070908800ULL; // 2099-1-1 i.e. off by default
@@ -160,6 +161,7 @@ int64_t CSporkManager::GetSporkValue(int nSporkID)
case SPORK_12_RECONSIDER_BLOCKS: return SPORK_12_RECONSIDER_BLOCKS_DEFAULT;
case SPORK_13_OLD_SUPERBLOCK_FLAG: return SPORK_13_OLD_SUPERBLOCK_FLAG_DEFAULT;
case SPORK_14_REQUIRE_SENTINEL_FLAG: return SPORK_14_REQUIRE_SENTINEL_FLAG_DEFAULT;
+ case SPORK_15_REQUIRE_FOUNDATION_FEE: return SPORK_15_REQUIRE_FOUNDATION_FEE_DEFAULT;
default:
LogPrint("spork", "CSporkManager::GetSporkValue -- Unknown Spork ID %d\n", nSporkID);
return -1;
@@ -178,6 +180,7 @@ int CSporkManager::GetSporkIDByName(std::string strName)
if (strName == "SPORK_12_RECONSIDER_BLOCKS") return SPORK_12_RECONSIDER_BLOCKS;
if (strName == "SPORK_13_OLD_SUPERBLOCK_FLAG") return SPORK_13_OLD_SUPERBLOCK_FLAG;
if (strName == "SPORK_14_REQUIRE_SENTINEL_FLAG") return SPORK_14_REQUIRE_SENTINEL_FLAG;
+ if (strName == "SPORK_15_REQUIRE_FOUNDATION_FEE") return SPORK_15_REQUIRE_FOUNDATION_FEE;
LogPrint("spork", "CSporkManager::GetSporkIDByName -- Unknown Spork name '%s'\n", strName);
return -1;
@@ -195,6 +198,7 @@ std::string CSporkManager::GetSporkNameByID(int nSporkID)
case SPORK_12_RECONSIDER_BLOCKS: return "SPORK_12_RECONSIDER_BLOCKS";
case SPORK_13_OLD_SUPERBLOCK_FLAG: return "SPORK_13_OLD_SUPERBLOCK_FLAG";
case SPORK_14_REQUIRE_SENTINEL_FLAG: return "SPORK_14_REQUIRE_SENTINEL_FLAG";
+ case SPORK_15_REQUIRE_FOUNDATION_FEE: return "SPORK_15_REQUIRE_FOUNDATION_FEE_DEFAULT";
default:
LogPrint("spork", "CSporkManager::GetSporkNameByID -- Unknown Spork ID %d\n", nSporkID);
return "Unknown";
diff --git a/src/spork.h b/src/spork.h
index 06baf9a..1b2639f 100644
--- a/src/spork.h
+++ b/src/spork.h
@@ -17,7 +17,7 @@ class CSporkManager;
- This would result in old clients getting confused about which spork is for what
*/
static const int SPORK_START = 10001;
-static const int SPORK_END = 10013;
+static const int SPORK_END = 10014;
static const int SPORK_2_INSTANTSEND_ENABLED = 10001;
static const int SPORK_3_INSTANTSEND_BLOCK_FILTERING = 10002;
@@ -28,16 +28,18 @@ static const int SPORK_10_MASTERNODE_PAY_UPDATED_NODES = 10009;
static const int SPORK_12_RECONSIDER_BLOCKS = 10011;
static const int SPORK_13_OLD_SUPERBLOCK_FLAG = 10012;
static const int SPORK_14_REQUIRE_SENTINEL_FLAG = 10013;
+static const int SPORK_15_REQUIRE_FOUNDATION_FEE = 10014;
static const int64_t SPORK_2_INSTANTSEND_ENABLED_DEFAULT = 0; // ON
static const int64_t SPORK_3_INSTANTSEND_BLOCK_FILTERING_DEFAULT = 0; // ON
static const int64_t SPORK_5_INSTANTSEND_MAX_VALUE_DEFAULT = 1000; // 1000 PEPEW
-static const int64_t SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT_DEFAULT = 1685008449ULL;// OFF
+static const int64_t SPORK_8_MASTERNODE_PAYMENT_ENFORCEMENT_DEFAULT = 4070908800ULL; // Off because the PEPEPOW Superblock implementation is, hmm, broke
static const int64_t SPORK_9_SUPERBLOCKS_ENABLED_DEFAULT = 4070908800ULL;// OFF
static const int64_t SPORK_10_MASTERNODE_PAY_UPDATED_NODES_DEFAULT = 4070908800ULL;// OFF
static const int64_t SPORK_12_RECONSIDER_BLOCKS_DEFAULT = 0; // 0 BLOCKS
static const int64_t SPORK_13_OLD_SUPERBLOCK_FLAG_DEFAULT = 4070908800ULL;// OFF
static const int64_t SPORK_14_REQUIRE_SENTINEL_FLAG_DEFAULT = 4070908800ULL;// OFF
+static const int64_t SPORK_15_REQUIRE_FOUNDATION_FEE_DEFAULT = 1706814000ULL;// 1st Feb 2024 19:00 UTC
extern std::map mapSporks;
extern CSporkManager sporkManager;
diff --git a/src/test/test_PEPEPOW.h b/src/test/test_PEPEPOW.h
new file mode 100644
index 0000000..69f761e
--- /dev/null
+++ b/src/test/test_PEPEPOW.h
@@ -0,0 +1,90 @@
+#ifndef BITCOIN_TEST_TEST_PEPE_H
+#define BITCOIN_TEST_TEST_PEPE_H
+
+#include "chainparamsbase.h"
+#include "key.h"
+#include "pubkey.h"
+#include "txdb.h"
+#include "txmempool.h"
+
+#include
+#include
+
+/** Basic testing setup.
+ * This just configures logging and chain parameters.
+ */
+struct BasicTestingSetup {
+ ECCVerifyHandle globalVerifyHandle;
+
+ BasicTestingSetup(const std::string& chainName = CBaseChainParams::MAIN);
+ ~BasicTestingSetup();
+};
+
+/** Testing setup that configures a complete environment.
+ * Included are data directory, coins database, script check threads
+ * and wallet (if enabled) setup.
+ */
+class CConnman;
+struct TestingSetup: public BasicTestingSetup {
+ CCoinsViewDB *pcoinsdbview;
+ boost::filesystem::path pathTemp;
+ boost::thread_group threadGroup;
+ CConnman* connman;
+
+ TestingSetup(const std::string& chainName = CBaseChainParams::MAIN);
+ ~TestingSetup();
+};
+
+class CBlock;
+struct CMutableTransaction;
+class CScript;
+
+//
+// Testing fixture that pre-creates a
+// 100-block REGTEST-mode block chain
+//
+struct TestChain100Setup : public TestingSetup {
+ TestChain100Setup();
+
+ // Create a new block with just given transactions, coinbase paying to
+ // scriptPubKey, and try to add it to the current chain.
+ CBlock CreateAndProcessBlock(const std::vector& txns,
+ const CScript& scriptPubKey);
+
+ ~TestChain100Setup();
+
+ std::vector coinbaseTxns; // For convenience, coinbase transactions
+ CKey coinbaseKey; // private/public key needed to spend coinbase transactions
+};
+
+class CTxMemPoolEntry;
+class CTxMemPool;
+
+struct TestMemPoolEntryHelper
+{
+ // Default values
+ CAmount nFee;
+ int64_t nTime;
+ double dPriority;
+ unsigned int nHeight;
+ bool hadNoDependencies;
+ bool spendsCoinbase;
+ unsigned int sigOpCount;
+ LockPoints lp;
+
+ TestMemPoolEntryHelper() :
+ nFee(0), nTime(0), dPriority(0.0), nHeight(1),
+ hadNoDependencies(false), spendsCoinbase(false), sigOpCount(1) { }
+
+ CTxMemPoolEntry FromTx(CMutableTransaction &tx, CTxMemPool *pool = NULL);
+
+ // Change the default value
+ TestMemPoolEntryHelper &Fee(CAmount _fee) { nFee = _fee; return *this; }
+ TestMemPoolEntryHelper &Time(int64_t _time) { nTime = _time; return *this; }
+ TestMemPoolEntryHelper &Priority(double _priority) { dPriority = _priority; return *this; }
+ TestMemPoolEntryHelper &Height(unsigned int _height) { nHeight = _height; return *this; }
+ TestMemPoolEntryHelper &HadNoDependencies(bool _hnd) { hadNoDependencies = _hnd; return *this; }
+ TestMemPoolEntryHelper &SpendsCoinbase(bool _flag) { spendsCoinbase = _flag; return *this; }
+ TestMemPoolEntryHelper &SigOps(unsigned int _sigops) { sigOpCount = _sigops; return *this; }
+};
+#endif
diff --git a/src/validation.cpp b/src/validation.cpp
index 03895e6..fbd9d1f 100644
--- a/src/validation.cpp
+++ b/src/validation.cpp
@@ -519,10 +519,17 @@ bool CheckTransaction(const CTransaction& tx, CValidationState &state)
// LogPrintf("------------CheckTransaction: begin CheckTransaction----------------\n");
if (tx.vin[0].scriptSig.size() < 2 || tx.vin[0].scriptSig.size() > 100)
return state.DoS(100, false, REJECT_INVALID, "bad-cb-length");
- if (!CheckFoundersInputs(tx, state, chainActive.Height())){
-// LogPrintf("------------CheckTransaction: begin CheckFoundersInputs----------------\n");
- return false;
- }
+ // Get rid of FoundersFee Nonsense as of Protocol 30700 / Release 2.1
+ // Re-introduced with SPORK15 Jan 24
+ if(Params().NetworkIDString() == CBaseChainParams::REGTEST) { // Always test Foundation input on Regtest networks
+ if (!CheckFoundersInputs(tx, state, chainActive.Height())){
+ return false; } // Returning True is a bad idea (TM)
+ } else {
+ if (sporkManager.IsSporkActive(SPORK_15_REQUIRE_FOUNDATION_FEE)) {
+ if (!CheckFoundersInputs(tx, state, chainActive.Height())){
+ return false;
+ } }
+ }
// LogPrintf("------------CheckTransaction: begin CheckTransaction--end----------------\n");
@@ -541,12 +548,16 @@ bool CheckTransaction(const CTransaction& tx, CValidationState &state)
}
bool CheckFoundersInputs(const CTransaction &tx, CValidationState &state, int nHeight){
-// LogPrintf("----------------height= %i,FOUNDATION_HEIGHT=%i ----------------\n", nHeight,FOUNDATION_HEIGHT);
+ if( nHeight < 500) {
+ return true;
+ }
+
+ if(Params().NetworkIDString() != CBaseChainParams::REGTEST) {
+ if( nHeight < 1065651) {
+ return true;
+ }
+ }
- if(nHeight < FOUNDATION_HEIGHT + 400){
-// LogPrintf("----------------nHeight < FOUNDATION_HEIGHT + 10,height= %i,FOUNDATION_HEIGHT=%i ----------------\n", nHeight,FOUNDATION_HEIGHT);
- return true;
- }
if(tx.vin[0].prevout.IsNull()){
LogPrintf("----------------CheckFoundersInputs:tx.GetHash=%s\n tx=%s\n", tx.GetHash().ToString(),tx.ToString());
CAmount res = GetBlockSubsidy(0,nHeight,Params().GetConsensus(), false);
@@ -558,27 +569,49 @@ bool CheckFoundersInputs(const CTransaction &tx, CValidationState &state, int nH
return true;
}
bool found_1 = false;
-
+ bool found_2 = false;
+ if(Params().NetworkIDString() == CBaseChainParams::REGTEST) {
+ found_1 = true;
+ }
+
+ static const char* jijin1[] = {
+ "ydZdAomNCF3y5oX45vY9g34attJv2RSenG",
+ };
+
+ static const char* jijin[] = {
+ "PHjJrmyDGCAjQFsbiucsC1Ex1nPbu8hgiC",
+ };
+
CScript FOUNDER_1_SCRIPT = GetScriptForDestination(CBitcoinAddress(jijin[0]).Get());
-
+ CAmount foundAmount = GetFoundationPayment(nHeight,1);
+ if(Params().NetworkIDString() == CBaseChainParams::REGTEST) {
+ FOUNDER_1_SCRIPT = GetScriptForDestination(CBitcoinAddress(jijin1[0]).Get());
+ foundAmount = GetFoundationPayment(nHeight,0);
+ }
BOOST_FOREACH(const CTxOut &output, tx.vout)
{
- if (output.scriptPubKey == FOUNDER_1_SCRIPT && output.nValue == FOUNDATION)
+ if (output.scriptPubKey == FOUNDER_1_SCRIPT && output.nValue >= foundAmount)
{
+ LogPrintf("FOUND FOUNDATION PAYMENT at height=%i\n", nHeight);
found_1 = true;
+ found_2 = true;
continue;
}
}
-
+ if (!found_2 && found_1) { // Can only happen on REGTEST
+ LogPrintf("ERROR: REGTEST MISSING FOUNDATION PAYMENT at height=%i\n", nHeight);
+ }
if (!found_1)
{
// LogPrint("mempool", "----------------CTransaction::CheckTransaction() : founders reward missing,%i---------------\n", nHeight);
return state.DoS(100, false, REJECT_FOUNDER_REWARD_MISSING,"CTransaction::CheckTransaction() : founders reward missing");
+ LogPrintf("ERROR: MISSING FOUNDATION PAYMENT at height=%i\n", nHeight);
}
// LogPrint("----------------CTransaction::CheckTransaction() : return true----------------\n");
return true;
+
}
bool ContextualCheckTransaction(const CTransaction& tx, CValidationState &state, CBlockIndex * const pindexPrev)
@@ -1291,16 +1324,42 @@ NOTE: unlike bitcoin we are using PREVIOUS block height here,
*/
CAmount GetBlockSubsidy(int nPrevBits, int nPrevHeight, const Consensus::Params& consensusParams, bool fSuperblockPartOnly)
{
- CAmount nSubsidy = 50000 * COIN;
+ CAmount nSubsidy = 0 * COIN;
if(nPrevHeight < 129600){
nSubsidy = 100000 *COIN;
- }else if(nPrevHeight < 259200) {
- nSubsidy = 50000 * COIN;
+ }else if(nPrevHeight < 259200){
+ nSubsidy = 50000*COIN;
}else{
- nSubsidy = 10000*COIN;
+ nSubsidy = 5000*COIN;
+ }
+ // Well that last halving wasn't a halving was it?
+ // We will restore the final halving at block height 385000
+ // As a result of the community vote on 17th August 2023
+ if(nPrevHeight > 385000) {
+ nSubsidy = 25000*COIN;
+ }
+ if(nPrevHeight > 514600) {
+ nSubsidy = 12500*COIN;
+ }
+ if(nPrevHeight > 644200) {
+ nSubsidy = 6250*COIN;
}
+ if(nPrevHeight > 773800) {
+ nSubsidy = 5000*COIN;
+ }
+
+
+ // Get to end values quickly on RegTest
+ if(Params().NetworkIDString() == CBaseChainParams::REGTEST) {
+ if(nPrevHeight > 1500) {
+ nSubsidy = 5000*COIN;
+ } else {
+ nSubsidy = 1000000*COIN;
+ }
+ }
+
if(nPrevHeight >= FOUNDATION_HEIGHT){
if(nPrevHeight % 1000 == 998) {
nSubsidy = nSubsidy * 5;
@@ -1317,12 +1376,46 @@ CAmount GetBlockSubsidy(int nPrevBits, int nPrevHeight, const Consensus::Params&
CAmount GetMasternodePayment(int nHeight, CAmount blockValue)
{
- CAmount nSubsidy = blockValue * 20/100; // start at 20%
-
-
+ int nMainNet = 1;
+ if(Params().NetworkIDString() == CBaseChainParams::REGTEST) {
+ nMainNet = 0;
+ };
+ CAmount foundationPayment = GetFoundationPayment(nHeight,nMainNet);
+ CAmount nSubsidy = (blockValue - foundationPayment) * 35/100; // start at 20% Updated to 35% with version 2.2
return nSubsidy;
}
+CAmount GetFoundationPayment(int nHeight, int nMainNet)
+{
+ // CAmount nSubsidy = blockValue * 5/100; // start at 5%
+ if(nMainNet == 0) {
+ CAmount nSubsidy = 250*COIN;
+ if( nHeight % 100 == 88 ) { // Double reward
+ nSubsidy = nSubsidy * 2;
+ }
+ if( nHeight % 1000 == 999 ) { // 5 times reward
+ nSubsidy = nSubsidy * 5;
+ }
+ if( nHeight < 500) {
+ nSubsidy = 0*COIN;
+ }
+ return nSubsidy;
+ }
+ CAmount nSubsidy = 0*COIN;
+ if (nHeight > 1065649) { // Roughly 19:00 UTC 30th Jan 2024
+ nSubsidy = 250*COIN;
+ }
+ if( nHeight % 100 == 88 ) { // Double reward
+ nSubsidy = nSubsidy * 2;
+ }
+ if( nHeight % 1000 == 999 ) { // 5 times reward
+ nSubsidy = nSubsidy * 5;
+ }
+ return nSubsidy;
+
+}
+
+
bool IsInitialBlockDownload()
{
static bool lockIBDState = false;
@@ -2258,7 +2351,7 @@ static bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockInd
}
if (!IsBlockPayeeValid(block.vtx[0], pindex->nHeight, blockReward)) {
- mapRejectedBlocks.insert(make_pair(block.GetHash(), GetTime()));
+ // mapRejectedBlocks.insert(make_pair(block.GetHash(), GetTime()));
return state.DoS(0, error("ConnectBlock(PEPEW): couldn't find masternode or superblock payments"),
REJECT_INVALID, "bad-cb-payee");
}
diff --git a/src/validation.h b/src/validation.h
index b7d3bbb..644abf5 100644
--- a/src/validation.h
+++ b/src/validation.h
@@ -264,6 +264,7 @@ bool ActivateBestChain(CValidationState& state, const CChainParams& chainparams,
double ConvertBitsToDouble(unsigned int nBits);
CAmount GetBlockSubsidy(int nBits, int nHeight, const Consensus::Params& consensusParams, bool fSuperblockPartOnly = false);
CAmount GetMasternodePayment(int nHeight, CAmount blockValue);
+CAmount GetFoundationPayment(int nHeight, int nMainNet);
/**
* Prune block and undo files (blk???.dat and undo???.dat) so that the disk space used is less than a user-defined target.
diff --git a/src/validationinterface.cpp b/src/validationinterface.cpp
index 73c83b2..a42b89e 100644
--- a/src/validationinterface.cpp
+++ b/src/validationinterface.cpp
@@ -13,33 +13,33 @@ CMainSignals& GetMainSignals()
}
void RegisterValidationInterface(CValidationInterface* pwalletIn) {
- g_signals.AcceptedBlockHeader.connect(boost::bind(&CValidationInterface::AcceptedBlockHeader, pwalletIn, _1));
- g_signals.NotifyHeaderTip.connect(boost::bind(&CValidationInterface::NotifyHeaderTip, pwalletIn, _1, _2));
- g_signals.UpdatedBlockTip.connect(boost::bind(&CValidationInterface::UpdatedBlockTip, pwalletIn, _1, _2, _3));
- g_signals.SyncTransaction.connect(boost::bind(&CValidationInterface::SyncTransaction, pwalletIn, _1, _2));
- g_signals.NotifyTransactionLock.connect(boost::bind(&CValidationInterface::NotifyTransactionLock, pwalletIn, _1));
- g_signals.UpdatedTransaction.connect(boost::bind(&CValidationInterface::UpdatedTransaction, pwalletIn, _1));
- g_signals.SetBestChain.connect(boost::bind(&CValidationInterface::SetBestChain, pwalletIn, _1));
- g_signals.Inventory.connect(boost::bind(&CValidationInterface::Inventory, pwalletIn, _1));
- g_signals.Broadcast.connect(boost::bind(&CValidationInterface::ResendWalletTransactions, pwalletIn, _1, _2));
- g_signals.BlockChecked.connect(boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2));
- g_signals.ScriptForMining.connect(boost::bind(&CValidationInterface::GetScriptForMining, pwalletIn, _1));
- g_signals.BlockFound.connect(boost::bind(&CValidationInterface::ResetRequestCount, pwalletIn, _1));
+ g_signals.AcceptedBlockHeader.connect(boost::bind(&CValidationInterface::AcceptedBlockHeader, pwalletIn, boost::placeholders::_1));
+ g_signals.NotifyHeaderTip.connect(boost::bind(&CValidationInterface::NotifyHeaderTip, pwalletIn, boost::placeholders::_1, boost::placeholders::_2));
+ g_signals.UpdatedBlockTip.connect(boost::bind(&CValidationInterface::UpdatedBlockTip, pwalletIn, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3));
+ g_signals.SyncTransaction.connect(boost::bind(&CValidationInterface::SyncTransaction, pwalletIn, boost::placeholders::_1, boost::placeholders::_2));
+ g_signals.NotifyTransactionLock.connect(boost::bind(&CValidationInterface::NotifyTransactionLock, pwalletIn, boost::placeholders::_1));
+ g_signals.UpdatedTransaction.connect(boost::bind(&CValidationInterface::UpdatedTransaction, pwalletIn, boost::placeholders::_1));
+ g_signals.SetBestChain.connect(boost::bind(&CValidationInterface::SetBestChain, pwalletIn, boost::placeholders::_1));
+ g_signals.Inventory.connect(boost::bind(&CValidationInterface::Inventory, pwalletIn, boost::placeholders::_1));
+ g_signals.Broadcast.connect(boost::bind(&CValidationInterface::ResendWalletTransactions, pwalletIn, boost::placeholders::_1, boost::placeholders::_2));
+ g_signals.BlockChecked.connect(boost::bind(&CValidationInterface::BlockChecked, pwalletIn, boost::placeholders::_1, boost::placeholders::_2));
+ g_signals.ScriptForMining.connect(boost::bind(&CValidationInterface::GetScriptForMining, pwalletIn, boost::placeholders::_1));
+ g_signals.BlockFound.connect(boost::bind(&CValidationInterface::ResetRequestCount, pwalletIn, boost::placeholders::_1));
}
void UnregisterValidationInterface(CValidationInterface* pwalletIn) {
- g_signals.BlockFound.disconnect(boost::bind(&CValidationInterface::ResetRequestCount, pwalletIn, _1));
- g_signals.ScriptForMining.disconnect(boost::bind(&CValidationInterface::GetScriptForMining, pwalletIn, _1));
- g_signals.BlockChecked.disconnect(boost::bind(&CValidationInterface::BlockChecked, pwalletIn, _1, _2));
- g_signals.Broadcast.disconnect(boost::bind(&CValidationInterface::ResendWalletTransactions, pwalletIn, _1, _2));
- g_signals.Inventory.disconnect(boost::bind(&CValidationInterface::Inventory, pwalletIn, _1));
- g_signals.SetBestChain.disconnect(boost::bind(&CValidationInterface::SetBestChain, pwalletIn, _1));
- g_signals.UpdatedTransaction.disconnect(boost::bind(&CValidationInterface::UpdatedTransaction, pwalletIn, _1));
- g_signals.NotifyTransactionLock.disconnect(boost::bind(&CValidationInterface::NotifyTransactionLock, pwalletIn, _1));
- g_signals.SyncTransaction.disconnect(boost::bind(&CValidationInterface::SyncTransaction, pwalletIn, _1, _2));
- g_signals.UpdatedBlockTip.disconnect(boost::bind(&CValidationInterface::UpdatedBlockTip, pwalletIn, _1, _2, _3));
- g_signals.NotifyHeaderTip.disconnect(boost::bind(&CValidationInterface::NotifyHeaderTip, pwalletIn, _1, _2));
- g_signals.AcceptedBlockHeader.disconnect(boost::bind(&CValidationInterface::AcceptedBlockHeader, pwalletIn, _1));
+ g_signals.BlockFound.disconnect(boost::bind(&CValidationInterface::ResetRequestCount, pwalletIn, boost::placeholders::_1));
+ g_signals.ScriptForMining.disconnect(boost::bind(&CValidationInterface::GetScriptForMining, pwalletIn, boost::placeholders::_1));
+ g_signals.BlockChecked.disconnect(boost::bind(&CValidationInterface::BlockChecked, pwalletIn, boost::placeholders::_1, boost::placeholders::_2));
+ g_signals.Broadcast.disconnect(boost::bind(&CValidationInterface::ResendWalletTransactions, pwalletIn, boost::placeholders::_1, boost::placeholders::_2));
+ g_signals.Inventory.disconnect(boost::bind(&CValidationInterface::Inventory, pwalletIn, boost::placeholders::_1));
+ g_signals.SetBestChain.disconnect(boost::bind(&CValidationInterface::SetBestChain, pwalletIn, boost::placeholders::_1));
+ g_signals.UpdatedTransaction.disconnect(boost::bind(&CValidationInterface::UpdatedTransaction, pwalletIn, boost::placeholders::_1));
+ g_signals.NotifyTransactionLock.disconnect(boost::bind(&CValidationInterface::NotifyTransactionLock, pwalletIn, boost::placeholders::_1));
+ g_signals.SyncTransaction.disconnect(boost::bind(&CValidationInterface::SyncTransaction, pwalletIn, boost::placeholders::_1, boost::placeholders::_2));
+ g_signals.UpdatedBlockTip.disconnect(boost::bind(&CValidationInterface::UpdatedBlockTip, pwalletIn, boost::placeholders::_1, boost::placeholders::_2, boost::placeholders::_3));
+ g_signals.NotifyHeaderTip.disconnect(boost::bind(&CValidationInterface::NotifyHeaderTip, pwalletIn, boost::placeholders::_1, boost::placeholders::_2));
+ g_signals.AcceptedBlockHeader.disconnect(boost::bind(&CValidationInterface::AcceptedBlockHeader, pwalletIn, boost::placeholders::_1));
}
void UnregisterAllValidationInterfaces() {
diff --git a/src/version.h b/src/version.h
index 76007ce..ee183bc 100644
--- a/src/version.h
+++ b/src/version.h
@@ -10,7 +10,7 @@
* network protocol versioning
*/
-static const int PROTOCOL_VERSION = 70223;
+static const int PROTOCOL_VERSION = 70312;
//! initial proto version, to be increased after version/verack negotiation
static const int INIT_PROTO_VERSION = 209;
@@ -19,7 +19,9 @@ static const int INIT_PROTO_VERSION = 209;
static const int GETHEADERS_VERSION = 70077;
//! disconnect from peers older than this proto version
-static const int MIN_PEER_PROTO_VERSION = 70223;
+static const int MIN_PEER_PROTO_VERSION = 70301;
+
+static const int MIN_PEER_SPORK_15 = 70312;
//! nTime field added to CAddress, starting with this version;
//! if possible, avoid requesting addresses nodes older than this