@gooddollar/goodprotocol 1.0.29-beta.0 → 1.0.29-beta.2

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 (406) hide show
  1. package/artifacts/abis/AdminWallet.min.json +1 -1
  2. package/artifacts/abis/BulkProof.min.json +1 -1
  3. package/artifacts/abis/DistributionBridgeMock.min.json +1 -0
  4. package/artifacts/abis/DistributionHelper.min.json +1 -0
  5. package/artifacts/abis/DistributionHelperTest.min.json +1 -0
  6. package/artifacts/abis/DistributionHelperTestHelper.min.json +1 -0
  7. package/artifacts/abis/ERC20.min.json +1 -1
  8. package/artifacts/abis/Faucet.min.json +1 -0
  9. package/artifacts/abis/GoodDollarMintBurnWrapper.min.json +1 -0
  10. package/artifacts/abis/GoodDollarStaking.min.json +1 -0
  11. package/artifacts/abis/GoodDollarStakingMock.min.json +1 -0
  12. package/artifacts/abis/GoodReserveCDai.min.json +1 -1
  13. package/artifacts/abis/IERC2917.min.json +1 -1
  14. package/artifacts/abis/IGoodDollar.min.json +1 -1
  15. package/artifacts/abis/IGoodDollarStakingTest.min.json +1 -0
  16. package/artifacts/abis/IGovernanceStaking.min.json +1 -0
  17. package/artifacts/abis/IIdentity.min.json +1 -1
  18. package/artifacts/abis/IIdentityV2.min.json +1 -0
  19. package/artifacts/abis/IMultichainRouter.min.json +1 -0
  20. package/artifacts/abis/IRouter.min.json +1 -0
  21. package/artifacts/abis/IWrapper.min.json +1 -0
  22. package/artifacts/abis/IdentityV2.min.json +1 -0
  23. package/artifacts/abis/InvitesV2.min.json +1 -0
  24. package/artifacts/abis/Math64x64.min.json +1 -0
  25. package/artifacts/abis/MultichainBridgeHelper.min.json +1 -0
  26. package/artifacts/abis/MultichainRouterMock.min.json +1 -0
  27. package/artifacts/abis/OverMintTester.min.json +1 -1
  28. package/artifacts/abis/PausableControl.min.json +1 -0
  29. package/artifacts/abis/RewardsMinter.min.json +1 -0
  30. package/artifacts/abis/StakingMockFixedAPY.min.json +1 -0
  31. package/artifacts/abis/StakingRewardsFixedAPY.min.json +1 -0
  32. package/artifacts/abis/TokenOperation.min.json +1 -0
  33. package/artifacts/abis/UBIScheme.min.json +1 -1
  34. package/artifacts/abis/cERC20.min.json +1 -1
  35. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  36. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  37. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  38. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  39. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  40. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  41. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  42. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  43. package/artifacts/contracts/Interfaces.sol/ERC20.json +13 -0
  44. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  45. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  46. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  47. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  48. package/artifacts/contracts/Interfaces.sol/IERC2917.json +13 -0
  49. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  50. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  51. package/artifacts/contracts/Interfaces.sol/IGoodDollar.json +39 -0
  52. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  53. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  54. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  55. package/artifacts/contracts/Interfaces.sol/IIdentity.json +51 -0
  56. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +4 -0
  57. package/artifacts/contracts/Interfaces.sol/IIdentityV2.json +281 -0
  58. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  59. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +4 -0
  60. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.json +67 -0
  61. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  62. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  63. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  64. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  65. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  66. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  67. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  68. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  69. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  70. package/artifacts/contracts/Interfaces.sol/cERC20.json +13 -0
  71. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +4 -0
  72. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.json +684 -0
  73. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  74. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.json +2 -2
  75. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  76. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +2 -2
  77. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  78. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +2 -2
  79. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  80. package/artifacts/contracts/governance/GReputation.sol/GReputation.json +2 -2
  81. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +4 -0
  82. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +1335 -0
  83. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.dbg.json +4 -0
  84. package/artifacts/contracts/governance/GoodDollarStaking.sol/IGovernanceStaking.json +24 -0
  85. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +4 -0
  86. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.json +35 -0
  87. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  88. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.json +2 -2
  89. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  90. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  91. package/artifacts/contracts/governance/Reputation.sol/Reputation.json +2 -2
  92. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  93. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +2 -2
  94. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +4 -0
  95. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.json +1000 -0
  96. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  97. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.json +2 -2
  98. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +4 -0
  99. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.json +586 -0
  100. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  101. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  102. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  103. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +4 -0
  104. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.json +152 -0
  105. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +4 -0
  106. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.json +662 -0
  107. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +4 -0
  108. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +680 -0
  109. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  110. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +2 -2
  111. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +4 -0
  112. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +1335 -0
  113. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  114. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +2 -2
  115. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  116. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  117. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +4 -0
  118. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.json +59 -0
  119. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +4 -0
  120. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.json +81 -0
  121. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +4 -0
  122. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.json +49 -0
  123. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  124. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.json +4 -4
  125. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  126. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
  127. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  128. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +4 -0
  129. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.json +682 -0
  130. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  131. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.json +2 -2
  132. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  133. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  134. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +2 -2
  135. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  136. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +2 -2
  137. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  138. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +2 -2
  139. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  140. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +2 -2
  141. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  142. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  143. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  144. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  145. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  146. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  147. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  148. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  149. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +4 -0
  150. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +662 -0
  151. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  152. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +2 -2
  153. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  154. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +2 -2
  155. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  156. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  157. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +75 -35
  158. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  159. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.json +2 -2
  160. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  161. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.json +2 -2
  162. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  163. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +2 -2
  164. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  165. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +2 -2
  166. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  167. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  168. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  169. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +2 -2
  170. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  171. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  172. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  173. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
  174. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  175. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +2 -2
  176. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  177. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +2 -2
  178. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  179. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +2 -2
  180. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  181. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +2 -2
  182. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  183. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +2 -2
  184. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  185. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +2 -2
  186. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +4 -0
  187. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.json +10 -0
  188. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +4 -0
  189. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.json +268 -0
  190. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  191. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +15 -22
  192. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  193. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +76 -56
  194. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  195. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  196. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.json +3 -34
  197. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  198. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.json +2 -2
  199. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  200. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.json +2 -2
  201. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  202. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  203. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +4 -0
  204. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +1263 -0
  205. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +4 -0
  206. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.json +59 -0
  207. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +4 -0
  208. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.json +69 -0
  209. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +4 -0
  210. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.json +10 -0
  211. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +4 -0
  212. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.json +79 -0
  213. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  214. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  215. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  216. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.json +2 -2
  217. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  218. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.json +2 -2
  219. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  220. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.json +2 -2
  221. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  222. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.json +2 -2
  223. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  224. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  225. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  226. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.json +2 -2
  227. package/contracts/Interfaces.sol +46 -0
  228. package/contracts/fuseFaucet/Faucet.sol +245 -0
  229. package/contracts/governance/GoodDollarStaking.sol +524 -0
  230. package/contracts/governance/MultiBaseGovernanceShareField.sol +1 -0
  231. package/contracts/identity/IdentityV2.sol +434 -0
  232. package/contracts/invite/InvitesV2.sol +316 -0
  233. package/contracts/mocks/DistributionBridgeMock.sol +50 -0
  234. package/contracts/mocks/DistributionHelperTest.sol +22 -0
  235. package/contracts/mocks/GoodDollarStakingMock.sol +24 -0
  236. package/contracts/mocks/MultichainRouterMock.sol +38 -0
  237. package/contracts/mocks/OverMintTester.sol +39 -25
  238. package/contracts/mocks/StakingMockFixedAPY.sol +78 -0
  239. package/contracts/reserve/DistributionHelper.sol +142 -0
  240. package/contracts/reserve/GoodReserveCDai.sol +95 -41
  241. package/contracts/staking/utils/Math64X64.sol +268 -0
  242. package/contracts/staking/utils/StakingRewardsFixedAPY.sol +336 -0
  243. package/contracts/ubi/UBIScheme.sol +45 -40
  244. package/contracts/utils/AdminWallet.sol +42 -11
  245. package/contracts/utils/BulkProof.sol +10 -10
  246. package/contracts/utils/GoodDollarMintBurnWrapper.sol +638 -0
  247. package/contracts/utils/MultichainBridgeHelper.sol +39 -0
  248. package/hardhat.config.ts +21 -5
  249. package/package.json +9 -5
  250. package/patches/@openzeppelin+hardhat-upgrades+1.7.0.patch.depracate +67 -0
  251. package/releases/deploy-settings.json +36 -1
  252. package/releases/deployment.json +103 -55
  253. package/releases/olddao.json +1 -1
  254. package/scripts/analytics/activeUsersCount.ts +65 -0
  255. package/scripts/analytics/activeWalletsStats.ts +150 -0
  256. package/scripts/analytics/claimIncidentStats.ts +117 -0
  257. package/scripts/analytics/faucetStats.ts +103 -0
  258. package/scripts/analytics/goodHolders.ts +50 -0
  259. package/scripts/{misc → analytics}/goodgiveback.ts +0 -0
  260. package/scripts/governance/airdropCalculation.ts +1 -0
  261. package/scripts/multichain-deploy/0_proxyFactory-deploy.ts +45 -0
  262. package/scripts/multichain-deploy/{basicdao-deploy.ts → 1_basicdao-deploy.ts} +75 -56
  263. package/scripts/multichain-deploy/2_helpers-deploy.ts +143 -0
  264. package/scripts/multichain-deploy/3_gdSavings-deploy.ts +246 -0
  265. package/scripts/multichain-deploy/4_ubi-deploy.ts +121 -0
  266. package/scripts/multichain-deploy/5_gov-deploy.ts +123 -0
  267. package/scripts/multichain-deploy/helpers.ts +72 -8
  268. package/scripts/multichain-deploy/multichainWrapper-deploy.ts +56 -0
  269. package/scripts/multichain-deploy/verifyEtherscan.ts +84 -0
  270. package/scripts/test/localOldDaoDeploy.ts +10 -3
  271. package/scripts/upgrades/identity-upgrade.ts +153 -0
  272. package/scripts/upgrades/nonubiDistribution-deploy.ts +167 -0
  273. package/scripts/voltageswaps.ts +47 -0
  274. package/test/governance/ClaimersDistribution.test.ts +1 -1
  275. package/test/governance/GoodDollarStaking.gd.test.ts +559 -0
  276. package/test/governance/GoodDollarStaking.good.test.ts +998 -0
  277. package/test/governance/GovernanceStaking.test.ts +43 -0
  278. package/test/helpers.ts +21 -20
  279. package/test/reserve/DistributionHelper.test.ts +394 -0
  280. package/test/reserve/GoodReserveCDai.distribution.test.ts +296 -0
  281. package/test/reserve/GoodReserveCDai.gdx.test.ts +21 -16
  282. package/test/reserve/GoodReserveCDai.pause.test.ts +116 -0
  283. package/test/staking/StakingRewardsFixedAPY.test.ts +900 -0
  284. package/test/ubi/UBIScheme.test.ts +30 -30
  285. package/test/ubi/UBISchemeCycle.test.ts +9 -7
  286. package/test/utils/AdminWallet.test.ts +40 -13
  287. package/test/utils/GoodDollarMintBurnWrapper.test.ts +796 -0
  288. package/tsconfig.json +4 -9
  289. package/types/AccessControl.ts +361 -0
  290. package/types/AdminWallet.ts +124 -113
  291. package/types/CERC20.ts +25 -0
  292. package/types/DistributionBridgeMock.ts +251 -0
  293. package/types/DistributionHelper.ts +908 -0
  294. package/types/DistributionHelperTest.ts +909 -0
  295. package/types/DistributionHelperTestHelper.ts +945 -0
  296. package/types/ERC165.ts +104 -0
  297. package/types/ERC20.ts +101 -49
  298. package/types/Faucet.ts +1014 -0
  299. package/types/GoodDollarMintBurnWrapper.ts +1806 -0
  300. package/types/GoodDollarStaking.ts +1889 -0
  301. package/types/GoodDollarStakingMock.ts +1889 -0
  302. package/types/GoodReserveCDai.ts +90 -55
  303. package/types/IAccessControl.ts +306 -0
  304. package/types/IERC1271.ts +109 -0
  305. package/types/IERC165.ts +104 -0
  306. package/types/IERC20.ts +300 -0
  307. package/types/IERC20Metadata.ts +339 -0
  308. package/types/IERC2917.ts +25 -0
  309. package/types/IGoodDollar.ts +54 -0
  310. package/types/IGoodDollarStakingTest.ts +160 -0
  311. package/types/{BulkProof.ts → IGovernanceStaking.ts} +15 -28
  312. package/types/IIdentity.ts +75 -0
  313. package/types/IIdentityV2.ts +526 -0
  314. package/types/IMultichainRouter.ts +166 -0
  315. package/types/IRouter.ts +143 -0
  316. package/types/IWrapper.ts +143 -0
  317. package/types/IdentityV2.ts +1612 -0
  318. package/types/InvitesV2.ts +933 -0
  319. package/types/MultichainBridgeHelper.ts +170 -0
  320. package/types/MultichainRouterMock.ts +141 -0
  321. package/types/Pausable.ts +103 -0
  322. package/types/PausableControl.ts +125 -0
  323. package/types/RewardsMinter.ts +107 -0
  324. package/types/StakingMockFixedAPY.ts +995 -0
  325. package/types/StakingRewardsFixedAPY.ts +428 -0
  326. package/types/UBIScheme.ts +19 -40
  327. package/types/factories/AaveStakingFactory__factory.ts +1 -1
  328. package/types/factories/AccessControl__factory.ts +227 -0
  329. package/types/factories/AdminWallet__factory.ts +75 -55
  330. package/types/factories/BaseShareFieldV2__factory.ts +1 -1
  331. package/types/factories/BaseShareField__factory.ts +1 -1
  332. package/types/factories/CERC20__factory.ts +13 -0
  333. package/types/factories/ClaimersDistribution__factory.ts +1 -1
  334. package/types/factories/CompoundStakingFactory__factory.ts +1 -1
  335. package/types/factories/CompoundVotingMachine__factory.ts +1 -1
  336. package/types/factories/DAOContract__factory.ts +1 -1
  337. package/types/factories/DAOUpgradeableContract__factory.ts +1 -1
  338. package/types/factories/DistributionBridgeMock__factory.ts +207 -0
  339. package/types/factories/DistributionHelperTestHelper__factory.ts +737 -0
  340. package/types/factories/DistributionHelperTest__factory.ts +717 -0
  341. package/types/factories/DistributionHelper__factory.ts +713 -0
  342. package/types/factories/DonationsStaking__factory.ts +1 -1
  343. package/types/factories/ERC165__factory.ts +39 -0
  344. package/types/factories/ERC20__factory.ts +13 -0
  345. package/types/factories/ExchangeHelper__factory.ts +1 -1
  346. package/types/factories/Faucet__factory.ts +729 -0
  347. package/types/factories/FuseFaucet__factory.ts +1 -1
  348. package/types/factories/FuseStakingV3__factory.ts +1 -1
  349. package/types/factories/GReputation__factory.ts +1 -1
  350. package/types/factories/GoodAaveStakingV2__factory.ts +1 -1
  351. package/types/factories/GoodAaveStaking__factory.ts +1 -1
  352. package/types/factories/GoodCompoundStakingTest__factory.ts +1 -1
  353. package/types/factories/GoodCompoundStakingV2__factory.ts +1 -1
  354. package/types/factories/GoodCompoundStaking__factory.ts +1 -1
  355. package/types/factories/GoodDollarMintBurnWrapper__factory.ts +1318 -0
  356. package/types/factories/GoodDollarStakingMock__factory.ts +1417 -0
  357. package/types/factories/GoodDollarStaking__factory.ts +1413 -0
  358. package/types/factories/GoodFundManagerTest__factory.ts +1 -1
  359. package/types/factories/GoodFundManager__factory.ts +1 -1
  360. package/types/factories/GoodMarketMaker__factory.ts +1 -1
  361. package/types/factories/GoodReserveCDai__factory.ts +74 -34
  362. package/types/factories/GovernanceStaking__factory.ts +1 -1
  363. package/types/factories/IAccessControl__factory.ts +198 -0
  364. package/types/factories/IERC1271__factory.ts +47 -0
  365. package/types/factories/IERC165__factory.ts +42 -0
  366. package/types/factories/IERC20Metadata__factory.ts +248 -0
  367. package/types/factories/IERC20__factory.ts +203 -0
  368. package/types/factories/IERC2917__factory.ts +13 -0
  369. package/types/factories/IGoodDollarStakingTest__factory.ts +68 -0
  370. package/types/factories/IGoodDollar__factory.ts +39 -0
  371. package/types/factories/IGovernanceStaking__factory.ts +39 -0
  372. package/types/factories/IIdentityV2__factory.ts +293 -0
  373. package/types/factories/IIdentity__factory.ts +51 -0
  374. package/types/factories/IMultichainRouter__factory.ts +82 -0
  375. package/types/factories/IRouter__factory.ts +71 -0
  376. package/types/factories/IWrapper__factory.ts +71 -0
  377. package/types/factories/IdentityV2__factory.ts +1048 -0
  378. package/types/factories/InvitesV1__factory.ts +1 -1
  379. package/types/factories/InvitesV2__factory.ts +634 -0
  380. package/types/factories/MultichainBridgeHelper__factory.ts +134 -0
  381. package/types/factories/MultichainRouterMock__factory.ts +141 -0
  382. package/types/factories/OverMintTesterRegularStake__factory.ts +1 -1
  383. package/types/factories/OverMintTester__factory.ts +3 -3
  384. package/types/factories/PausableControl__factory.ts +84 -0
  385. package/types/factories/Pausable__factory.ts +62 -0
  386. package/types/factories/ProtocolUpgradeFuseRecover__factory.ts +1 -1
  387. package/types/factories/ProtocolUpgradeFuse__factory.ts +1 -1
  388. package/types/factories/ProtocolUpgradeRecover__factory.ts +1 -1
  389. package/types/factories/ProtocolUpgrade__factory.ts +1 -1
  390. package/types/factories/ReputationTestHelper__factory.ts +1 -1
  391. package/types/factories/Reputation__factory.ts +1 -1
  392. package/types/factories/RewardsMinter__factory.ts +47 -0
  393. package/types/factories/StakersDistribution__factory.ts +1 -1
  394. package/types/factories/StakingMockFixedAPY__factory.ts +745 -0
  395. package/types/factories/StakingRewardsFixedAPY__factory.ts +287 -0
  396. package/types/factories/SwapHelperTest__factory.ts +1 -1
  397. package/types/factories/UBIScheme__factory.ts +14 -21
  398. package/types/factories/UniswapV2SwapHelper__factory.ts +1 -1
  399. package/types/factories/UpgradableMock2__factory.ts +1 -1
  400. package/types/factories/UpgradableMock3__factory.ts +1 -1
  401. package/types/factories/UpgradableMock4__factory.ts +1 -1
  402. package/types/factories/UpgradableMock__factory.ts +1 -1
  403. package/types/hardhat.d.ts +279 -9
  404. package/types/index.ts +62 -4
  405. package/yarn.lock +184 -108
  406. package/types/factories/BulkProof__factory.ts +0 -89
