@gooddollar/goodprotocol 2.0.5-beta.2 → 2.0.5-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (174) hide show
  1. package/artifacts/abis/OneTimePaymentsV2.min.json +1 -0
  2. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  3. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  4. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  5. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  6. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  7. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  8. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  9. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  10. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  11. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  12. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  13. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  14. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  15. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  16. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  17. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  18. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  19. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +1 -1
  20. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  21. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
  22. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  23. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  24. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  25. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  26. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  27. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  28. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  29. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  30. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  31. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
  32. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  33. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
  34. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  35. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  36. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  37. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +1 -1
  38. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +1 -1
  39. package/artifacts/contracts/governance/GoodDollarStaking.sol/IStakingUpgrade.dbg.json +1 -1
  40. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +1 -1
  41. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  42. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  43. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  44. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  45. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
  46. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +1 -1
  47. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  48. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
  49. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  50. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
  51. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
  52. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
  53. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  54. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
  55. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  56. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +1 -1
  57. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
  58. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
  59. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
  60. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +1 -1
  61. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
  62. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  63. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +1 -1
  64. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  65. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +1 -1
  66. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  67. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  68. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +1 -1
  69. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +1 -1
  70. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
  71. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  72. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  73. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +1 -1
  74. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  75. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +1 -1
  76. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  77. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  78. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  79. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  80. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  81. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  82. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  83. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  84. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  85. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  86. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  87. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  88. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  89. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  90. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
  91. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  92. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  93. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  94. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  95. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  96. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  97. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  98. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  99. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  100. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  101. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  102. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  103. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  104. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  105. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  106. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  107. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  108. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  109. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  110. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  111. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
  112. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +1 -1
  113. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +1 -1
  114. package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +1 -1
  115. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +1 -1
  116. package/artifacts/contracts/token/FeesFormula.sol/IFeesFormula.dbg.json +1 -1
  117. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +1 -1
  118. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +1 -1
  119. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +1 -1
  120. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +1 -1
  121. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +1 -1
  122. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
  123. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.json +2 -2
  124. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +1 -1
  125. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +1 -1
  126. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +1 -1
  127. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +1 -1
  128. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +1 -1
  129. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +1 -1
  130. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  131. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  132. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +1 -1
  133. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  134. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  135. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +1 -1
  136. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  137. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  138. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  139. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  140. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
  141. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
  142. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
  143. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
  144. package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
  145. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
  146. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  147. package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.dbg.json +1 -1
  148. package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.dbg.json +4 -0
  149. package/artifacts/contracts/utils/OneTimePaymentsV2.sol/{OneTimePayments.json → OneTimePaymentsV2.json} +3 -3
  150. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  151. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  152. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  153. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  154. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  155. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  156. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  157. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  158. package/contracts/token/superfluid/SuperGoodDollar.sol +16 -22
  159. package/contracts/utils/OneTimePaymentsV2.sol +1 -1
  160. package/hardhat.config.ts +11 -1
  161. package/package.json +2 -2
  162. package/releases/deploy-settings.json +6 -0
  163. package/releases/deployment.json +18 -2
  164. package/scripts/multichain-deploy/1_basicdao-deploy.ts +34 -94
  165. package/scripts/multichain-deploy/2b_otp-deploy.ts +4 -4
  166. package/scripts/multichain-deploy/helpers.ts +4 -4
  167. package/truffle-config.js +6 -0
  168. package/types/OneTimePaymentsV2.ts +456 -0
  169. package/types/factories/OneTimePaymentsV2__factory.ts +369 -0
  170. package/types/factories/SuperGoodDollar__factory.ts +1 -1
  171. package/types/hardhat.d.ts +4 -4
  172. package/types/index.ts +2 -0
  173. package/yarn.lock +74 -10
  174. package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePayments.dbg.json +0 -4
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/42a83dafaf3b82a51cfc6fcce9ca8774.json"
3
+ "buildInfo": "../../../build-info/6cd40e08edbfa78860b3c7b6bfa1d4c3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/42a83dafaf3b82a51cfc6fcce9ca8774.json"
3
+ "buildInfo": "../../../build-info/6cd40e08edbfa78860b3c7b6bfa1d4c3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/42a83dafaf3b82a51cfc6fcce9ca8774.json"
3
+ "buildInfo": "../../../build-info/6cd40e08edbfa78860b3c7b6bfa1d4c3.json"
4
4
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/6cd40e08edbfa78860b3c7b6bfa1d4c3.json"
4
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "_format": "hh-sol-artifact-1",
3
- "contractName": "OneTimePayments",
3
+ "contractName": "OneTimePaymentsV2",
4
4
  "sourceName": "contracts/utils/OneTimePaymentsV2.sol",
5
5
  "abi": [
6
6
  {
@@ -309,8 +309,8 @@
309
309
  "type": "function"
310
310
  }
311
311
  ],
312
- "bytecode": "0x60806040523480156200001157600080fd5b506040516200130f3803806200130f8339810160408190526200003491620001b1565b6200003f8162000046565b50620001d8565b600280546001600160a01b0319166001600160a01b0383161790556200006b6200006e565b50565b60025460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa158015620000d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f89190620001b1565b600080546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa15801562000153573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001799190620001b1565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811681146200006b57600080fd5b600060208284031215620001c457600080fd5b8151620001d1816200019b565b9392505050565b61112780620001e86000396000f3fe60806040526004361061008c5760003560e01c80631b3c90a8146100915780633e6326fc146100a85780634162169f146100e55780634bb78b14146101055780634c33fe94146101255780635aef7de61461014557806399fa169a146101655780639ea7811614610178578063a4c0ed36146101c1578063e1758bd8146101e1578063e2982c21146101f6575b600080fd5b34801561009d57600080fd5b506100a661027a565b005b3480156100b457600080fd5b506002546100c8906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100f157600080fd5b506000546100c8906001600160a01b031681565b34801561011157600080fd5b506100a6610120366004610e77565b6103a1565b34801561013157600080fd5b506100a6610140366004610f3a565b61049f565b34801561015157600080fd5b506001546100c8906001600160a01b031681565b6100a6610173366004610f5e565b610587565b34801561018457600080fd5b506101b1610193366004610f3a565b6001600160a01b031660009081526035602052604090205460ff1690565b60405190151581526020016100dc565b3480156101cd57600080fd5b506101b16101dc366004610f9f565b610784565b3480156101ed57600080fd5b506100c86108eb565b34801561020257600080fd5b50610249610211366004610f3a565b603560205260009081526040902080546001820154600283015460039093015460ff9092169290916001600160a01b03918216911684565b60408051941515855260208501939093526001600160a01b03918216928401929092521660608201526080016100dc565b60025460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa1580156102dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103019190611027565b600080546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa15801561035b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037f9190611027565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006103ad3383610978565b9050826001600160a01b0316816001600160a01b0316146104105760405162461bcd60e51b815260206004820152601860248201527714da59db985d1d5c99481a5cc81b9bdd0818dbdc9c9958dd60421b60448201526064015b60405180910390fd5b6001600160a01b038084166000908152603560205260409020600181015460028201546003909201549092918216911661044b868483610a07565b604080518481526001600160a01b038381166020830152808916923392918616917fc75e7bc3dc5e0d16e3df9df2689b6a26e490567bd567066ce9cdacc19507124a910160405180910390a4505050505050565b6001600160a01b0381811660009081526035602052604090206002015416331461050b5760405162461bcd60e51b815260206004820152601d60248201527f43616e206f6e6c792062652063616c6c65642062792063726561746f720000006044820152606401610407565b6001600160a01b038082166000908152603560205260409020600181015460039091015490911661053d838383610a07565b336001600160a01b03167f277bedca6530994c2b7997a918461bf3c20dc35ad66561a387316ddcbeb5343884848460405161057a93929190611044565b60405180910390a2505050565b6001600160a01b03831660009081526035602052604090205460ff16156105c05760405162461bcd60e51b815260040161040790611067565b6001600160a01b0382161561068e576040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303816000875af1158015610622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106469190611099565b6106895760405162461bcd60e51b8152602060048201526014602482015273185cdcd95d0819195c1bdcda5d0819985a5b195960621b6044820152606401610407565b6106d9565b600034116106d65760405162461bcd60e51b81526020600482015260156024820152741b985d1a5d994819195c1bdcda5d0819985a5b1959605a1b6044820152606401610407565b50345b6040805160808101825260018082526020808301858152338486018181526001600160a01b03898116606088019081528b821660009081526035909652948890209651875460ff191690151517875592519486019490945592516002850180546001600160a01b031990811692841692909217905591516003909401805490921693169290921790915590516000805160206110d28339815191529061057a90869085908790611044565b60008061079383850185610f3a565b6001600160a01b03811660009081526035602052604090205490915060ff16156107cf5760405162461bcd60e51b815260040161040790611067565b6107d76108eb565b6001600160a01b0316336001600160a01b03161461082f5760405162461bcd60e51b81526020600482015260156024820152744f6e6c792063616c6c61626c65206279207468697360581b6044820152606401610407565b60408051608081018252600180825260208083018981526001600160a01b038b811685870181815233606088018181528a851660009081526035909752958990209751885460ff191690151517885593519587019590955593516002860180546001600160a01b0319908116928416929092179055925160039095018054909316941693909317905591516000805160206110d2833981519152916108d79185918a91611044565b60405180910390a250600195945050505050565b60025460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa15801561094f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109739190611027565b905090565b60408051606084901b6001600160601b031916602080830191909152825160148184030181526034830184528051908201207b0ca2ba3432b932bab69029b4b3b732b21026b2b9b9b0b3b29d05199960211b6054840152607080840191909152835180840390910181526090909201909252805191012060009060006109fe8285610be1565b95945050505050565b6001600160a01b03831660009081526035602052604090205460ff16610a665760405162461bcd60e51b81526020600482015260146024820152737061796d656e744964206e6f7420696e2075736560601b6044820152606401610407565b6001600160a01b038084166000908152603560205260409020805460ff191690558116610b2457604051600090339084908381818185875af1925050503d8060008114610acf576040519150601f19603f3d011682016040523d82523d6000602084013e610ad4565b606091505b5050905080610b1e5760405162461bcd60e51b81526020600482015260166024820152751dda5d1a191c985dc81b985d1a5d994819985a5b195960521b6044820152606401610407565b50505050565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0382169063a9059cbb906044016020604051808303816000875af1158015610b71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b959190611099565b610bdc5760405162461bcd60e51b81526020600482015260186024820152771dda5d1a191c985dc81d1c985b9cd9995c8819985a5b195960421b6044820152606401610407565b505050565b6000806000610bf08585610c05565b91509150610bfd81610c4a565b509392505050565b6000808251604103610c3b5760208301516040840151606085015160001a610c2f87828585610d92565b94509450505050610c43565b506000905060025b9250929050565b6000816004811115610c5e57610c5e6110bb565b03610c665750565b6001816004811115610c7a57610c7a6110bb565b03610cc25760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610407565b6002816004811115610cd657610cd66110bb565b03610d235760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610407565b6003816004811115610d3757610d376110bb565b03610d8f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610407565b50565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115610dbf5750600090506003610e43565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610e13573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610e3c57600060019250925050610e43565b9150600090505b94509492505050565b6001600160a01b0381168114610d8f57600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610e8a57600080fd5b8235610e9581610e4c565b915060208301356001600160401b0380821115610eb157600080fd5b818501915085601f830112610ec557600080fd5b813581811115610ed757610ed7610e61565b604051601f8201601f19908116603f01168101908382118183101715610eff57610eff610e61565b81604052828152886020848701011115610f1857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600060208284031215610f4c57600080fd5b8135610f5781610e4c565b9392505050565b600080600060608486031215610f7357600080fd5b8335610f7e81610e4c565b92506020840135610f8e81610e4c565b929592945050506040919091013590565b60008060008060608587031215610fb557600080fd5b8435610fc081610e4c565b93506020850135925060408501356001600160401b0380821115610fe357600080fd5b818701915087601f830112610ff757600080fd5b81358181111561100657600080fd5b88602082850101111561101857600080fd5b95989497505060200194505050565b60006020828403121561103957600080fd5b8151610f5781610e4c565b6001600160a01b0393841681526020810192909252909116604082015260600190565b6020808252601890820152777061796d656e74496420616c726561647920696e2075736560401b604082015260600190565b6000602082840312156110ab57600080fd5b81518015158114610f5757600080fd5b634e487b7160e01b600052602160045260246000fdfe7573720b06c06bb7eb7077bf04c865302461f8648509da8867240cdb54e5a4b4a2646970667358221220d84864a21fd402b1256e7478452d7591943da3d80e7dcb1bd00c1492ab8db73b64736f6c63430008100033",
313
- "deployedBytecode": "0x60806040526004361061008c5760003560e01c80631b3c90a8146100915780633e6326fc146100a85780634162169f146100e55780634bb78b14146101055780634c33fe94146101255780635aef7de61461014557806399fa169a146101655780639ea7811614610178578063a4c0ed36146101c1578063e1758bd8146101e1578063e2982c21146101f6575b600080fd5b34801561009d57600080fd5b506100a661027a565b005b3480156100b457600080fd5b506002546100c8906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100f157600080fd5b506000546100c8906001600160a01b031681565b34801561011157600080fd5b506100a6610120366004610e77565b6103a1565b34801561013157600080fd5b506100a6610140366004610f3a565b61049f565b34801561015157600080fd5b506001546100c8906001600160a01b031681565b6100a6610173366004610f5e565b610587565b34801561018457600080fd5b506101b1610193366004610f3a565b6001600160a01b031660009081526035602052604090205460ff1690565b60405190151581526020016100dc565b3480156101cd57600080fd5b506101b16101dc366004610f9f565b610784565b3480156101ed57600080fd5b506100c86108eb565b34801561020257600080fd5b50610249610211366004610f3a565b603560205260009081526040902080546001820154600283015460039093015460ff9092169290916001600160a01b03918216911684565b60408051941515855260208501939093526001600160a01b03918216928401929092521660608201526080016100dc565b60025460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa1580156102dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103019190611027565b600080546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa15801561035b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037f9190611027565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006103ad3383610978565b9050826001600160a01b0316816001600160a01b0316146104105760405162461bcd60e51b815260206004820152601860248201527714da59db985d1d5c99481a5cc81b9bdd0818dbdc9c9958dd60421b60448201526064015b60405180910390fd5b6001600160a01b038084166000908152603560205260409020600181015460028201546003909201549092918216911661044b868483610a07565b604080518481526001600160a01b038381166020830152808916923392918616917fc75e7bc3dc5e0d16e3df9df2689b6a26e490567bd567066ce9cdacc19507124a910160405180910390a4505050505050565b6001600160a01b0381811660009081526035602052604090206002015416331461050b5760405162461bcd60e51b815260206004820152601d60248201527f43616e206f6e6c792062652063616c6c65642062792063726561746f720000006044820152606401610407565b6001600160a01b038082166000908152603560205260409020600181015460039091015490911661053d838383610a07565b336001600160a01b03167f277bedca6530994c2b7997a918461bf3c20dc35ad66561a387316ddcbeb5343884848460405161057a93929190611044565b60405180910390a2505050565b6001600160a01b03831660009081526035602052604090205460ff16156105c05760405162461bcd60e51b815260040161040790611067565b6001600160a01b0382161561068e576040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303816000875af1158015610622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106469190611099565b6106895760405162461bcd60e51b8152602060048201526014602482015273185cdcd95d0819195c1bdcda5d0819985a5b195960621b6044820152606401610407565b6106d9565b600034116106d65760405162461bcd60e51b81526020600482015260156024820152741b985d1a5d994819195c1bdcda5d0819985a5b1959605a1b6044820152606401610407565b50345b6040805160808101825260018082526020808301858152338486018181526001600160a01b03898116606088019081528b821660009081526035909652948890209651875460ff191690151517875592519486019490945592516002850180546001600160a01b031990811692841692909217905591516003909401805490921693169290921790915590516000805160206110d28339815191529061057a90869085908790611044565b60008061079383850185610f3a565b6001600160a01b03811660009081526035602052604090205490915060ff16156107cf5760405162461bcd60e51b815260040161040790611067565b6107d76108eb565b6001600160a01b0316336001600160a01b03161461082f5760405162461bcd60e51b81526020600482015260156024820152744f6e6c792063616c6c61626c65206279207468697360581b6044820152606401610407565b60408051608081018252600180825260208083018981526001600160a01b038b811685870181815233606088018181528a851660009081526035909752958990209751885460ff191690151517885593519587019590955593516002860180546001600160a01b0319908116928416929092179055925160039095018054909316941693909317905591516000805160206110d2833981519152916108d79185918a91611044565b60405180910390a250600195945050505050565b60025460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa15801561094f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109739190611027565b905090565b60408051606084901b6001600160601b031916602080830191909152825160148184030181526034830184528051908201207b0ca2ba3432b932bab69029b4b3b732b21026b2b9b9b0b3b29d05199960211b6054840152607080840191909152835180840390910181526090909201909252805191012060009060006109fe8285610be1565b95945050505050565b6001600160a01b03831660009081526035602052604090205460ff16610a665760405162461bcd60e51b81526020600482015260146024820152737061796d656e744964206e6f7420696e2075736560601b6044820152606401610407565b6001600160a01b038084166000908152603560205260409020805460ff191690558116610b2457604051600090339084908381818185875af1925050503d8060008114610acf576040519150601f19603f3d011682016040523d82523d6000602084013e610ad4565b606091505b5050905080610b1e5760405162461bcd60e51b81526020600482015260166024820152751dda5d1a191c985dc81b985d1a5d994819985a5b195960521b6044820152606401610407565b50505050565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0382169063a9059cbb906044016020604051808303816000875af1158015610b71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b959190611099565b610bdc5760405162461bcd60e51b81526020600482015260186024820152771dda5d1a191c985dc81d1c985b9cd9995c8819985a5b195960421b6044820152606401610407565b505050565b6000806000610bf08585610c05565b91509150610bfd81610c4a565b509392505050565b6000808251604103610c3b5760208301516040840151606085015160001a610c2f87828585610d92565b94509450505050610c43565b506000905060025b9250929050565b6000816004811115610c5e57610c5e6110bb565b03610c665750565b6001816004811115610c7a57610c7a6110bb565b03610cc25760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610407565b6002816004811115610cd657610cd66110bb565b03610d235760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610407565b6003816004811115610d3757610d376110bb565b03610d8f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610407565b50565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115610dbf5750600090506003610e43565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610e13573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610e3c57600060019250925050610e43565b9150600090505b94509492505050565b6001600160a01b0381168114610d8f57600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610e8a57600080fd5b8235610e9581610e4c565b915060208301356001600160401b0380821115610eb157600080fd5b818501915085601f830112610ec557600080fd5b813581811115610ed757610ed7610e61565b604051601f8201601f19908116603f01168101908382118183101715610eff57610eff610e61565b81604052828152886020848701011115610f1857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600060208284031215610f4c57600080fd5b8135610f5781610e4c565b9392505050565b600080600060608486031215610f7357600080fd5b8335610f7e81610e4c565b92506020840135610f8e81610e4c565b929592945050506040919091013590565b60008060008060608587031215610fb557600080fd5b8435610fc081610e4c565b93506020850135925060408501356001600160401b0380821115610fe357600080fd5b818701915087601f830112610ff757600080fd5b81358181111561100657600080fd5b88602082850101111561101857600080fd5b95989497505060200194505050565b60006020828403121561103957600080fd5b8151610f5781610e4c565b6001600160a01b0393841681526020810192909252909116604082015260600190565b6020808252601890820152777061796d656e74496420616c726561647920696e2075736560401b604082015260600190565b6000602082840312156110ab57600080fd5b81518015158114610f5757600080fd5b634e487b7160e01b600052602160045260246000fdfe7573720b06c06bb7eb7077bf04c865302461f8648509da8867240cdb54e5a4b4a2646970667358221220d84864a21fd402b1256e7478452d7591943da3d80e7dcb1bd00c1492ab8db73b64736f6c63430008100033",
312
+ "bytecode": "0x60806040523480156200001157600080fd5b506040516200130f3803806200130f8339810160408190526200003491620001b1565b6200003f8162000046565b50620001d8565b600280546001600160a01b0319166001600160a01b0383161790556200006b6200006e565b50565b60025460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa158015620000d2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000f89190620001b1565b600080546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa15801562000153573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001799190620001b1565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811681146200006b57600080fd5b600060208284031215620001c457600080fd5b8151620001d1816200019b565b9392505050565b61112780620001e86000396000f3fe60806040526004361061008c5760003560e01c80631b3c90a8146100915780633e6326fc146100a85780634162169f146100e55780634bb78b14146101055780634c33fe94146101255780635aef7de61461014557806399fa169a146101655780639ea7811614610178578063a4c0ed36146101c1578063e1758bd8146101e1578063e2982c21146101f6575b600080fd5b34801561009d57600080fd5b506100a661027a565b005b3480156100b457600080fd5b506002546100c8906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100f157600080fd5b506000546100c8906001600160a01b031681565b34801561011157600080fd5b506100a6610120366004610e77565b6103a1565b34801561013157600080fd5b506100a6610140366004610f3a565b61049f565b34801561015157600080fd5b506001546100c8906001600160a01b031681565b6100a6610173366004610f5e565b610587565b34801561018457600080fd5b506101b1610193366004610f3a565b6001600160a01b031660009081526035602052604090205460ff1690565b60405190151581526020016100dc565b3480156101cd57600080fd5b506101b16101dc366004610f9f565b610784565b3480156101ed57600080fd5b506100c86108eb565b34801561020257600080fd5b50610249610211366004610f3a565b603560205260009081526040902080546001820154600283015460039093015460ff9092169290916001600160a01b03918216911684565b60408051941515855260208501939093526001600160a01b03918216928401929092521660608201526080016100dc565b60025460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa1580156102dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103019190611027565b600080546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa15801561035b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037f9190611027565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006103ad3383610978565b9050826001600160a01b0316816001600160a01b0316146104105760405162461bcd60e51b815260206004820152601860248201527714da59db985d1d5c99481a5cc81b9bdd0818dbdc9c9958dd60421b60448201526064015b60405180910390fd5b6001600160a01b038084166000908152603560205260409020600181015460028201546003909201549092918216911661044b868483610a07565b604080518481526001600160a01b038381166020830152808916923392918616917fc75e7bc3dc5e0d16e3df9df2689b6a26e490567bd567066ce9cdacc19507124a910160405180910390a4505050505050565b6001600160a01b0381811660009081526035602052604090206002015416331461050b5760405162461bcd60e51b815260206004820152601d60248201527f43616e206f6e6c792062652063616c6c65642062792063726561746f720000006044820152606401610407565b6001600160a01b038082166000908152603560205260409020600181015460039091015490911661053d838383610a07565b336001600160a01b03167f277bedca6530994c2b7997a918461bf3c20dc35ad66561a387316ddcbeb5343884848460405161057a93929190611044565b60405180910390a2505050565b6001600160a01b03831660009081526035602052604090205460ff16156105c05760405162461bcd60e51b815260040161040790611067565b6001600160a01b0382161561068e576040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303816000875af1158015610622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106469190611099565b6106895760405162461bcd60e51b8152602060048201526014602482015273185cdcd95d0819195c1bdcda5d0819985a5b195960621b6044820152606401610407565b6106d9565b600034116106d65760405162461bcd60e51b81526020600482015260156024820152741b985d1a5d994819195c1bdcda5d0819985a5b1959605a1b6044820152606401610407565b50345b6040805160808101825260018082526020808301858152338486018181526001600160a01b03898116606088019081528b821660009081526035909652948890209651875460ff191690151517875592519486019490945592516002850180546001600160a01b031990811692841692909217905591516003909401805490921693169290921790915590516000805160206110d28339815191529061057a90869085908790611044565b60008061079383850185610f3a565b6001600160a01b03811660009081526035602052604090205490915060ff16156107cf5760405162461bcd60e51b815260040161040790611067565b6107d76108eb565b6001600160a01b0316336001600160a01b03161461082f5760405162461bcd60e51b81526020600482015260156024820152744f6e6c792063616c6c61626c65206279207468697360581b6044820152606401610407565b60408051608081018252600180825260208083018981526001600160a01b038b811685870181815233606088018181528a851660009081526035909752958990209751885460ff191690151517885593519587019590955593516002860180546001600160a01b0319908116928416929092179055925160039095018054909316941693909317905591516000805160206110d2833981519152916108d79185918a91611044565b60405180910390a250600195945050505050565b60025460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa15801561094f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109739190611027565b905090565b60408051606084901b6001600160601b031916602080830191909152825160148184030181526034830184528051908201207b0ca2ba3432b932bab69029b4b3b732b21026b2b9b9b0b3b29d05199960211b6054840152607080840191909152835180840390910181526090909201909252805191012060009060006109fe8285610be1565b95945050505050565b6001600160a01b03831660009081526035602052604090205460ff16610a665760405162461bcd60e51b81526020600482015260146024820152737061796d656e744964206e6f7420696e2075736560601b6044820152606401610407565b6001600160a01b038084166000908152603560205260409020805460ff191690558116610b2457604051600090339084908381818185875af1925050503d8060008114610acf576040519150601f19603f3d011682016040523d82523d6000602084013e610ad4565b606091505b5050905080610b1e5760405162461bcd60e51b81526020600482015260166024820152751dda5d1a191c985dc81b985d1a5d994819985a5b195960521b6044820152606401610407565b50505050565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0382169063a9059cbb906044016020604051808303816000875af1158015610b71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b959190611099565b610bdc5760405162461bcd60e51b81526020600482015260186024820152771dda5d1a191c985dc81d1c985b9cd9995c8819985a5b195960421b6044820152606401610407565b505050565b6000806000610bf08585610c05565b91509150610bfd81610c4a565b509392505050565b6000808251604103610c3b5760208301516040840151606085015160001a610c2f87828585610d92565b94509450505050610c43565b506000905060025b9250929050565b6000816004811115610c5e57610c5e6110bb565b03610c665750565b6001816004811115610c7a57610c7a6110bb565b03610cc25760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610407565b6002816004811115610cd657610cd66110bb565b03610d235760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610407565b6003816004811115610d3757610d376110bb565b03610d8f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610407565b50565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115610dbf5750600090506003610e43565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610e13573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610e3c57600060019250925050610e43565b9150600090505b94509492505050565b6001600160a01b0381168114610d8f57600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610e8a57600080fd5b8235610e9581610e4c565b915060208301356001600160401b0380821115610eb157600080fd5b818501915085601f830112610ec557600080fd5b813581811115610ed757610ed7610e61565b604051601f8201601f19908116603f01168101908382118183101715610eff57610eff610e61565b81604052828152886020848701011115610f1857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600060208284031215610f4c57600080fd5b8135610f5781610e4c565b9392505050565b600080600060608486031215610f7357600080fd5b8335610f7e81610e4c565b92506020840135610f8e81610e4c565b929592945050506040919091013590565b60008060008060608587031215610fb557600080fd5b8435610fc081610e4c565b93506020850135925060408501356001600160401b0380821115610fe357600080fd5b818701915087601f830112610ff757600080fd5b81358181111561100657600080fd5b88602082850101111561101857600080fd5b95989497505060200194505050565b60006020828403121561103957600080fd5b8151610f5781610e4c565b6001600160a01b0393841681526020810192909252909116604082015260600190565b6020808252601890820152777061796d656e74496420616c726561647920696e2075736560401b604082015260600190565b6000602082840312156110ab57600080fd5b81518015158114610f5757600080fd5b634e487b7160e01b600052602160045260246000fdfe7573720b06c06bb7eb7077bf04c865302461f8648509da8867240cdb54e5a4b4a2646970667358221220f2d171df4e8536208cf4bc80c78626125d130c8b7b26efa38ceafd122cf7870764736f6c63430008100033",
313
+ "deployedBytecode": "0x60806040526004361061008c5760003560e01c80631b3c90a8146100915780633e6326fc146100a85780634162169f146100e55780634bb78b14146101055780634c33fe94146101255780635aef7de61461014557806399fa169a146101655780639ea7811614610178578063a4c0ed36146101c1578063e1758bd8146101e1578063e2982c21146101f6575b600080fd5b34801561009d57600080fd5b506100a661027a565b005b3480156100b457600080fd5b506002546100c8906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156100f157600080fd5b506000546100c8906001600160a01b031681565b34801561011157600080fd5b506100a6610120366004610e77565b6103a1565b34801561013157600080fd5b506100a6610140366004610f3a565b61049f565b34801561015157600080fd5b506001546100c8906001600160a01b031681565b6100a6610173366004610f5e565b610587565b34801561018457600080fd5b506101b1610193366004610f3a565b6001600160a01b031660009081526035602052604090205460ff1690565b60405190151581526020016100dc565b3480156101cd57600080fd5b506101b16101dc366004610f9f565b610784565b3480156101ed57600080fd5b506100c86108eb565b34801561020257600080fd5b50610249610211366004610f3a565b603560205260009081526040902080546001820154600283015460039093015460ff9092169290916001600160a01b03918216911684565b60408051941515855260208501939093526001600160a01b03918216928401929092521660608201526080016100dc565b60025460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa1580156102dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103019190611027565b600080546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa15801561035b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037f9190611027565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006103ad3383610978565b9050826001600160a01b0316816001600160a01b0316146104105760405162461bcd60e51b815260206004820152601860248201527714da59db985d1d5c99481a5cc81b9bdd0818dbdc9c9958dd60421b60448201526064015b60405180910390fd5b6001600160a01b038084166000908152603560205260409020600181015460028201546003909201549092918216911661044b868483610a07565b604080518481526001600160a01b038381166020830152808916923392918616917fc75e7bc3dc5e0d16e3df9df2689b6a26e490567bd567066ce9cdacc19507124a910160405180910390a4505050505050565b6001600160a01b0381811660009081526035602052604090206002015416331461050b5760405162461bcd60e51b815260206004820152601d60248201527f43616e206f6e6c792062652063616c6c65642062792063726561746f720000006044820152606401610407565b6001600160a01b038082166000908152603560205260409020600181015460039091015490911661053d838383610a07565b336001600160a01b03167f277bedca6530994c2b7997a918461bf3c20dc35ad66561a387316ddcbeb5343884848460405161057a93929190611044565b60405180910390a2505050565b6001600160a01b03831660009081526035602052604090205460ff16156105c05760405162461bcd60e51b815260040161040790611067565b6001600160a01b0382161561068e576040516323b872dd60e01b8152336004820152306024820152604481018290526001600160a01b038316906323b872dd906064016020604051808303816000875af1158015610622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106469190611099565b6106895760405162461bcd60e51b8152602060048201526014602482015273185cdcd95d0819195c1bdcda5d0819985a5b195960621b6044820152606401610407565b6106d9565b600034116106d65760405162461bcd60e51b81526020600482015260156024820152741b985d1a5d994819195c1bdcda5d0819985a5b1959605a1b6044820152606401610407565b50345b6040805160808101825260018082526020808301858152338486018181526001600160a01b03898116606088019081528b821660009081526035909652948890209651875460ff191690151517875592519486019490945592516002850180546001600160a01b031990811692841692909217905591516003909401805490921693169290921790915590516000805160206110d28339815191529061057a90869085908790611044565b60008061079383850185610f3a565b6001600160a01b03811660009081526035602052604090205490915060ff16156107cf5760405162461bcd60e51b815260040161040790611067565b6107d76108eb565b6001600160a01b0316336001600160a01b03161461082f5760405162461bcd60e51b81526020600482015260156024820152744f6e6c792063616c6c61626c65206279207468697360581b6044820152606401610407565b60408051608081018252600180825260208083018981526001600160a01b038b811685870181815233606088018181528a851660009081526035909752958990209751885460ff191690151517885593519587019590955593516002860180546001600160a01b0319908116928416929092179055925160039095018054909316941693909317905591516000805160206110d2833981519152916108d79185918a91611044565b60405180910390a250600195945050505050565b60025460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac190606401602060405180830381865afa15801561094f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109739190611027565b905090565b60408051606084901b6001600160601b031916602080830191909152825160148184030181526034830184528051908201207b0ca2ba3432b932bab69029b4b3b732b21026b2b9b9b0b3b29d05199960211b6054840152607080840191909152835180840390910181526090909201909252805191012060009060006109fe8285610be1565b95945050505050565b6001600160a01b03831660009081526035602052604090205460ff16610a665760405162461bcd60e51b81526020600482015260146024820152737061796d656e744964206e6f7420696e2075736560601b6044820152606401610407565b6001600160a01b038084166000908152603560205260409020805460ff191690558116610b2457604051600090339084908381818185875af1925050503d8060008114610acf576040519150601f19603f3d011682016040523d82523d6000602084013e610ad4565b606091505b5050905080610b1e5760405162461bcd60e51b81526020600482015260166024820152751dda5d1a191c985dc81b985d1a5d994819985a5b195960521b6044820152606401610407565b50505050565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0382169063a9059cbb906044016020604051808303816000875af1158015610b71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b959190611099565b610bdc5760405162461bcd60e51b81526020600482015260186024820152771dda5d1a191c985dc81d1c985b9cd9995c8819985a5b195960421b6044820152606401610407565b505050565b6000806000610bf08585610c05565b91509150610bfd81610c4a565b509392505050565b6000808251604103610c3b5760208301516040840151606085015160001a610c2f87828585610d92565b94509450505050610c43565b506000905060025b9250929050565b6000816004811115610c5e57610c5e6110bb565b03610c665750565b6001816004811115610c7a57610c7a6110bb565b03610cc25760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610407565b6002816004811115610cd657610cd66110bb565b03610d235760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610407565b6003816004811115610d3757610d376110bb565b03610d8f5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610407565b50565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115610dbf5750600090506003610e43565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610e13573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116610e3c57600060019250925050610e43565b9150600090505b94509492505050565b6001600160a01b0381168114610d8f57600080fd5b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610e8a57600080fd5b8235610e9581610e4c565b915060208301356001600160401b0380821115610eb157600080fd5b818501915085601f830112610ec557600080fd5b813581811115610ed757610ed7610e61565b604051601f8201601f19908116603f01168101908382118183101715610eff57610eff610e61565b81604052828152886020848701011115610f1857600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600060208284031215610f4c57600080fd5b8135610f5781610e4c565b9392505050565b600080600060608486031215610f7357600080fd5b8335610f7e81610e4c565b92506020840135610f8e81610e4c565b929592945050506040919091013590565b60008060008060608587031215610fb557600080fd5b8435610fc081610e4c565b93506020850135925060408501356001600160401b0380821115610fe357600080fd5b818701915087601f830112610ff757600080fd5b81358181111561100657600080fd5b88602082850101111561101857600080fd5b95989497505060200194505050565b60006020828403121561103957600080fd5b8151610f5781610e4c565b6001600160a01b0393841681526020810192909252909116604082015260600190565b6020808252601890820152777061796d656e74496420616c726561647920696e2075736560401b604082015260600190565b6000602082840312156110ab57600080fd5b81518015158114610f5757600080fd5b634e487b7160e01b600052602160045260246000fdfe7573720b06c06bb7eb7077bf04c865302461f8648509da8867240cdb54e5a4b4a2646970667358221220f2d171df4e8536208cf4bc80c78626125d130c8b7b26efa38ceafd122cf7870764736f6c63430008100033",
314
314
  "linkReferences": {},