@@ -0,0 +1,1000 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "IdentityV2",
4
+ "sourceName": "contracts/identity/IdentityV2.sol",
5
+ "abi": [
6
+ {
7
+ "anonymous": false,
8
+ "inputs": [
9
+ {
10
+ "indexed": false,
11
+ "internalType": "address",
12
+ "name": "previousAdmin",
13
+ "type": "address"
14
+ },
15
+ {
16
+ "indexed": false,
17
+ "internalType": "address",
18
+ "name": "newAdmin",
19
+ "type": "address"
20
+ }
21
+ ],
22
+ "name": "AdminChanged",
23
+ "type": "event"
24
+ },
25
+ {
26
+ "anonymous": false,
27
+ "inputs": [
28
+ {
29
+ "indexed": true,
30
+ "internalType": "address",
31
+ "name": "beacon",
32
+ "type": "address"
33
+ }
34
+ ],
35
+ "name": "BeaconUpgraded",
36
+ "type": "event"
37
+ },
38
+ {
39
+ "anonymous": false,
40
+ "inputs": [
41
+ {
42
+ "indexed": true,
43
+ "internalType": "address",
44
+ "name": "account",
45
+ "type": "address"
46
+ }
47
+ ],
48
+ "name": "BlacklistAdded",
49
+ "type": "event"
50
+ },
51
+ {
52
+ "anonymous": false,
53
+ "inputs": [
54
+ {
55
+ "indexed": true,
56
+ "internalType": "address",
57
+ "name": "account",
58
+ "type": "address"
59
+ }
60
+ ],
61
+ "name": "BlacklistRemoved",
62
+ "type": "event"
63
+ },
64
+ {
65
+ "anonymous": false,
66
+ "inputs": [
67
+ {
68
+ "indexed": true,
69
+ "internalType": "address",
70
+ "name": "account",
71
+ "type": "address"
72
+ }
73
+ ],
74
+ "name": "ContractAdded",
75
+ "type": "event"
76
+ },
77
+ {
78
+ "anonymous": false,
79
+ "inputs": [
80
+ {
81
+ "indexed": true,
82
+ "internalType": "address",
83
+ "name": "account",
84
+ "type": "address"
85
+ }
86
+ ],
87
+ "name": "ContractRemoved",
88
+ "type": "event"
89
+ },
90
+ {
91
+ "anonymous": false,
92
+ "inputs": [
93
+ {
94
+ "indexed": false,
95
+ "internalType": "address",
96
+ "name": "account",
97
+ "type": "address"
98
+ }
99
+ ],
100
+ "name": "Paused",
101
+ "type": "event"
102
+ },
103
+ {
104
+ "anonymous": false,
105
+ "inputs": [
106
+ {
107
+ "indexed": true,
108
+ "internalType": "bytes32",
109
+ "name": "role",
110
+ "type": "bytes32"
111
+ },
112
+ {
113
+ "indexed": true,
114
+ "internalType": "bytes32",
115
+ "name": "previousAdminRole",
116
+ "type": "bytes32"
117
+ },
118
+ {
119
+ "indexed": true,
120
+ "internalType": "bytes32",
121
+ "name": "newAdminRole",
122
+ "type": "bytes32"
123
+ }
124
+ ],
125
+ "name": "RoleAdminChanged",
126
+ "type": "event"
127
+ },
128
+ {
129
+ "anonymous": false,
130
+ "inputs": [
131
+ {
132
+ "indexed": true,
133
+ "internalType": "bytes32",
134
+ "name": "role",
135
+ "type": "bytes32"
136
+ },
137
+ {
138
+ "indexed": true,
139
+ "internalType": "address",
140
+ "name": "account",
141
+ "type": "address"
142
+ },
143
+ {
144
+ "indexed": true,
145
+ "internalType": "address",
146
+ "name": "sender",
147
+ "type": "address"
148
+ }
149
+ ],
150
+ "name": "RoleGranted",
151
+ "type": "event"
152
+ },
153
+ {
154
+ "anonymous": false,
155
+ "inputs": [
156
+ {
157
+ "indexed": true,
158
+ "internalType": "bytes32",
159
+ "name": "role",
160
+ "type": "bytes32"
161
+ },
162
+ {
163
+ "indexed": true,
164
+ "internalType": "address",
165
+ "name": "account",
166
+ "type": "address"
167
+ },
168
+ {
169
+ "indexed": true,
170
+ "internalType": "address",
171
+ "name": "sender",
172
+ "type": "address"
173
+ }
174
+ ],
175
+ "name": "RoleRevoked",
176
+ "type": "event"
177
+ },
178
+ {
179
+ "anonymous": false,
180
+ "inputs": [
181
+ {
182
+ "indexed": false,
183
+ "internalType": "address",
184
+ "name": "account",
185
+ "type": "address"
186
+ }
187
+ ],
188
+ "name": "Unpaused",
189
+ "type": "event"
190
+ },
191
+ {
192
+ "anonymous": false,
193
+ "inputs": [
194
+ {
195
+ "indexed": true,
196
+ "internalType": "address",
197
+ "name": "implementation",
198
+ "type": "address"
199
+ }
200
+ ],
201
+ "name": "Upgraded",
202
+ "type": "event"
203
+ },
204
+ {
205
+ "anonymous": false,
206
+ "inputs": [
207
+ {
208
+ "indexed": true,
209
+ "internalType": "address",
210
+ "name": "account",
211
+ "type": "address"
212
+ }
213
+ ],
214
+ "name": "WhitelistedAdded",
215
+ "type": "event"
216
+ },
217
+ {
218
+ "anonymous": false,
219
+ "inputs": [
220
+ {
221
+ "indexed": true,
222
+ "internalType": "address",
223
+ "name": "account",
224
+ "type": "address"
225
+ },
226
+ {
227
+ "indexed": false,
228
+ "internalType": "uint256",
229
+ "name": "timestamp",
230
+ "type": "uint256"
231
+ }
232
+ ],
233
+ "name": "WhitelistedAuthenticated",
234
+ "type": "event"
235
+ },
236
+ {
237
+ "anonymous": false,
238
+ "inputs": [
239
+ {
240
+ "indexed": true,
241
+ "internalType": "address",
242
+ "name": "account",
243
+ "type": "address"
244
+ }
245
+ ],
246
+ "name": "WhitelistedRemoved",
247
+ "type": "event"
248
+ },
249
+ {
250
+ "inputs": [],
251
+ "name": "DEFAULT_ADMIN_ROLE",
252
+ "outputs": [
253
+ {
254
+ "internalType": "bytes32",
255
+ "name": "",
256
+ "type": "bytes32"
257
+ }
258
+ ],
259
+ "stateMutability": "view",
260
+ "type": "function"
261
+ },
262
+ {
263
+ "inputs": [],
264
+ "name": "IDENTITY_ADMIN_ROLE",
265
+ "outputs": [
266
+ {
267
+ "internalType": "bytes32",
268
+ "name": "",
269
+ "type": "bytes32"
270
+ }
271
+ ],
272
+ "stateMutability": "view",
273
+ "type": "function"
274
+ },
275
+ {
276
+ "inputs": [],
277
+ "name": "PAUSER_ROLE",
278
+ "outputs": [
279
+ {
280
+ "internalType": "bytes32",
281
+ "name": "",
282
+ "type": "bytes32"
283
+ }
284
+ ],
285
+ "stateMutability": "view",
286
+ "type": "function"
287
+ },
288
+ {
289
+ "inputs": [
290
+ {
291
+ "internalType": "address",
292
+ "name": "account",
293
+ "type": "address"
294
+ }
295
+ ],
296
+ "name": "addBlacklisted",
297
+ "outputs": [],
298
+ "stateMutability": "nonpayable",
299
+ "type": "function"
300
+ },
301
+ {
302
+ "inputs": [
303
+ {
304
+ "internalType": "address",
305
+ "name": "account",
306
+ "type": "address"
307
+ }
308
+ ],
309
+ "name": "addContract",
310
+ "outputs": [],
311
+ "stateMutability": "nonpayable",
312
+ "type": "function"
313
+ },
314
+ {
315
+ "inputs": [
316
+ {
317
+ "internalType": "address",
318
+ "name": "account",
319
+ "type": "address"
320
+ }
321
+ ],
322
+ "name": "addWhitelisted",
323
+ "outputs": [],
324
+ "stateMutability": "nonpayable",
325
+ "type": "function"
326
+ },
327
+ {
328
+ "inputs": [
329
+ {
330
+ "internalType": "address",
331
+ "name": "account",
332
+ "type": "address"
333
+ },
334
+ {
335
+ "internalType": "string",
336
+ "name": "did",
337
+ "type": "string"
338
+ }
339
+ ],
340
+ "name": "addWhitelistedWithDID",
341
+ "outputs": [],
342
+ "stateMutability": "nonpayable",
343
+ "type": "function"
344
+ },
345
+ {
346
+ "inputs": [
347
+ {
348
+ "internalType": "address",
349
+ "name": "account",
350
+ "type": "address"
351
+ },
352
+ {
353
+ "internalType": "string",
354
+ "name": "did",
355
+ "type": "string"
356
+ },
357
+ {
358
+ "internalType": "uint256",
359
+ "name": "orgChain",
360
+ "type": "uint256"
361
+ },
362
+ {
363
+ "internalType": "uint256",
364
+ "name": "dateAuthenticated",
365
+ "type": "uint256"
366
+ }
367
+ ],
368
+ "name": "addWhitelistedWithDIDAndChain",
369
+ "outputs": [],
370
+ "stateMutability": "nonpayable",
371
+ "type": "function"
372
+ },
373
+ {
374
+ "inputs": [
375
+ {
376
+ "internalType": "address",
377
+ "name": "account",
378
+ "type": "address"
379
+ }
380
+ ],
381
+ "name": "addrToDID",
382
+ "outputs": [
383
+ {
384
+ "internalType": "string",
385
+ "name": "did",
386
+ "type": "string"
387
+ }
388
+ ],
389
+ "stateMutability": "view",
390
+ "type": "function"
391
+ },
392
+ {
393
+ "inputs": [
394
+ {
395
+ "internalType": "address",
396
+ "name": "account",
397
+ "type": "address"
398
+ }
399
+ ],
400
+ "name": "authenticate",
401
+ "outputs": [],
402
+ "stateMutability": "nonpayable",
403
+ "type": "function"
404
+ },
405
+ {
406
+ "inputs": [],
407
+ "name": "authenticationPeriod",
408
+ "outputs": [
409
+ {
410
+ "internalType": "uint256",
411
+ "name": "",
412
+ "type": "uint256"
413
+ }
414
+ ],
415
+ "stateMutability": "view",
416
+ "type": "function"
417
+ },
418
+ {
419
+ "inputs": [],
420
+ "name": "avatar",
421
+ "outputs": [
422
+ {
423
+ "internalType": "address",
424
+ "name": "",
425
+ "type": "address"
426
+ }
427
+ ],
428
+ "stateMutability": "view",
429
+ "type": "function"
430
+ },
431
+ {
432
+ "inputs": [
433
+ {
434
+ "internalType": "address",
435
+ "name": "_account",
436
+ "type": "address"
437
+ },
438
+ {
439
+ "internalType": "bytes",
440
+ "name": "signature",
441
+ "type": "bytes"
442
+ }
443
+ ],
444
+ "name": "connectAccount",
445
+ "outputs": [],
446
+ "stateMutability": "nonpayable",
447
+ "type": "function"
448
+ },
449
+ {
450
+ "inputs": [
451
+ {
452
+ "internalType": "address",
453
+ "name": "",
454
+ "type": "address"
455
+ }
456
+ ],
457
+ "name": "connectedAccounts",
458
+ "outputs": [
459
+ {
460
+ "internalType": "address",
461
+ "name": "",
462
+ "type": "address"
463
+ }
464
+ ],
465
+ "stateMutability": "view",
466
+ "type": "function"
467
+ },
468
+ {
469
+ "inputs": [],
470
+ "name": "dao",
471
+ "outputs": [
472
+ {
473
+ "internalType": "contract Controller",
474
+ "name": "",
475
+ "type": "address"
476
+ }
477
+ ],
478
+ "stateMutability": "view",
479
+ "type": "function"
480
+ },
481
+ {
482
+ "inputs": [
483
+ {
484
+ "internalType": "bytes32",
485
+ "name": "",
486
+ "type": "bytes32"
487
+ }
488
+ ],
489
+ "name": "didHashToAddress",
490
+ "outputs": [
491
+ {
492
+ "internalType": "address",
493
+ "name": "",
494
+ "type": "address"
495
+ }
496
+ ],
497
+ "stateMutability": "view",
498
+ "type": "function"
499
+ },
500
+ {
501
+ "inputs": [
502
+ {
503
+ "internalType": "bytes32",
504
+ "name": "role",
505
+ "type": "bytes32"
506
+ }
507
+ ],
508
+ "name": "getRoleAdmin",
509
+ "outputs": [
510
+ {
511
+ "internalType": "bytes32",
512
+ "name": "",
513
+ "type": "bytes32"
514
+ }
515
+ ],
516
+ "stateMutability": "view",
517
+ "type": "function"
518
+ },
519
+ {
520
+ "inputs": [
521
+ {
522
+ "internalType": "address",
523
+ "name": "_account",
524
+ "type": "address"
525
+ }
526
+ ],
527
+ "name": "getWhitelistedRoot",
528
+ "outputs": [
529
+ {
530
+ "internalType": "address",
531
+ "name": "whitelisted",
532
+ "type": "address"
533
+ }
534
+ ],
535
+ "stateMutability": "view",
536
+ "type": "function"
537
+ },
538
+ {
539
+ "inputs": [
540
+ {
541
+ "internalType": "bytes32",
542
+ "name": "role",
543
+ "type": "bytes32"
544
+ },
545
+ {
546
+ "internalType": "address",
547
+ "name": "account",
548
+ "type": "address"
549
+ }
550
+ ],
551
+ "name": "grantRole",
552
+ "outputs": [],
553
+ "stateMutability": "nonpayable",
554
+ "type": "function"
555
+ },
556
+ {
557
+ "inputs": [
558
+ {
559
+ "internalType": "bytes32",
560
+ "name": "role",
561
+ "type": "bytes32"
562
+ },
563
+ {
564
+ "internalType": "address",
565
+ "name": "account",
566
+ "type": "address"
567
+ }
568
+ ],
569
+ "name": "hasRole",
570
+ "outputs": [
571
+ {
572
+ "internalType": "bool",
573
+ "name": "",
574
+ "type": "bool"
575
+ }
576
+ ],
577
+ "stateMutability": "view",
578
+ "type": "function"
579
+ },
580
+ {
581
+ "inputs": [
582
+ {
583
+ "internalType": "address",
584
+ "name": "",
585
+ "type": "address"
586
+ }
587
+ ],
588
+ "name": "identities",
589
+ "outputs": [
590
+ {
591
+ "internalType": "uint256",
592
+ "name": "dateAuthenticated",
593
+ "type": "uint256"
594
+ },
595
+ {
596
+ "internalType": "uint256",
597
+ "name": "dateAdded",
598
+ "type": "uint256"
599
+ },
600
+ {
601
+ "internalType": "string",
602
+ "name": "did",
603
+ "type": "string"
604
+ },
605
+ {
606
+ "internalType": "uint256",
607
+ "name": "whitelistedOnChainId",
608
+ "type": "uint256"
609
+ },
610
+ {
611
+ "internalType": "uint8",
612
+ "name": "status",
613
+ "type": "uint8"
614
+ }
615
+ ],
616
+ "stateMutability": "view",
617
+ "type": "function"
618
+ },
619
+ {
620
+ "inputs": [
621
+ {
622
+ "internalType": "address",
623
+ "name": "_ns",
624
+ "type": "address"
625
+ }
626
+ ],
627
+ "name": "initDAO",
628
+ "outputs": [],
629
+ "stateMutability": "nonpayable",
630
+ "type": "function"
631
+ },
632
+ {
633
+ "inputs": [
634
+ {
635
+ "internalType": "address",
636
+ "name": "_owner",
637
+ "type": "address"
638
+ },
639
+ {
640
+ "internalType": "contract IIdentity",
641
+ "name": "_oldIdentity",
642
+ "type": "address"
643
+ }
644
+ ],
645
+ "name": "initialize",
646
+ "outputs": [],
647
+ "stateMutability": "nonpayable",
648
+ "type": "function"
649
+ },
650
+ {
651
+ "inputs": [
652
+ {
653
+ "internalType": "address",
654
+ "name": "account",
655
+ "type": "address"
656
+ }
657
+ ],
658
+ "name": "isBlacklisted",
659
+ "outputs": [
660
+ {
661
+ "internalType": "bool",
662
+ "name": "",
663
+ "type": "bool"
664
+ }
665
+ ],
666
+ "stateMutability": "view",
667
+ "type": "function"
668
+ },
669
+ {
670
+ "inputs": [
671
+ {
672
+ "internalType": "address",
673
+ "name": "account",
674
+ "type": "address"
675
+ }
676
+ ],
677
+ "name": "isDAOContract",
678
+ "outputs": [
679
+ {
680
+ "internalType": "bool",
681
+ "name": "",
682
+ "type": "bool"
683
+ }
684
+ ],
685
+ "stateMutability": "view",
686
+ "type": "function"
687
+ },
688
+ {
689
+ "inputs": [],
690
+ "name": "isRegistered",
691
+ "outputs": [
692
+ {
693
+ "internalType": "bool",
694
+ "name": "",
695
+ "type": "bool"
696
+ }
697
+ ],
698
+ "stateMutability": "pure",
699
+ "type": "function"
700
+ },
701
+ {
702
+ "inputs": [
703
+ {
704
+ "internalType": "address",
705
+ "name": "account",
706
+ "type": "address"
707
+ }
708
+ ],
709
+ "name": "isWhitelisted",
710
+ "outputs": [
711
+ {
712
+ "internalType": "bool",
713
+ "name": "",
714
+ "type": "bool"
715
+ }
716
+ ],
717
+ "stateMutability": "view",
718
+ "type": "function"
719
+ },
720
+ {
721
+ "inputs": [
722
+ {
723
+ "internalType": "address",
724
+ "name": "account",
725
+ "type": "address"
726
+ }
727
+ ],
728
+ "name": "lastAuthenticated",
729
+ "outputs": [
730
+ {
731
+ "internalType": "uint256",
732
+ "name": "",
733
+ "type": "uint256"
734
+ }
735
+ ],
736
+ "stateMutability": "view",
737
+ "type": "function"
738
+ },
739
+ {
740
+ "inputs": [],
741
+ "name": "nameService",
742
+ "outputs": [
743
+ {
744
+ "internalType": "contract INameService",
745
+ "name": "",
746
+ "type": "address"
747
+ }
748
+ ],
749
+ "stateMutability": "view",
750
+ "type": "function"
751
+ },
752
+ {
753
+ "inputs": [],
754
+ "name": "nativeToken",
755
+ "outputs": [
756
+ {
757
+ "internalType": "contract IGoodDollar",
758
+ "name": "",
759
+ "type": "address"
760
+ }
761
+ ],
762
+ "stateMutability": "view",
763
+ "type": "function"
764
+ },
765
+ {
766
+ "inputs": [],
767
+ "name": "oldIdentity",
768
+ "outputs": [
769
+ {
770
+ "internalType": "contract IIdentity",
771
+ "name": "",
772
+ "type": "address"
773
+ }
774
+ ],
775
+ "stateMutability": "view",
776
+ "type": "function"
777
+ },
778
+ {
779
+ "inputs": [
780
+ {
781
+ "internalType": "bool",
782
+ "name": "_toPause",
783
+ "type": "bool"
784
+ }
785
+ ],
786
+ "name": "pause",
787
+ "outputs": [],
788
+ "stateMutability": "nonpayable",
789
+ "type": "function"
790
+ },
791
+ {
792
+ "inputs": [],
793
+ "name": "paused",
794
+ "outputs": [
795
+ {
796
+ "internalType": "bool",
797
+ "name": "",
798
+ "type": "bool"
799
+ }
800
+ ],
801
+ "stateMutability": "view",
802
+ "type": "function"
803
+ },
804
+ {
805
+ "inputs": [
806
+ {
807
+ "internalType": "address",
808
+ "name": "account",
809
+ "type": "address"
810
+ }
811
+ ],
812
+ "name": "removeBlacklisted",
813
+ "outputs": [],
814
+ "stateMutability": "nonpayable",
815
+ "type": "function"
816
+ },
817
+ {
818
+ "inputs": [
819
+ {
820
+ "internalType": "address",
821
+ "name": "account",
822
+ "type": "address"
823
+ }
824
+ ],
825
+ "name": "removeContract",
826
+ "outputs": [],
827
+ "stateMutability": "nonpayable",
828
+ "type": "function"
829
+ },
830
+ {
831
+ "inputs": [
832
+ {
833
+ "internalType": "address",
834
+ "name": "account",
835
+ "type": "address"
836
+ }
837
+ ],
838
+ "name": "removeWhitelisted",
839
+ "outputs": [],
840
+ "stateMutability": "nonpayable",
841
+ "type": "function"
842
+ },
843
+ {
844
+ "inputs": [
845
+ {
846
+ "internalType": "bytes32",
847
+ "name": "role",
848
+ "type": "bytes32"
849
+ },
850
+ {
851
+ "internalType": "address",
852
+ "name": "account",
853
+ "type": "address"
854
+ }
855
+ ],
856
+ "name": "renounceRole",
857
+ "outputs": [],
858
+ "stateMutability": "nonpayable",
859
+ "type": "function"
860
+ },
861
+ {
862
+ "inputs": [],
863
+ "name": "renounceWhitelisted",
864
+ "outputs": [],
865
+ "stateMutability": "nonpayable",
866
+ "type": "function"
867
+ },
868
+ {
869
+ "inputs": [
870
+ {
871
+ "internalType": "bytes32",
872
+ "name": "role",
873
+ "type": "bytes32"
874
+ },
875
+ {
876
+ "internalType": "address",
877
+ "name": "account",
878
+ "type": "address"
879
+ }
880
+ ],
881
+ "name": "revokeRole",
882
+ "outputs": [],
883
+ "stateMutability": "nonpayable",
884
+ "type": "function"
885
+ },
886
+ {
887
+ "inputs": [
888
+ {
889
+ "internalType": "uint256",
890
+ "name": "period",
891
+ "type": "uint256"
892
+ }
893
+ ],
894
+ "name": "setAuthenticationPeriod",
895
+ "outputs": [],
896
+ "stateMutability": "nonpayable",
897
+ "type": "function"
898
+ },
899
+ {
900
+ "inputs": [
901
+ {
902
+ "internalType": "string",
903
+ "name": "did",
904
+ "type": "string"
905
+ }
906
+ ],
907
+ "name": "setDID",
908
+ "outputs": [],
909
+ "stateMutability": "nonpayable",
910
+ "type": "function"
911
+ },
912
+ {
913
+ "inputs": [
914
+ {
915
+ "internalType": "bytes4",
916
+ "name": "interfaceId",
917
+ "type": "bytes4"
918
+ }
919
+ ],
920
+ "name": "supportsInterface",
921
+ "outputs": [
922
+ {
923
+ "internalType": "bool",
924
+ "name": "",
925
+ "type": "bool"
926
+ }
927
+ ],
928
+ "stateMutability": "view",
929
+ "type": "function"
930
+ },
931
+ {
932
+ "inputs": [],
933
+ "name": "updateAvatar",
934
+ "outputs": [],
935
+ "stateMutability": "nonpayable",
936
+ "type": "function"
937
+ },
938
+ {
939
+ "inputs": [
940
+ {
941
+ "internalType": "address",
942
+ "name": "newImplementation",
943
+ "type": "address"
944
+ }
945
+ ],
946
+ "name": "upgradeTo",
947
+ "outputs": [],
948
+ "stateMutability": "nonpayable",
949
+ "type": "function"
950
+ },
951
+ {
952
+ "inputs": [
953
+ {
954
+ "internalType": "address",
955
+ "name": "newImplementation",
956
+ "type": "address"
957
+ },
958
+ {
959
+ "internalType": "bytes",
960
+ "name": "data",
961
+ "type": "bytes"
962
+ }
963
+ ],
964
+ "name": "upgradeToAndCall",
965
+ "outputs": [],
966
+ "stateMutability": "payable",
967
+ "type": "function"
968
+ },
969
+ {
970
+ "inputs": [],
971
+ "name": "whitelistedContracts",
972
+ "outputs": [
973
+ {
974
+ "internalType": "uint256",
975
+ "name": "",
976
+ "type": "uint256"
977
+ }
978
+ ],
979
+ "stateMutability": "view",
980
+ "type": "function"
981
+ },
982
+ {
983
+ "inputs": [],
984
+ "name": "whitelistedCount",
985
+ "outputs": [
986
+ {
987
+ "internalType": "uint256",
988
+ "name": "",
989
+ "type": "uint256"
990
+ }
991
+ ],
992
+ "stateMutability": "view",
993
+ "type": "function"
994
+ }
995
+ ],
996
+ "bytecode": "0x60a06040523060601b60805234801561001757600080fd5b5060805160601c61360961004b60003960008181610f0b01528181610f4b01528181611230015261127001526136096000f3fe6080604052600436106102185760003560e01c806301ffc9a71461021d57806302329a291461025257806308e0d29d1461027457806310154bad14610294578063188efc16146102b45780631aaff63c146102d45780631b027099146103045780631b3c90a8146103245780632236684414610339578063248a9ca31461034d578063274a827b1461036d578063291d95491461038d5780632b14dda8146103ad5780632d0e9b46146103cd5780632f2ff15d146103fa57806331b376e21461041a57806336568abe146104315780633659cfe6146104515780633af32abf146104715780633e6326fc146104915780634125f0f2146104b15780634162169f146104d2578063485cc955146104f25780634f1ef2861461051257806354f9f7a3146105255780635aef7de6146105525780635c975abb146105725780635f539d691461058b57806361320040146105ab57806367c75937146105e257806391d1485414610619578063a217fddf14610639578063b2a1de221461064e578063b30f7e7f14610665578063c375c2ef1461067c578063c6a276c21461069c578063c73cc4ae146106bc578063d547741f146106dc578063d6cd9473146106fc578063e1758bd814610711578063e1e360ba14610726578063e63ab1e91461075d578063e737031a1461077f578063f653b81e1461079f578063f85ebeb1146107d0578063fe575a87146107f0578063fff930d414610810575b600080fd5b34801561022957600080fd5b5061023d610238366004612cda565b610830565b60405190151581526020015b60405180910390f35b34801561025e57600080fd5b5061027261026d366004612d05565b610867565b005b34801561028057600080fd5b5061027261028f366004612d37565b61089a565b3480156102a057600080fd5b506102726102af366004612d37565b610975565b3480156102c057600080fd5b506102726102cf366004612d37565b6109bc565b3480156102e057600080fd5b506102f660008051602061352d83398151915281565b604051908152602001610249565b34801561031057600080fd5b5061027261031f366004612e1f565b610a4a565b34801561033057600080fd5b50610272610a97565b34801561034557600080fd5b50600161023d565b34801561035957600080fd5b506102f6610368366004612e6e565b610bdc565b34801561037957600080fd5b50610272610388366004612e87565b610bf1565b34801561039957600080fd5b506102726103a8366004612d37565b610cf7565b3480156103b957600080fd5b506102726103c8366004612d37565b610d3d565b3480156103d957600080fd5b506103ed6103e8366004612d37565b610e03565b6040516102499190612ef8565b34801561040657600080fd5b50610272610415366004612f0c565b610e69565b34801561042657600080fd5b506102f66101645481565b34801561043d57600080fd5b5061027261044c366004612f0c565b610e86565b34801561045d57600080fd5b5061027261046c366004612d37565b610f00565b34801561047d57600080fd5b5061023d61048c366004612d37565b610fc9565b34801561049d57600080fd5b506067546103ed906001600160a01b031681565b3480156104bd57600080fd5b50610168546103ed906001600160a01b031681565b3480156104de57600080fd5b506065546103ed906001600160a01b031681565b3480156104fe57600080fd5b5061027261050d366004612f3c565b6110e8565b610272610520366004612f6a565b611225565b34801561053157600080fd5b50610545610540366004612d37565b6112db565b604051610249919061301b565b34801561055e57600080fd5b506066546103ed906001600160a01b031681565b34801561057e57600080fd5b506101305460ff1661023d565b34801561059757600080fd5b506102726105a6366004612d37565b611427565b3480156105b757600080fd5b506103ed6105c6366004612d37565b610167602052600090815260409020546001600160a01b031681565b3480156105ee57600080fd5b506103ed6105fd366004612e6e565b610166602052600090815260409020546001600160a01b031681565b34801561062557600080fd5b5061023d610634366004612f0c565b61150d565b34801561064557600080fd5b506102f6600081565b34801561065a57600080fd5b506102f66101625481565b34801561067157600080fd5b506102f66101635481565b34801561068857600080fd5b50610272610697366004612d37565b611538565b3480156106a857600080fd5b506102726106b7366004612d37565b6115b6565b3480156106c857600080fd5b5061023d6106d7366004612d37565b6116b1565b3480156106e857600080fd5b506102726106f7366004612f0c565b611778565b34801561070857600080fd5b50610272611795565b34801561071d57600080fd5b506103ed6117c4565b34801561073257600080fd5b506102f6610741366004612d37565b6001600160a01b03166000908152610165602052604090205490565b34801561076957600080fd5b506102f660008051602061356d83398151915281565b34801561078b57600080fd5b5061027261079a36600461302e565b611860565b3480156107ab57600080fd5b506107bf6107ba366004612d37565b6118d2565b60405161024995949392919061308d565b3480156107dc57600080fd5b506102726107eb366004612f6a565b61198e565b3480156107fc57600080fd5b5061023d61080b366004612d37565b611b15565b34801561081c57600080fd5b5061027261082b366004612e6e565b611b88565b60006001600160e01b03198216637965db0b60e01b148061086157506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008051602061356d8339815191526108808133611bba565b81156108925761088e611c1e565b5050565b61088e611c8f565b60008051602061352d8339815191526108b38133611bba565b6101305460ff16156108e05760405162461bcd60e51b81526004016108d7906130c7565b60405180910390fd5b6001600160a01b0382166000908152610165602052604090206004015460ff1660011461091f5760405162461bcd60e51b81526004016108d7906130f1565b6001600160a01b03821660008181526101656020908152604091829020429081905591519182527fb2a82fce6d8c7a633efe9579f77b4edb96bfdf171a49bfc2ce666dc543a1f500910160405180910390a25050565b60008051602061352d83398151915261098e8133611bba565b6101305460ff16156109b25760405162461bcd60e51b81526004016108d7906130c7565b61088e8246611d0b565b60008051602061352d8339815191526109d58133611bba565b6101305460ff16156109f95760405162461bcd60e51b81526004016108d7906130c7565b6001600160a01b03821660008181526101656020526040808220600401805460ff191660ff179055517f44d5fe68b00f68950fb9c1ff0a61ef7f747b1a36359a7e3a7f3324db4b8789679190a25050565b60008051602061352d833981519152610a638133611bba565b6101305460ff1615610a875760405162461bcd60e51b81526004016108d7906130c7565b610a92838346611dd8565b505050565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610af557600080fd5b505afa158015610b09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2d919061311a565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de691600480820192602092909190829003018186803b158015610b8257600080fd5b505afa158015610b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bba919061311a565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b600090815260fe602052604090206001015490565b610bfa33610fc9565b610c165760405162461bcd60e51b81526004016108d7906130f1565b60008282604051610c28929190613137565b6040805191829003909120600081815261016660205291909120549091506001600160a01b031615610c6c5760405162461bcd60e51b81526004016108d790613147565b33600090815261016560205260408082209051610c8c91600201906131b2565b60408051918290039091206000818152610166602090815283822080546001600160a01b0319169055338252610165905291909120909150610cd2906002018585612b81565b505060009081526101666020526040902080546001600160a01b031916331790555050565b60008051602061352d833981519152610d108133611bba565b6101305460ff1615610d345760405162461bcd60e51b81526004016108d7906130c7565b61088e82611e83565b6000610d498133611bba565b6067546001600160a01b031615610d985760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064016108d7565b610da1826120ea565b606654610db9906000906001600160a01b031661210d565b606654610dde9060008051602061356d833981519152906001600160a01b031661210d565b60665461088e9060008051602061352d833981519152906001600160a01b031661210d565b6000610e0e82610fc9565b15610e17575090565b6001600160a01b0380831660009081526101676020526040902054610e3c9116610fc9565b15610e6157506001600160a01b03908116600090815261016760205260409020541690565b506000919050565b610e7282610bdc565b610e7c8133611bba565b610a928383612113565b6001600160a01b0381163314610ef65760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016108d7565b61088e8282612199565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610f495760405162461bcd60e51b81526004016108d79061324e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f7b612200565b6001600160a01b031614610fa15760405162461bcd60e51b81526004016108d790613288565b610faa8161221c565b60408051600080825260208201909252610fc691839190612224565b50565b6001600160a01b0381166000908152610165602052604081205481906201518090610ff490426132d8565b610ffe91906132ef565b905061016454811115801561103257506001600160a01b0383166000908152610165602052604090206004015460ff166001145b156110405750600192915050565b610168546001600160a01b0316156110df5761016854604051633af32abf60e01b81526001600160a01b0390911690633af32abf90611083908690600401612ef8565b60206040518083038186803b15801561109b57600080fd5b505afa9250505080156110cb575060408051601f3d908101601f191682019092526110c891810190613311565b60015b6110d85750600092915050565b9392505050565b50600092915050565b600054610100900460ff1680611101575060005460ff16155b61111d5760405162461bcd60e51b81526004016108d79061332e565b600054610100900460ff1615801561113f576000805461ffff19166101011790555b611147612364565b61114f6123cf565b6104476101645560665461116e906000906001600160a01b031661210d565b61117960008461210d565b60665461119e9060008051602061356d833981519152906001600160a01b031661210d565b6111b660008051602061356d8339815191528461210d565b6111ce60008051602061352d8339815191528461210d565b6066546111f39060008051602061352d833981519152906001600160a01b031661210d565b61016880546001600160a01b0319166001600160a01b0384161790558015610a92576000805461ff0019169055505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561126e5760405162461bcd60e51b81526004016108d79061324e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166112a0612200565b6001600160a01b0316146112c65760405162461bcd60e51b81526004016108d790613288565b6112cf8261221c565b61088e82826001612224565b336000908152610165602052604090206002018054606091906112fd90613177565b80601f016020809104026020016040519081016040528092919081815260200182805461132990613177565b80156113765780601f1061134b57610100808354040283529160200191611376565b820191906000526020600020905b81548152906001019060200180831161135957829003601f168201915b5050505050905060008151111561138c57919050565b610168546040516354f9f7a360e01b81526001600160a01b03909116906354f9f7a3906113bd908590600401612ef8565b60006040518083038186803b1580156113d557600080fd5b505afa92505050801561140a57506040513d6000823e601f3d908101601f19168201604052611407919081019061337c565b60015b61086157505060408051602081019091526000815290565b919050565b60008051602061352d8339815191526114408133611bba565b6101305460ff16156114645760405162461bcd60e51b81526004016108d7906130c7565b813b6114b25760405162461bcd60e51b815260206004820152601f60248201527f476976656e2061646472657373206973206e6f74206120636f6e74726163740060448201526064016108d7565b6114bc8246611d0b565b6001600160a01b03821660008181526101656020526040808220600401805460ff19166002179055517f89c66952b48f3e96bf1d8ba1b63189520fd988a6979b8b740bd5c5d8dc53e2059190a25050565b600091825260fe602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008051602061352d8339815191526115518133611bba565b6101305460ff16156115755760405162461bcd60e51b81526004016108d7906130c7565b61157e82611e83565b6040516001600160a01b038316907f8d30d41865a0b811b9545d879520d2dde9f4cc49e4241f486ad9752bc904b56590600090a25050565b60008051602061352d8339815191526115cf8133611bba565b6101305460ff16156115f35760405162461bcd60e51b81526004016108d7906130c7565b610168546001600160a01b03161561166357610168546040516363513b6160e11b81526001600160a01b039091169063c6a276c290611636908590600401612ef8565b600060405180830381600087803b15801561165057600080fd5b505af1925050508015611661575060015b505b6001600160a01b03821660008181526101656020526040808220600401805460ff19169055517f1747ca720b1a174a464b6513ace29b1d3190b5f632b9f34147017c81425bfde89190a25050565b6001600160a01b0381166000908152610165602052604081206004015460ff16600214156116e157506001919050565b610168546001600160a01b031615610e61576101685460405163639e625760e11b81526001600160a01b039091169063c73cc4ae90611724908590600401612ef8565b60206040518083038186803b15801561173c57600080fd5b505afa92505050801561176c575060408051601f3d908101601f1916820190925261176991810190613311565b60015b61086157506000919050565b61178182610bdc565b61178b8133611bba565b610a928383612199565b6101305460ff16156117b95760405162461bcd60e51b81526004016108d7906130c7565b6117c233611e83565b565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac19060640160206040518083038186803b15801561182357600080fd5b505afa158015611837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185b919061311a565b905090565b60008051602061352d8339815191526118798133611bba565b6101305460ff161561189d5760405162461bcd60e51b81526004016108d7906130c7565b6118a8858585611dd8565b81156118cb576001600160a01b0385166000908152610165602052604090208290555b5050505050565b61016560205260009081526040902080546001820154600283018054929391926118fb90613177565b80601f016020809104026020016040519081016040528092919081815260200182805461192790613177565b80156119745780601f1061194957610100808354040283529160200191611974565b820191906000526020600020905b81548152906001019060200180831161195757829003601f168201915b50505050600383015460049093015491929160ff16905085565b61199733610fc9565b6119b35760405162461bcd60e51b81526004016108d7906130f1565b6119bc82610fc9565b1580156119cf57506119cd82611b15565b155b611a0d5760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a59081858d8dbdd5b9d608a1b60448201526064016108d7565b6001600160a01b03828116600090815261016760205260409020541615611a6a5760405162461bcd60e51b8152602060048201526011602482015270185b1c9958591e4818dbdb9b9958dd1959607a1b60448201526064016108d7565b604080513360208201526001600160a01b03841691810191909152611aaa9083906060016040516020818303038152906040528051906020012083612445565b611aea5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b60448201526064016108d7565b506001600160a01b031660009081526101676020526040902080546001600160a01b03191633179055565b6001600160a01b0381166000908152610165602052604081206004015460ff9081161415611b4557506001919050565b610168546001600160a01b031615611422576101685460405163fe575a8760e01b81526001600160a01b039091169063fe575a8790611724908590600401612ef8565b6101305460ff1615611bac5760405162461bcd60e51b81526004016108d7906130c7565b611bb4612591565b61016455565b611bc4828261150d565b61088e57611bdc816001600160a01b03166014612663565b611be7836020612663565b604051602001611bf89291906133e9565b60408051601f198184030181529082905262461bcd60e51b82526108d79160040161301b565b6101305460ff1615611c425760405162461bcd60e51b81526004016108d7906130c7565b610130805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611c783390565b604051611c859190612ef8565b60405180910390a1565b6101305460ff16611cd95760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016108d7565b610130805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611c78565b60016101626000828254611d1f9190613458565b90915550506001600160a01b03821660009081526101656020908152604080832060048101805460ff19166001908117909155429082018190558155600301849055610167909152902080546001600160a01b0319169055611d81823b151590565b15611da05760016101636000828254611d9a9190613458565b90915550505b6040516001600160a01b038316907fee1504a83b6d4a361f4c1dc78ab59bfa30d6a3b6612c403e86bb01ef2984295f90600090a25050565b815160208084019190912060008181526101669092526040909120546001600160a01b031615611e1a5760405162461bcd60e51b81526004016108d790613147565b6001600160a01b0384166000908152610165602090815260409091208451611e4a92600290920191860190612c05565b5060008181526101666020526040902080546001600160a01b0319166001600160a01b038616179055611e7d8483611d0b565b50505050565b60016101626000828254611e9791906132d8565b9091555050803b15611f2c5760016101636000828254611eb791906132d8565b9091555050610168546001600160a01b031615611f2c576101685460405163c375c2ef60e01b81526001600160a01b039091169063c375c2ef90611eff908490600401612ef8565b600060405180830381600087803b158015611f1957600080fd5b505af1925050508015611f2a575060015b505b610168546001600160a01b031615611f9c576101685460405163291d954960e01b81526001600160a01b039091169063291d954990611f6f908490600401612ef8565b600060405180830381600087803b158015611f8957600080fd5b505af1925050508015611f9a575060015b505b6001600160a01b0381166000908152610165602052604081206002018054611fc390613177565b80601f0160208091040260200160405190810160405280929190818152602001828054611fef90613177565b801561203c5780601f106120115761010080835404028352916020019161203c565b820191906000526020600020905b81548152906001019060200180831161201f57829003601f168201915b505083516020808601919091206001600160a01b03881660009081526101659092526040822082815560018101839055959650949350915061208390506002830182612c79565b506000600382018190556004909101805460ff19169055818152610166602052604080822080546001600160a01b0319169055516001600160a01b038516917f270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b691a2505050565b606780546001600160a01b0319166001600160a01b038316179055610fc6610a97565b61088e82825b61211d828261150d565b61088e57600082815260fe602090815260408083206001600160a01b03851684529091529020805460ff191660011790556121553390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6121a3828261150d565b1561088e57600082815260fe602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008051602061358d833981519152546001600160a01b031690565b610fc6612591565b600061222e612200565b9050612239846127fe565b6000835111806122465750815b15612257576122558484612891565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff166118cb57805460ff191660011781556040516122d29086906122a3908590602401612ef8565b60408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b179052612891565b50805460ff191681556122e3612200565b6001600160a01b0316826001600160a01b03161461235b5760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b60648201526084016108d7565b6118cb8561297c565b600054610100900460ff168061237d575060005460ff16155b6123995760405162461bcd60e51b81526004016108d79061332e565b600054610100900460ff161580156123bb576000805461ffff19166101011790555b8015610fc6576000805461ff001916905550565b600054610100900460ff16806123e8575060005460ff16155b6124045760405162461bcd60e51b81526004016108d79061332e565b600054610100900460ff16158015612426576000805461ffff19166101011790555b610130805460ff191690558015610fc6576000805461ff001916905550565b600080600061245485856129bc565b9092509050600081600481111561246d5761246d613470565b14801561248b5750856001600160a01b0316826001600160a01b0316145b1561249b576001925050506110d8565b600080876001600160a01b0316631626ba7e60e01b88886040516024016124c3929190613486565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161250191906134a7565b600060405180830381855afa9150503d806000811461253c576040519150601f19603f3d011682016040523d82523d6000602084013e612541565b606091505b5091509150818015612554575080516020145b801561258557508051630b135d3f60e11b9061257990830160209081019084016134c3565b6001600160e01b031916145b98975050505050505050565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de6916004808301926020929190829003018186803b1580156125d557600080fd5b505afa1580156125e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061260d919061311a565b6001600160a01b0316146117c25760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f6460448201526064016108d7565b606060006126728360026134e0565b61267d906002613458565b6001600160401b0381111561269457612694612d54565b6040519080825280601f01601f1916602001820160405280156126be576020820181803683370190505b509050600360fc1b816000815181106126d9576126d96134ff565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612708576127086134ff565b60200101906001600160f81b031916908160001a905350600061272c8460026134e0565b612737906001613458565b90505b60018111156127af576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061276b5761276b6134ff565b1a60f81b828281518110612781576127816134ff565b60200101906001600160f81b031916908160001a90535060049490941c936127a881613515565b905061273a565b5083156110d85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108d7565b803b6128625760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016108d7565b60008051602061358d83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6128f05760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016108d7565b600080846001600160a01b03168460405161290b91906134a7565b600060405180830381855af49150503d8060008114612946576040519150601f19603f3d011682016040523d82523d6000602084013e61294b565b606091505b509150915061297382826040518060600160405280602781526020016135ad60279139612a2c565b95945050505050565b612985816127fe565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6000808251604114156129f35760208301516040840151606085015160001a6129e787828585612a65565b94509450505050612a25565b825160401415612a1d5760208301516040840151612a12868383612b48565b935093505050612a25565b506000905060025b9250929050565b60608315612a3b5750816110d8565b825115612a4b5782518084602001fd5b8160405162461bcd60e51b81526004016108d7919061301b565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115612a925750600090506003612b3f565b8460ff16601b14158015612aaa57508460ff16601c14155b15612abb5750600090506004612b3f565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612b0f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612b3857600060019250925050612b3f565b9150600090505b94509492505050565b6000806001600160ff1b03831681612b6560ff86901c601b613458565b9050612b7387828885612a65565b935093505050935093915050565b828054612b8d90613177565b90600052602060002090601f016020900481019282612baf5760008555612bf5565b82601f10612bc85782800160ff19823516178555612bf5565b82800160010185558215612bf5579182015b82811115612bf5578235825591602001919060010190612bda565b50612c01929150612caf565b5090565b828054612c1190613177565b90600052602060002090601f016020900481019282612c335760008555612bf5565b82601f10612c4c57805160ff1916838001178555612bf5565b82800160010185558215612bf5579182015b82811115612bf5578251825591602001919060010190612c5e565b508054612c8590613177565b6000825580601f10612c95575050565b601f016020900490600052602060002090810190610fc691905b5b80821115612c015760008155600101612cb0565b6001600160e01b031981168114610fc657600080fd5b600060208284031215612cec57600080fd5b81356110d881612cc4565b8015158114610fc657600080fd5b600060208284031215612d1757600080fd5b81356110d881612cf7565b6001600160a01b0381168114610fc657600080fd5b600060208284031215612d4957600080fd5b81356110d881612d22565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612d9257612d92612d54565b604052919050565b60006001600160401b03821115612db357612db3612d54565b50601f01601f191660200190565b6000612dd4612dcf84612d9a565b612d6a565b9050828152838383011115612de857600080fd5b828260208301376000602084830101529392505050565b600082601f830112612e1057600080fd5b6110d883833560208501612dc1565b60008060408385031215612e3257600080fd5b8235612e3d81612d22565b915060208301356001600160401b03811115612e5857600080fd5b612e6485828601612dff565b9150509250929050565b600060208284031215612e8057600080fd5b5035919050565b60008060208385031215612e9a57600080fd5b82356001600160401b0380821115612eb157600080fd5b818501915085601f830112612ec557600080fd5b813581811115612ed457600080fd5b866020828501011115612ee657600080fd5b60209290920196919550909350505050565b6001600160a01b0391909116815260200190565b60008060408385031215612f1f57600080fd5b823591506020830135612f3181612d22565b809150509250929050565b60008060408385031215612f4f57600080fd5b8235612f5a81612d22565b91506020830135612f3181612d22565b60008060408385031215612f7d57600080fd5b8235612f8881612d22565b915060208301356001600160401b03811115612fa357600080fd5b8301601f81018513612fb457600080fd5b612e6485823560208401612dc1565b60005b83811015612fde578181015183820152602001612fc6565b83811115611e7d5750506000910152565b60008151808452613007816020860160208601612fc3565b601f01601f19169290920160200192915050565b6020815260006110d86020830184612fef565b6000806000806080858703121561304457600080fd5b843561304f81612d22565b935060208501356001600160401b0381111561306a57600080fd5b61307687828801612dff565b949794965050505060408301359260600135919050565b85815284602082015260a0604082015260006130ac60a0830186612fef565b905083606083015260ff831660808301529695505050505050565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252600f908201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b604082015260600190565b60006020828403121561312c57600080fd5b81516110d881612d22565b8183823760009101908152919050565b60208082526016908201527511125108185b1c9958591e481c9959da5cdd195c995960521b604082015260600190565b600181811c9082168061318b57607f821691505b602082108114156131ac57634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c9150808316806131ce57607f831692505b60208084108214156131ee57634e487b7160e01b86526022600452602486fd5b818015613202576001811461321357613240565b60ff19861689528489019650613240565b60008a81526020902060005b868110156132385781548b82015290850190830161321f565b505084890196505b509498975050505050505050565b6020808252602c9082015260008051602061354d83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061354d83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6000828210156132ea576132ea6132c2565b500390565b60008261330c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561332357600080fd5b81516110d881612cf7565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60006020828403121561338e57600080fd5b81516001600160401b038111156133a457600080fd5b8201601f810184136133b557600080fd5b80516133c3612dcf82612d9a565b8181528560208385010111156133d857600080fd5b612973826020830160208601612fc3565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835161341b816017850160208801612fc3565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161344c816028840160208801612fc3565b01602801949350505050565b6000821982111561346b5761346b6132c2565b500190565b634e487b7160e01b600052602160045260246000fd5b82815260406020820152600061349f6040830184612fef565b949350505050565b600082516134b9818460208701612fc3565b9190910192915050565b6000602082840312156134d557600080fd5b81516110d881612cc4565b60008160001904831182151516156134fa576134fa6132c2565b500290565b634e487b7160e01b600052603260045260246000fd5b600081613524576135246132c2565b50600019019056fe091941537c453917ef5b0c67f46f29060aca926ebd752fe441d5625e85c3a57646756e6374696f6e206d7573742062652063616c6c6564207468726f756768200b0f1f48172a2124d5545a38711e7e9d2e7a6c0b46b85cf1c1788e7a11ba5bf2360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200f787e88dd0f982ce5e85d939bde07610321eaa06dd503dde7713dc0bce909d464736f6c63430008080033",
997
+ "deployedBytecode": "0x6080604052600436106102185760003560e01c806301ffc9a71461021d57806302329a291461025257806308e0d29d1461027457806310154bad14610294578063188efc16146102b45780631aaff63c146102d45780631b027099146103045780631b3c90a8146103245780632236684414610339578063248a9ca31461034d578063274a827b1461036d578063291d95491461038d5780632b14dda8146103ad5780632d0e9b46146103cd5780632f2ff15d146103fa57806331b376e21461041a57806336568abe146104315780633659cfe6146104515780633af32abf146104715780633e6326fc146104915780634125f0f2146104b15780634162169f146104d2578063485cc955146104f25780634f1ef2861461051257806354f9f7a3146105255780635aef7de6146105525780635c975abb146105725780635f539d691461058b57806361320040146105ab57806367c75937146105e257806391d1485414610619578063a217fddf14610639578063b2a1de221461064e578063b30f7e7f14610665578063c375c2ef1461067c578063c6a276c21461069c578063c73cc4ae146106bc578063d547741f146106dc578063d6cd9473146106fc578063e1758bd814610711578063e1e360ba14610726578063e63ab1e91461075d578063e737031a1461077f578063f653b81e1461079f578063f85ebeb1146107d0578063fe575a87146107f0578063fff930d414610810575b600080fd5b34801561022957600080fd5b5061023d610238366004612cda565b610830565b60405190151581526020015b60405180910390f35b34801561025e57600080fd5b5061027261026d366004612d05565b610867565b005b34801561028057600080fd5b5061027261028f366004612d37565b61089a565b3480156102a057600080fd5b506102726102af366004612d37565b610975565b3480156102c057600080fd5b506102726102cf366004612d37565b6109bc565b3480156102e057600080fd5b506102f660008051602061352d83398151915281565b604051908152602001610249565b34801561031057600080fd5b5061027261031f366004612e1f565b610a4a565b34801561033057600080fd5b50610272610a97565b34801561034557600080fd5b50600161023d565b34801561035957600080fd5b506102f6610368366004612e6e565b610bdc565b34801561037957600080fd5b50610272610388366004612e87565b610bf1565b34801561039957600080fd5b506102726103a8366004612d37565b610cf7565b3480156103b957600080fd5b506102726103c8366004612d37565b610d3d565b3480156103d957600080fd5b506103ed6103e8366004612d37565b610e03565b6040516102499190612ef8565b34801561040657600080fd5b50610272610415366004612f0c565b610e69565b34801561042657600080fd5b506102f66101645481565b34801561043d57600080fd5b5061027261044c366004612f0c565b610e86565b34801561045d57600080fd5b5061027261046c366004612d37565b610f00565b34801561047d57600080fd5b5061023d61048c366004612d37565b610fc9565b34801561049d57600080fd5b506067546103ed906001600160a01b031681565b3480156104bd57600080fd5b50610168546103ed906001600160a01b031681565b3480156104de57600080fd5b506065546103ed906001600160a01b031681565b3480156104fe57600080fd5b5061027261050d366004612f3c565b6110e8565b610272610520366004612f6a565b611225565b34801561053157600080fd5b50610545610540366004612d37565b6112db565b604051610249919061301b565b34801561055e57600080fd5b506066546103ed906001600160a01b031681565b34801561057e57600080fd5b506101305460ff1661023d565b34801561059757600080fd5b506102726105a6366004612d37565b611427565b3480156105b757600080fd5b506103ed6105c6366004612d37565b610167602052600090815260409020546001600160a01b031681565b3480156105ee57600080fd5b506103ed6105fd366004612e6e565b610166602052600090815260409020546001600160a01b031681565b34801561062557600080fd5b5061023d610634366004612f0c565b61150d565b34801561064557600080fd5b506102f6600081565b34801561065a57600080fd5b506102f66101625481565b34801561067157600080fd5b506102f66101635481565b34801561068857600080fd5b50610272610697366004612d37565b611538565b3480156106a857600080fd5b506102726106b7366004612d37565b6115b6565b3480156106c857600080fd5b5061023d6106d7366004612d37565b6116b1565b3480156106e857600080fd5b506102726106f7366004612f0c565b611778565b34801561070857600080fd5b50610272611795565b34801561071d57600080fd5b506103ed6117c4565b34801561073257600080fd5b506102f6610741366004612d37565b6001600160a01b03166000908152610165602052604090205490565b34801561076957600080fd5b506102f660008051602061356d83398151915281565b34801561078b57600080fd5b5061027261079a36600461302e565b611860565b3480156107ab57600080fd5b506107bf6107ba366004612d37565b6118d2565b60405161024995949392919061308d565b3480156107dc57600080fd5b506102726107eb366004612f6a565b61198e565b3480156107fc57600080fd5b5061023d61080b366004612d37565b611b15565b34801561081c57600080fd5b5061027261082b366004612e6e565b611b88565b60006001600160e01b03198216637965db0b60e01b148061086157506301ffc9a760e01b6001600160e01b03198316145b92915050565b60008051602061356d8339815191526108808133611bba565b81156108925761088e611c1e565b5050565b61088e611c8f565b60008051602061352d8339815191526108b38133611bba565b6101305460ff16156108e05760405162461bcd60e51b81526004016108d7906130c7565b60405180910390fd5b6001600160a01b0382166000908152610165602052604090206004015460ff1660011461091f5760405162461bcd60e51b81526004016108d7906130f1565b6001600160a01b03821660008181526101656020908152604091829020429081905591519182527fb2a82fce6d8c7a633efe9579f77b4edb96bfdf171a49bfc2ce666dc543a1f500910160405180910390a25050565b60008051602061352d83398151915261098e8133611bba565b6101305460ff16156109b25760405162461bcd60e51b81526004016108d7906130c7565b61088e8246611d0b565b60008051602061352d8339815191526109d58133611bba565b6101305460ff16156109f95760405162461bcd60e51b81526004016108d7906130c7565b6001600160a01b03821660008181526101656020526040808220600401805460ff191660ff179055517f44d5fe68b00f68950fb9c1ff0a61ef7f747b1a36359a7e3a7f3324db4b8789679190a25050565b60008051602061352d833981519152610a638133611bba565b6101305460ff1615610a875760405162461bcd60e51b81526004016108d7906130c7565b610a92838346611dd8565b505050565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b158015610af557600080fd5b505afa158015610b09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2d919061311a565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de691600480820192602092909190829003018186803b158015610b8257600080fd5b505afa158015610b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bba919061311a565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b600090815260fe602052604090206001015490565b610bfa33610fc9565b610c165760405162461bcd60e51b81526004016108d7906130f1565b60008282604051610c28929190613137565b6040805191829003909120600081815261016660205291909120549091506001600160a01b031615610c6c5760405162461bcd60e51b81526004016108d790613147565b33600090815261016560205260408082209051610c8c91600201906131b2565b60408051918290039091206000818152610166602090815283822080546001600160a01b0319169055338252610165905291909120909150610cd2906002018585612b81565b505060009081526101666020526040902080546001600160a01b031916331790555050565b60008051602061352d833981519152610d108133611bba565b6101305460ff1615610d345760405162461bcd60e51b81526004016108d7906130c7565b61088e82611e83565b6000610d498133611bba565b6067546001600160a01b031615610d985760405162461bcd60e51b8152602060048201526013602482015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b60448201526064016108d7565b610da1826120ea565b606654610db9906000906001600160a01b031661210d565b606654610dde9060008051602061356d833981519152906001600160a01b031661210d565b60665461088e9060008051602061352d833981519152906001600160a01b031661210d565b6000610e0e82610fc9565b15610e17575090565b6001600160a01b0380831660009081526101676020526040902054610e3c9116610fc9565b15610e6157506001600160a01b03908116600090815261016760205260409020541690565b506000919050565b610e7282610bdc565b610e7c8133611bba565b610a928383612113565b6001600160a01b0381163314610ef65760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016108d7565b61088e8282612199565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610f495760405162461bcd60e51b81526004016108d79061324e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610f7b612200565b6001600160a01b031614610fa15760405162461bcd60e51b81526004016108d790613288565b610faa8161221c565b60408051600080825260208201909252610fc691839190612224565b50565b6001600160a01b0381166000908152610165602052604081205481906201518090610ff490426132d8565b610ffe91906132ef565b905061016454811115801561103257506001600160a01b0383166000908152610165602052604090206004015460ff166001145b156110405750600192915050565b610168546001600160a01b0316156110df5761016854604051633af32abf60e01b81526001600160a01b0390911690633af32abf90611083908690600401612ef8565b60206040518083038186803b15801561109b57600080fd5b505afa9250505080156110cb575060408051601f3d908101601f191682019092526110c891810190613311565b60015b6110d85750600092915050565b9392505050565b50600092915050565b600054610100900460ff1680611101575060005460ff16155b61111d5760405162461bcd60e51b81526004016108d79061332e565b600054610100900460ff1615801561113f576000805461ffff19166101011790555b611147612364565b61114f6123cf565b6104476101645560665461116e906000906001600160a01b031661210d565b61117960008461210d565b60665461119e9060008051602061356d833981519152906001600160a01b031661210d565b6111b660008051602061356d8339815191528461210d565b6111ce60008051602061352d8339815191528461210d565b6066546111f39060008051602061352d833981519152906001600160a01b031661210d565b61016880546001600160a01b0319166001600160a01b0384161790558015610a92576000805461ff0019169055505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016141561126e5760405162461bcd60e51b81526004016108d79061324e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166112a0612200565b6001600160a01b0316146112c65760405162461bcd60e51b81526004016108d790613288565b6112cf8261221c565b61088e82826001612224565b336000908152610165602052604090206002018054606091906112fd90613177565b80601f016020809104026020016040519081016040528092919081815260200182805461132990613177565b80156113765780601f1061134b57610100808354040283529160200191611376565b820191906000526020600020905b81548152906001019060200180831161135957829003601f168201915b5050505050905060008151111561138c57919050565b610168546040516354f9f7a360e01b81526001600160a01b03909116906354f9f7a3906113bd908590600401612ef8565b60006040518083038186803b1580156113d557600080fd5b505afa92505050801561140a57506040513d6000823e601f3d908101601f19168201604052611407919081019061337c565b60015b61086157505060408051602081019091526000815290565b919050565b60008051602061352d8339815191526114408133611bba565b6101305460ff16156114645760405162461bcd60e51b81526004016108d7906130c7565b813b6114b25760405162461bcd60e51b815260206004820152601f60248201527f476976656e2061646472657373206973206e6f74206120636f6e74726163740060448201526064016108d7565b6114bc8246611d0b565b6001600160a01b03821660008181526101656020526040808220600401805460ff19166002179055517f89c66952b48f3e96bf1d8ba1b63189520fd988a6979b8b740bd5c5d8dc53e2059190a25050565b600091825260fe602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60008051602061352d8339815191526115518133611bba565b6101305460ff16156115755760405162461bcd60e51b81526004016108d7906130c7565b61157e82611e83565b6040516001600160a01b038316907f8d30d41865a0b811b9545d879520d2dde9f4cc49e4241f486ad9752bc904b56590600090a25050565b60008051602061352d8339815191526115cf8133611bba565b6101305460ff16156115f35760405162461bcd60e51b81526004016108d7906130c7565b610168546001600160a01b03161561166357610168546040516363513b6160e11b81526001600160a01b039091169063c6a276c290611636908590600401612ef8565b600060405180830381600087803b15801561165057600080fd5b505af1925050508015611661575060015b505b6001600160a01b03821660008181526101656020526040808220600401805460ff19169055517f1747ca720b1a174a464b6513ace29b1d3190b5f632b9f34147017c81425bfde89190a25050565b6001600160a01b0381166000908152610165602052604081206004015460ff16600214156116e157506001919050565b610168546001600160a01b031615610e61576101685460405163639e625760e11b81526001600160a01b039091169063c73cc4ae90611724908590600401612ef8565b60206040518083038186803b15801561173c57600080fd5b505afa92505050801561176c575060408051601f3d908101601f1916820190925261176991810190613311565b60015b61086157506000919050565b61178182610bdc565b61178b8133611bba565b610a928383612199565b6101305460ff16156117b95760405162461bcd60e51b81526004016108d7906130c7565b6117c233611e83565b565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac19060640160206040518083038186803b15801561182357600080fd5b505afa158015611837573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185b919061311a565b905090565b60008051602061352d8339815191526118798133611bba565b6101305460ff161561189d5760405162461bcd60e51b81526004016108d7906130c7565b6118a8858585611dd8565b81156118cb576001600160a01b0385166000908152610165602052604090208290555b5050505050565b61016560205260009081526040902080546001820154600283018054929391926118fb90613177565b80601f016020809104026020016040519081016040528092919081815260200182805461192790613177565b80156119745780601f1061194957610100808354040283529160200191611974565b820191906000526020600020905b81548152906001019060200180831161195757829003601f168201915b50505050600383015460049093015491929160ff16905085565b61199733610fc9565b6119b35760405162461bcd60e51b81526004016108d7906130f1565b6119bc82610fc9565b1580156119cf57506119cd82611b15565b155b611a0d5760405162461bcd60e51b815260206004820152600f60248201526e1a5b9d985b1a59081858d8dbdd5b9d608a1b60448201526064016108d7565b6001600160a01b03828116600090815261016760205260409020541615611a6a5760405162461bcd60e51b8152602060048201526011602482015270185b1c9958591e4818dbdb9b9958dd1959607a1b60448201526064016108d7565b604080513360208201526001600160a01b03841691810191909152611aaa9083906060016040516020818303038152906040528051906020012083612445565b611aea5760405162461bcd60e51b8152602060048201526011602482015270696e76616c6964207369676e617475726560781b60448201526064016108d7565b506001600160a01b031660009081526101676020526040902080546001600160a01b03191633179055565b6001600160a01b0381166000908152610165602052604081206004015460ff9081161415611b4557506001919050565b610168546001600160a01b031615611422576101685460405163fe575a8760e01b81526001600160a01b039091169063fe575a8790611724908590600401612ef8565b6101305460ff1615611bac5760405162461bcd60e51b81526004016108d7906130c7565b611bb4612591565b61016455565b611bc4828261150d565b61088e57611bdc816001600160a01b03166014612663565b611be7836020612663565b604051602001611bf89291906133e9565b60408051601f198184030181529082905262461bcd60e51b82526108d79160040161301b565b6101305460ff1615611c425760405162461bcd60e51b81526004016108d7906130c7565b610130805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611c783390565b604051611c859190612ef8565b60405180910390a1565b6101305460ff16611cd95760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016108d7565b610130805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33611c78565b60016101626000828254611d1f9190613458565b90915550506001600160a01b03821660009081526101656020908152604080832060048101805460ff19166001908117909155429082018190558155600301849055610167909152902080546001600160a01b0319169055611d81823b151590565b15611da05760016101636000828254611d9a9190613458565b90915550505b6040516001600160a01b038316907fee1504a83b6d4a361f4c1dc78ab59bfa30d6a3b6612c403e86bb01ef2984295f90600090a25050565b815160208084019190912060008181526101669092526040909120546001600160a01b031615611e1a5760405162461bcd60e51b81526004016108d790613147565b6001600160a01b0384166000908152610165602090815260409091208451611e4a92600290920191860190612c05565b5060008181526101666020526040902080546001600160a01b0319166001600160a01b038616179055611e7d8483611d0b565b50505050565b60016101626000828254611e9791906132d8565b9091555050803b15611f2c5760016101636000828254611eb791906132d8565b9091555050610168546001600160a01b031615611f2c576101685460405163c375c2ef60e01b81526001600160a01b039091169063c375c2ef90611eff908490600401612ef8565b600060405180830381600087803b158015611f1957600080fd5b505af1925050508015611f2a575060015b505b610168546001600160a01b031615611f9c576101685460405163291d954960e01b81526001600160a01b039091169063291d954990611f6f908490600401612ef8565b600060405180830381600087803b158015611f8957600080fd5b505af1925050508015611f9a575060015b505b6001600160a01b0381166000908152610165602052604081206002018054611fc390613177565b80601f0160208091040260200160405190810160405280929190818152602001828054611fef90613177565b801561203c5780601f106120115761010080835404028352916020019161203c565b820191906000526020600020905b81548152906001019060200180831161201f57829003601f168201915b505083516020808601919091206001600160a01b03881660009081526101659092526040822082815560018101839055959650949350915061208390506002830182612c79565b506000600382018190556004909101805460ff19169055818152610166602052604080822080546001600160a01b0319169055516001600160a01b038516917f270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b691a2505050565b606780546001600160a01b0319166001600160a01b038316179055610fc6610a97565b61088e82825b61211d828261150d565b61088e57600082815260fe602090815260408083206001600160a01b03851684529091529020805460ff191660011790556121553390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6121a3828261150d565b1561088e57600082815260fe602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008051602061358d833981519152546001600160a01b031690565b610fc6612591565b600061222e612200565b9050612239846127fe565b6000835111806122465750815b15612257576122558484612891565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff166118cb57805460ff191660011781556040516122d29086906122a3908590602401612ef8565b60408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b179052612891565b50805460ff191681556122e3612200565b6001600160a01b0316826001600160a01b03161461235b5760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b60648201526084016108d7565b6118cb8561297c565b600054610100900460ff168061237d575060005460ff16155b6123995760405162461bcd60e51b81526004016108d79061332e565b600054610100900460ff161580156123bb576000805461ffff19166101011790555b8015610fc6576000805461ff001916905550565b600054610100900460ff16806123e8575060005460ff16155b6124045760405162461bcd60e51b81526004016108d79061332e565b600054610100900460ff16158015612426576000805461ffff19166101011790555b610130805460ff191690558015610fc6576000805461ff001916905550565b600080600061245485856129bc565b9092509050600081600481111561246d5761246d613470565b14801561248b5750856001600160a01b0316826001600160a01b0316145b1561249b576001925050506110d8565b600080876001600160a01b0316631626ba7e60e01b88886040516024016124c3929190613486565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161250191906134a7565b600060405180830381855afa9150503d806000811461253c576040519150601f19603f3d011682016040523d82523d6000602084013e612541565b606091505b5091509150818015612554575080516020145b801561258557508051630b135d3f60e11b9061257990830160209081019084016134c3565b6001600160e01b031916145b98975050505050505050565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de6916004808301926020929190829003018186803b1580156125d557600080fd5b505afa1580156125e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061260d919061311a565b6001600160a01b0316146117c25760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f6460448201526064016108d7565b606060006126728360026134e0565b61267d906002613458565b6001600160401b0381111561269457612694612d54565b6040519080825280601f01601f1916602001820160405280156126be576020820181803683370190505b509050600360fc1b816000815181106126d9576126d96134ff565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612708576127086134ff565b60200101906001600160f81b031916908160001a905350600061272c8460026134e0565b612737906001613458565b90505b60018111156127af576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061276b5761276b6134ff565b1a60f81b828281518110612781576127816134ff565b60200101906001600160f81b031916908160001a90535060049490941c936127a881613515565b905061273a565b5083156110d85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016108d7565b803b6128625760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016108d7565b60008051602061358d83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6128f05760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016108d7565b600080846001600160a01b03168460405161290b91906134a7565b600060405180830381855af49150503d8060008114612946576040519150601f19603f3d011682016040523d82523d6000602084013e61294b565b606091505b509150915061297382826040518060600160405280602781526020016135ad60279139612a2c565b95945050505050565b612985816127fe565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6000808251604114156129f35760208301516040840151606085015160001a6129e787828585612a65565b94509450505050612a25565b825160401415612a1d5760208301516040840151612a12868383612b48565b935093505050612a25565b506000905060025b9250929050565b60608315612a3b5750816110d8565b825115612a4b5782518084602001fd5b8160405162461bcd60e51b81526004016108d7919061301b565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115612a925750600090506003612b3f565b8460ff16601b14158015612aaa57508460ff16601c14155b15612abb5750600090506004612b3f565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015612b0f573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612b3857600060019250925050612b3f565b9150600090505b94509492505050565b6000806001600160ff1b03831681612b6560ff86901c601b613458565b9050612b7387828885612a65565b935093505050935093915050565b828054612b8d90613177565b90600052602060002090601f016020900481019282612baf5760008555612bf5565b82601f10612bc85782800160ff19823516178555612bf5565b82800160010185558215612bf5579182015b82811115612bf5578235825591602001919060010190612bda565b50612c01929150612caf565b5090565b828054612c1190613177565b90600052602060002090601f016020900481019282612c335760008555612bf5565b82601f10612c4c57805160ff1916838001178555612bf5565b82800160010185558215612bf5579182015b82811115612bf5578251825591602001919060010190612c5e565b508054612c8590613177565b6000825580601f10612c95575050565b601f016020900490600052602060002090810190610fc691905b5b80821115612c015760008155600101612cb0565b6001600160e01b031981168114610fc657600080fd5b600060208284031215612cec57600080fd5b81356110d881612cc4565b8015158114610fc657600080fd5b600060208284031215612d1757600080fd5b81356110d881612cf7565b6001600160a01b0381168114610fc657600080fd5b600060208284031215612d4957600080fd5b81356110d881612d22565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612d9257612d92612d54565b604052919050565b60006001600160401b03821115612db357612db3612d54565b50601f01601f191660200190565b6000612dd4612dcf84612d9a565b612d6a565b9050828152838383011115612de857600080fd5b828260208301376000602084830101529392505050565b600082601f830112612e1057600080fd5b6110d883833560208501612dc1565b60008060408385031215612e3257600080fd5b8235612e3d81612d22565b915060208301356001600160401b03811115612e5857600080fd5b612e6485828601612dff565b9150509250929050565b600060208284031215612e8057600080fd5b5035919050565b60008060208385031215612e9a57600080fd5b82356001600160401b0380821115612eb157600080fd5b818501915085601f830112612ec557600080fd5b813581811115612ed457600080fd5b866020828501011115612ee657600080fd5b60209290920196919550909350505050565b6001600160a01b0391909116815260200190565b60008060408385031215612f1f57600080fd5b823591506020830135612f3181612d22565b809150509250929050565b60008060408385031215612f4f57600080fd5b8235612f5a81612d22565b91506020830135612f3181612d22565b60008060408385031215612f7d57600080fd5b8235612f8881612d22565b915060208301356001600160401b03811115612fa357600080fd5b8301601f81018513612fb457600080fd5b612e6485823560208401612dc1565b60005b83811015612fde578181015183820152602001612fc6565b83811115611e7d5750506000910152565b60008151808452613007816020860160208601612fc3565b601f01601f19169290920160200192915050565b6020815260006110d86020830184612fef565b6000806000806080858703121561304457600080fd5b843561304f81612d22565b935060208501356001600160401b0381111561306a57600080fd5b61307687828801612dff565b949794965050505060408301359260600135919050565b85815284602082015260a0604082015260006130ac60a0830186612fef565b905083606083015260ff831660808301529695505050505050565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252600f908201526e1b9bdd081dda1a5d195b1a5cdd1959608a1b604082015260600190565b60006020828403121561312c57600080fd5b81516110d881612d22565b8183823760009101908152919050565b60208082526016908201527511125108185b1c9958591e481c9959da5cdd195c995960521b604082015260600190565b600181811c9082168061318b57607f821691505b602082108114156131ac57634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c9150808316806131ce57607f831692505b60208084108214156131ee57634e487b7160e01b86526022600452602486fd5b818015613202576001811461321357613240565b60ff19861689528489019650613240565b60008a81526020902060005b868110156132385781548b82015290850190830161321f565b505084890196505b509498975050505050505050565b6020808252602c9082015260008051602061354d83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061354d83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b6000828210156132ea576132ea6132c2565b500390565b60008261330c57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561332357600080fd5b81516110d881612cf7565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b60006020828403121561338e57600080fd5b81516001600160401b038111156133a457600080fd5b8201601f810184136133b557600080fd5b80516133c3612dcf82612d9a565b8181528560208385010111156133d857600080fd5b612973826020830160208601612fc3565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835161341b816017850160208801612fc3565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161344c816028840160208801612fc3565b01602801949350505050565b6000821982111561346b5761346b6132c2565b500190565b634e487b7160e01b600052602160045260246000fd5b82815260406020820152600061349f6040830184612fef565b949350505050565b600082516134b9818460208701612fc3565b9190910192915050565b6000602082840312156134d557600080fd5b81516110d881612cc4565b60008160001904831182151516156134fa576134fa6132c2565b500290565b634e487b7160e01b600052603260045260246000fd5b600081613524576135246132c2565b50600019019056fe091941537c453917ef5b0c67f46f29060aca926ebd752fe441d5625e85c3a57646756e6374696f6e206d7573742062652063616c6c6564207468726f756768200b0f1f48172a2124d5545a38711e7e9d2e7a6c0b46b85cf1c1788e7a11ba5bf2360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200f787e88dd0f982ce5e85d939bde07610321eaa06dd503dde7713dc0bce909d464736f6c63430008080033",
998
+ "linkReferences": {},
999
+ "deployedLinkReferences": {}
1000
+ }