315
315
  "deployedLinkReferences": {}
316
316
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/42a83dafaf3b82a51cfc6fcce9ca8774.json"
3
+ "buildInfo": "../../../build-info/6cd40e08edbfa78860b3c7b6bfa1d4c3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/42a83dafaf3b82a51cfc6fcce9ca8774.json"
3
+ "buildInfo": "../../../build-info/6cd40e08edbfa78860b3c7b6bfa1d4c3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/42a83dafaf3b82a51cfc6fcce9ca8774.json"
3
+ "buildInfo": "../../../build-info/6cd40e08edbfa78860b3c7b6bfa1d4c3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/42a83dafaf3b82a51cfc6fcce9ca8774.json"
3
+ "buildInfo": "../../../build-info/6cd40e08edbfa78860b3c7b6bfa1d4c3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/42a83dafaf3b82a51cfc6fcce9ca8774.json"
3
+ "buildInfo": "../../../build-info/6cd40e08edbfa78860b3c7b6bfa1d4c3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/42a83dafaf3b82a51cfc6fcce9ca8774.json"
3
+ "buildInfo": "../../../build-info/6cd40e08edbfa78860b3c7b6bfa1d4c3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/42a83dafaf3b82a51cfc6fcce9ca8774.json"
3
+ "buildInfo": "../../../build-info/6cd40e08edbfa78860b3c7b6bfa1d4c3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/42a83dafaf3b82a51cfc6fcce9ca8774.json"
3
+ "buildInfo": "../../../build-info/6cd40e08edbfa78860b3c7b6bfa1d4c3.json"
4
4
  }
@@ -123,10 +123,10 @@ contract SuperGoodDollar is
123
123
 
124
124
  /// override Superfluid agreement function in order to make it pausable
125
125
  /// that is, no new streams can be started when the contract is paused
126
- function createAgreement(bytes32 id, bytes32[] calldata data)
127
- public
128
- override(ISuperfluidToken, SuperfluidToken)
129
- {
126
+ function createAgreement(
127
+ bytes32 id,
128
+ bytes32[] calldata data
129
+ ) public override(ISuperfluidToken, SuperfluidToken) {
130
130
  require(!paused(), "Pausable: createAgreement while paused");
131
131
  // otherwise the wrapper of SuperToken.createAgreement does the actual job
132
132
  super.createAgreement(id, data);
@@ -236,12 +236,10 @@ contract SuperGoodDollar is
236
236
  return res;
237
237
  }
238
238
 
239
- function transfer(address to, uint256 amount)
240
- public
241
- virtual
242
- override(ERC677, SuperToken)
243
- returns (bool)
244
- {
239
+ function transfer(
240
+ address to,
241
+ uint256 amount
242
+ ) public virtual override(ERC677, SuperToken) returns (bool) {
245
243
  return _transferFrom(msg.sender, msg.sender, to, amount);
246
244
  }
247
245
 
@@ -301,12 +299,10 @@ contract SuperGoodDollar is
301
299
  * @param to the address that will receive the minted tokens
302
300
  * @param amount the amount of tokens to mint
303
301
  */
304
- function mint(address to, uint256 amount)
305
- public
306
- override(IGoodDollarCustom)
307
- onlyMinter
308
- returns (bool)
309
- {
302
+ function mint(
303
+ address to,
304
+ uint256 amount
305
+ ) public override(IGoodDollarCustom) onlyMinter returns (bool) {
310
306
  require(!paused(), "Pausable: token transfer while paused");
311
307
 
312
308
  if (cap > 0) {
@@ -319,7 +315,7 @@ contract SuperGoodDollar is
319
315
  msg.sender,
320
316
  to,
321
317
  amount,
322
- false, /* requireReceptionAck */
318
+ false /* requireReceptionAck */,
323
319
  new bytes(0),
324
320
  new bytes(0)
325
321
  );
@@ -344,11 +340,9 @@ contract SuperGoodDollar is
344
340
  * @dev Gets the current transaction fees
345
341
  * @return fee senderPays that represents the current transaction fees and bool true if sender pays the fee or receiver
346
342
  */
347
- function getFees(uint256 amount)
348
- public
349
- view
350
- returns (uint256 fee, bool senderPays)
351
- {
343
+ function getFees(
344
+ uint256 amount
345
+ ) public view returns (uint256 fee, bool senderPays) {
352
346
  return formula.getTxFees(amount, address(0), address(0));
353
347
  }
354
348
 
@@ -10,7 +10,7 @@ import "../utils/NameService.sol";
10
10
  /* @title One Time payment scheme
11
11
  * Scheme that allows address to deposit tokens for any address to withdraw
12
12
  */
13
- contract OneTimePayments is DAOContract {
13
+ contract OneTimePaymentsV2 is DAOContract {
14
14
  struct Payment {
15
15
  bool hasPayment;
16
16
  uint256 paymentAmount;
package/hardhat.config.ts CHANGED
@@ -35,6 +35,13 @@ const ethplorer_key = process.env.ETHPLORER_KEY;
35
35
 
36
36
  const MAINNET_URL = "https://mainnet.infura.io/v3/" + infura_api;
37
37
 
38
+ const goerli = {
39
+ accounts: { mnemonic },
40
+ url: "https://rpc.ankr.com/eth_goerli",
41
+ gas: 3000000,
42
+ chainId: 5
43
+ };
44
+
38
45
  // console.log({ mnemonic: sha3(mnemonic) });
39
46
  const hhconfig: HardhatUserConfig = {
40
47
  solidity: {
@@ -216,7 +223,10 @@ const hhconfig: HardhatUserConfig = {
216
223
  gas: 3000000,
217
224
  gasPrice: 500000000,
218
225
  chainId: 100
219
- }
226
+ },
227
+ goerli,
228
+ "development-goerli": goerli,
229
+ "staging-goerli": goerli
220
230
  },
221
231
  mocha: {
222
232
  timeout: 6000000
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddollar/goodprotocol",
3
- "version": "2.0.5-beta.2",
3
+ "version": "2.0.5-beta.4",
4
4
  "description": "GoodDollar Protocol",
5
5
  "scripts": {
6
6
  "prepack": "npm run minimize",
@@ -116,7 +116,7 @@
116
116
  "prompt": "^1.3.0",
117
117
  "regenerator-runtime": "^0.13.9",
118
118
  "solhint": "*",
119
- "solidity-coverage": "^0.7.21",
119
+ "solidity-coverage": "^0.8.2",
120
120
  "truffle": "^5.3.12",
121
121
  "truffle-hdwallet-provider": "*",
122
122
  "ts-generator": "^0.1.1",
@@ -207,6 +207,12 @@
207
207
  },
208
208
  "uniswapRouter": "0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D"
209
209
  },
210
+ "development-goerli": {
211
+ "superfluidHost": "0x22ff293e14F1EC3A09B137e9e06084AFd63adDF9"
212
+ },
213
+ "staging-goerli": {
214
+ "superfluidHost": "0x22ff293e14F1EC3A09B137e9e06084AFd63adDF9"
215
+ },
210
216
  "production": {
211
217
  "governance": {
212
218
  "gdaoAirdrop": "0x2feece0e9bc03b54e63e6eb7abb81a128f6bc7ce9a3bafd5ca2bea0c40e3634b",
@@ -159,6 +159,7 @@
159
159
  "FuseFaucet": "0x09Ad3430D146aa662eA8c20cBEBceBC0bbB3FB0a",
160
160
  "Invites": "0x187fc9fB37DF0fbf75149913a97B17c968Fc90d0",
161
161
  "OneTimePayments": "0x184C1F83b3eB75a2dac483D4a6b9FBD59Df961f8",
162
+ "OneTimePaymentsV2": "0x140A43d46F5445cdfC38E8C6f40F0a4541Fe933f",
162
163
  "AdminWallet": "0xC1526892198796d30D33355cfF9Af10EED5B86A0",
163
164
  "AdminWalletOld": "0x14204288286823042263156146334B1a4d61227c",
164
165
  "network": "fuse",
@@ -267,6 +268,7 @@
267
268
  "AdminWalletOld": "0x2961a6C2Fe39F0FFC4f4b1D9E037CD95f4e9C993",
268
269
  "UpgradeScheme": "0xfC9F6F5E3ff7BAAB3fEf82e66f56917D625ba38B",
269
270
  "OneTimePayments": "0x7912636D68E5d92708862b38698f764BF1EC297C",
271
+ "OneTimePaymentsV2": "0xEa6E73f5Ef1EC677FE2551128a22cDf27667a5Cd",
270
272
  "network": "staging",
271
273
  "networkId": 122,
272
274
  "ProxyFactory": "0x240d844AdA767bE0AB08F9BcCcB6D8a04aE370EC",
@@ -501,7 +503,8 @@
501
503
  "ClaimersDistribution": "0x6e3c0ad79FA7ccDFa27bE14C2630511415A2F635",
502
504
  "CompoundVotingMachine": "0xC2C303131939370ed75c95686F691f290b56Be66",
503
505
  "GuardiansSafe": "0x84C10B45fE51bfB4f86c19A47Fdbc187d4572Fb8",
504
- "OneTimePayments": "0xB23e54fd8c2f35F9d38884Fc1611F5e9004f10ea"
506
+ "OneTimePayments": "0xB23e54fd8c2f35F9d38884Fc1611F5e9004f10ea",
507
+ "OneTimePaymentsV2": "0x2cb1c7d50371e277d7a36B171c0ACe9B157518EE"
505
508
  },
506
509
  "staging-celo": {
507
510
  "network": "staging-celo",
@@ -524,6 +527,19 @@
524
527
  "ClaimersDistribution": "0x671123F1c7a5B5445467Ff765a5E2Bc86878B245",
525
528
  "CompoundVotingMachine": "0xCd25fB84AB22582F1034bcd80c399a3126f2E775",
526
529
  "GuardiansSafe": "0x84C10B45fE51bfB4f86c19A47Fdbc187d4572Fb8",
527
- "OneTimePayments": "0x514820Af2DaE5F537dE16E576471528176318113"
530
+ "OneTimePayments": "0x514820Af2DaE5F537dE16E576471528176318113",
531
+ "OneTimePaymentsV2": "0x963E7B4c970626Bb103c61fA16b002AFf6E6c2C7"
532
+ },
533
+ "development-goerli": {
534
+ "ProxyFactory": "0x65D8eACBCd9618b8780C4b444081915a5D54D611",
535
+ "GoodDollar": "0x70044867217EC9C46ecDe49C1f7fCA3b5Ed2f5C4",
536
+ "Avatar": "0xE0e3BFb1A1850bdFe36ED1563CC2abB6A8B6De78",
537
+ "Controller": "0x6717A1948328C8eCCb5C933Fae90e0631C2486fE",
538
+ "Identity": "0x53A537b6917fAFC6bFE1Ae0d54874A225Ce25bA1",
539
+ "NameService": "0xbd8297847F9De15409Dc0441560b2114c5e7b662",
540
+ "GReputation": "0x0abF3D20fCb33FC03bdF25b042E77edfAeDBBDD3",
541
+ "FeeFormula": "0x5fAA779cF74a1Ba51909DEeaA0e8900474DA77Cf",
542
+ "DAOCreator": "0xc66c970a6d99da587a7d7fa7d5383b401c3e87f4",
543
+ "OneTimePaymentsV2": "0x4E8112430974b4CE87283221a11BDC52097e7e2e"
528
544
  }
529
545
  }
@@ -12,19 +12,13 @@ import DAOCreatorABI from "@gooddollar/goodcontracts/build/contracts/DaoCreatorG
12
12
  // import IdentityABI from "@gooddollar/goodcontracts/build/contracts/Identity.json";
13
13
  import FeeFormulaABI from "@gooddollar/goodcontracts/build/contracts/FeeFormula.json";
14
14
 
15
- import {
16
- deployDeterministic,
17
- deploySuperGoodDollar,
18
- verifyProductionSigner
19
- } from "./helpers";
15
+ import { deployDeterministic, deploySuperGoodDollar, verifyProductionSigner } from "./helpers";
20
16
  import releaser from "../releaser";
21
17
  import ProtocolSettings from "../../releases/deploy-settings.json";
22
18
  import dao from "../../releases/deployment.json";
23
19
  import { TransactionResponse } from "@ethersproject/providers";
24
20
 
25
- const printDeploy = async (
26
- c: Contract | TransactionResponse
27
- ): Promise<Contract | TransactionResponse> => {
21
+ const printDeploy = async (c: Contract | TransactionResponse): Promise<Contract | TransactionResponse> => {
28
22
  if (c instanceof Contract) {
29
23
  await c.deployed();
30
24
  console.log("deployed to: ", c.address);
@@ -37,11 +31,7 @@ const printDeploy = async (
37
31
  };
38
32
 
39
33
  export const createDAO = async () => {
40
- let protocolSettings = defaultsDeep(
41
- {},
42
- ProtocolSettings[network.name],
43
- ProtocolSettings["default"]
44
- );
34
+ let protocolSettings = defaultsDeep({}, ProtocolSettings[network.name], ProtocolSettings["default"]);
45
35
 
46
36
  let release: { [key: string]: any } = dao[network.name];
47
37
  const isProduction = network.name.includes("production");
@@ -54,34 +44,17 @@ export const createDAO = async () => {
54
44
  network,
55
45
  daoOwner,
56
46
  root: root.address,
57
- balance: await ethers.provider
58
- .getBalance(root.address)
59
- .then(_ => _.toString()),
47
+ balance: await ethers.provider.getBalance(root.address).then(_ => _.toString()),
60
48
  release
61
49
  });
62
50
 
63
- const DAOCreatorFactory = new ethers.ContractFactory(
64
- DAOCreatorABI.abi,
65
- DAOCreatorABI.bytecode,
66
- root
67
- );
51
+ const DAOCreatorFactory = new ethers.ContractFactory(DAOCreatorABI.abi, DAOCreatorABI.bytecode, root);
68
52
 
69
- const FeeFormulaFactory = new ethers.ContractFactory(
70
- FeeFormulaABI.abi,
71
- FeeFormulaABI.bytecode,
72
- root
73
- );
53
+ const FeeFormulaFactory = new ethers.ContractFactory(FeeFormulaABI.abi, FeeFormulaABI.bytecode, root);
74
54
 
75
- const proxyFactory = await ethers.getContractAt(
76
- "ProxyFactory1967",
77
- release.ProxyFactory
78
- );
79
- const salt = ethers.BigNumber.from(
80
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes("NameService"))
81
- );
82
- const nameserviceFutureAddress = await proxyFactory[
83
- "getDeploymentAddress(uint256,address)"
84
- ](salt, root.address);
55
+ const proxyFactory = await ethers.getContractAt("ProxyFactory1967", release.ProxyFactory);
56
+ const salt = ethers.BigNumber.from(ethers.utils.keccak256(ethers.utils.toUtf8Bytes("NameService")));
57
+ const nameserviceFutureAddress = await proxyFactory["getDeploymentAddress(uint256,address)"](salt, root.address);
85
58
  console.log("deploying identity", { nameserviceFutureAddress });
86
59
  const Identity = (await deployDeterministic(
87
60
  {
@@ -92,12 +65,11 @@ export const createDAO = async () => {
92
65
  [root.address, ethers.constants.AddressZero]
93
66
  ).then(printDeploy)) as Contract;
94
67
 
95
- const daoCreator = await DAOCreatorFactory.deploy();
68
+ const daoCreator = (await DAOCreatorFactory.deploy().then(printDeploy)) as Contract;
96
69
 
97
- const FeeFormula = (await deployDeterministic(
98
- { name: "FeeFormula", factory: FeeFormulaFactory },
99
- [0]
100
- ).then(printDeploy)) as Contract;
70
+ const FeeFormula = (await deployDeterministic({ name: "FeeFormula", factory: FeeFormulaFactory }, [0]).then(
71
+ printDeploy
72
+ )) as Contract;
101
73
 
102
74
  let GoodDollar;
103
75
  if (protocolSettings.superfluidHost) {
@@ -115,8 +87,7 @@ export const createDAO = async () => {
115
87
  {
116
88
  name: "GoodDollar",
117
89
  isUpgradeable: true,
118
- initializer:
119
- "initialize(string, string, uint256, address, address, address,address)"
90
+ initializer: "initialize(string, string, uint256, address, address, address,address)"
120
91
  },
121
92
  [
122
93
  isProduction ? "GoodDollar" : "GoodDollar Dev",
@@ -148,16 +119,11 @@ export const createDAO = async () => {
148
119
  // await Identity.setAuthenticationPeriod(365).then(printDeploy);
149
120
 
150
121
  console.log("creating dao");
151
- await daoCreator
152
- .forgeOrg(GoodDollar.address, GReputation.address, [], 0, [])
153
- .then(printDeploy);
122
+ await daoCreator.forgeOrg(GoodDollar.address, GReputation.address, [], 0, []).then(printDeploy);
154
123
  console.log("forgeOrg done ");
155
124
  const Avatar = new ethers.Contract(
156
125
  await daoCreator.avatar(),
157
- [
158
- "function owner() view returns (address)",
159
- "function nativeToken() view returns (address)"
160
- ],
126
+ ["function owner() view returns (address)", "function nativeToken() view returns (address)"],
161
127
  root
162
128
  );
163
129
 
@@ -181,16 +147,13 @@ export const createDAO = async () => {
181
147
  )
182
148
  .then(printDeploy);
183
149
 
184
- const NameService = await deployDeterministic(
185
- { name: "NameService", isUpgradeable: true },
186
- [
187
- controller,
188
- ["CONTROLLER", "AVATAR", "IDENTITY", "GOODDOLLAR", "REPUTATION"].map(_ =>
189
- ethers.utils.keccak256(ethers.utils.toUtf8Bytes(_))
190
- ),
191
- [controller, Avatar.address, Identity.address, gd, GReputation.address]
192
- ]
193
- );
150
+ const NameService = await deployDeterministic({ name: "NameService", isUpgradeable: true }, [
151
+ controller,
152
+ ["CONTROLLER", "AVATAR", "IDENTITY", "GOODDOLLAR", "REPUTATION"].map(_ =>
153
+ ethers.utils.keccak256(ethers.utils.toUtf8Bytes(_))
154
+ ),
155
+ [controller, Avatar.address, Identity.address, gd, GReputation.address]
156
+ ]);
194
157
 
195
158
  console.log("set GRep nameservice..");
196
159
  await (await GReputation.updateDAO(NameService.address)).wait();
@@ -206,54 +169,31 @@ export const createDAO = async () => {
206
169
  await GoodDollar.renounceMinter().then(printDeploy);
207
170
  }
208
171
 
209
- const daoOwnerDaoPermissions = await Controller.getSchemePermissions(
210
- daoOwner,
211
- Avatar.address
212
- );
172
+ const daoOwnerDaoPermissions = await Controller.getSchemePermissions(daoOwner, Avatar.address);
213
173
 
214
- const deployerIsNotGDMinter =
215
- (await GoodDollar.isMinter(root.address)) === false;
174
+ const deployerIsNotGDMinter = (await GoodDollar.isMinter(root.address)) === false;
216
175
 
217
176
  const avatarIsGDMinter = await GoodDollar.isMinter(Avatar.address);
218
177
 
219
- const deployerIsNotGDPauser =
220
- (await GoodDollar.isPauser(root.address)) === false;
178
+ const deployerIsNotGDPauser = (await GoodDollar.isPauser(root.address)) === false;
221
179
 
222
- const deployerIsNotRepMinter =
223
- (await GReputation.hasRole(GReputation.MINTER_ROLE(), root.address)) ===
224
- false;
225
- const avatarIsRepMinter = await GReputation.hasRole(
226
- GReputation.MINTER_ROLE(),
227
- Avatar.address
228
- );
180
+ const deployerIsNotRepMinter = (await GReputation.hasRole(GReputation.MINTER_ROLE(), root.address)) === false;
181
+ const avatarIsRepMinter = await GReputation.hasRole(GReputation.MINTER_ROLE(), Avatar.address);
229
182
 
230
- const deployerIsIdentityOwner = await Identity.hasRole(
231
- ethers.constants.HashZero,
232
- root.address
233
- );
183
+ const deployerIsIdentityOwner = await Identity.hasRole(ethers.constants.HashZero, root.address);
234
184
 
235
- const avatarIsIdentityOwner = await Identity.hasRole(
236
- ethers.constants.HashZero,
237
- Avatar.address
238
- );
185
+ const avatarIsIdentityOwner = await Identity.hasRole(ethers.constants.HashZero, Avatar.address);
239
186
 
240
187
  //try to modify DAO -> should not succeed
241
188
  await (await GReputation.updateDAO(ethers.constants.AddressZero)).wait();
242
189
 
243
- const grepHasDAOSet =
244
- (await GReputation.nameService()) === NameService.address;
190
+ const grepHasDAOSet = (await GReputation.nameService()) === NameService.address;
245
191
 
246
- const factoryIsNotGoodOwner =
247
- (await GReputation.hasRole(
248
- ethers.constants.HashZero,
249
- proxyFactory.address
250
- )) === false;
192
+ const factoryIsNotGoodOwner = (await GReputation.hasRole(ethers.constants.HashZero, proxyFactory.address)) === false;
251
193
 
252
- const factoryIsNotGDMinter =
253
- (await GoodDollar.isMinter(proxyFactory.address)) === false;
194
+ const factoryIsNotGDMinter = (await GoodDollar.isMinter(proxyFactory.address)) === false;
254
195
 
255
- const factoryIsNotGDPauser =
256
- (await GoodDollar.isPauser(root.address)) === false;
196
+ const factoryIsNotGDPauser = (await GoodDollar.isPauser(root.address)) === false;
257
197
 
258
198
  console.log({
259
199
  daoOwnerDaoPermissions,
@@ -49,8 +49,8 @@ export const deployHelpers = async () => {
49
49
  console.log("deploying onetime payments", { gasprice: protocolSettings.gasPrice });
50
50
  const OTP = (await deployDeterministic(
51
51
  {
52
- name: "OneTimePayments",
53
- salt: "OneTimePayments",
52
+ name: "OneTimePaymentsV2",
53
+ salt: "OneTimePaymentsV2",
54
54
  isUpgradeable: false
55
55
  },
56
56
  [release.NameService]
@@ -59,12 +59,12 @@ export const deployHelpers = async () => {
59
59
  // const OTP = await ethers.getContractAt("OneTimePayments", release.OneTimePayments);
60
60
 
61
61
  const torelease = {
62
- OneTimePayments: OTP.address
62
+ OneTimePaymentsV2: OTP.address
63
63
  };
64
64
  await releaser(torelease, network.name, "deployment", false);
65
65
 
66
66
  const constructorArgs = ethers.utils.defaultAbiCoder.encode(["address"], [release.NameService]);
67
- await verifyContract(OTP.address, "OneTimePayments", network.name, undefined, constructorArgs);
67
+ await verifyContract(OTP.address, "OneTimePaymentsV2", network.name, undefined, constructorArgs);
68
68
  };
69
69
 
70
70
  export const main = async () => {
@@ -65,11 +65,11 @@ export const deploySuperGoodDollar = async (superfluidHost, tokenArgs) => {
65
65
  []
66
66
  ).then(printDeploy)) as Contract;
67
67
 
68
- await GoodDollarProxy.initializeProxy(SuperGoodDollar.address);
68
+ await GoodDollarProxy.initializeProxy(SuperGoodDollar.address).then(printDeploy);
69
69
 
70
- await SuperGoodDollar.attach(GoodDollarProxy.address)[
71
- "initialize(string,string,uint256,address,address,address,address)"
72
- ](...tokenArgs);
70
+ await SuperGoodDollar.attach(GoodDollarProxy.address)
71
+ ["initialize(string,string,uint256,address,address,address,address)"](...tokenArgs)
72
+ .then(printDeploy);
73
73
 
74
74
  const GoodDollar = await ethers.getContractAt("ISuperGoodDollar", GoodDollarProxy.address);
75
75
  return GoodDollar;
package/truffle-config.js CHANGED
@@ -74,6 +74,12 @@ module.exports = {
74
74
  timeoutBlocks: 200, // # of blocks before a deployment times out (minimum/default: 50)
75
75
  skipDryRun: true // Skip dry run before migrations? (default: false for public nets )
76
76
  },
77
+ goerli: {
78
+ provider: () => new Web3.providers.HttpProvider(`https://rpc.ankr.io/eth_goerli`),
79
+ network_id: 5, // Ropsten's id
80
+ gas: 3000000, // Ropsten has a lower block limit than mainnet
81
+ skipDryRun: true // Skip dry run before migrations? (default: false for public nets )
82
+ },
77
83
  fuse: {
78
84
  provider: () => new Web3.providers.HttpProvider(`https://rpc.fuse.io`),
79
85
  network_id: 122, // Ropsten's id