@gooddollar/goodprotocol 1.0.28 → 1.0.29-beta.1

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 (352) hide show
  1. package/artifacts/abis/BulkProof.min.json +1 -1
  2. package/artifacts/abis/DistributionBridgeMock.min.json +1 -0
  3. package/artifacts/abis/DistributionHelper.min.json +1 -0
  4. package/artifacts/abis/DistributionHelperTest.min.json +1 -0
  5. package/artifacts/abis/DistributionHelperTestHelper.min.json +1 -0
  6. package/artifacts/abis/ERC20.min.json +1 -1
  7. package/artifacts/abis/GoodDollarMintBurnWrapper.min.json +1 -0
  8. package/artifacts/abis/GoodDollarStaking.min.json +1 -0
  9. package/artifacts/abis/GoodDollarStakingMock.min.json +1 -0
  10. package/artifacts/abis/GoodReserveCDai.min.json +1 -1
  11. package/artifacts/abis/IERC2917.min.json +1 -1
  12. package/artifacts/abis/IGoodDollarStakingTest.min.json +1 -0
  13. package/artifacts/abis/IMultichainRouter.min.json +1 -0
  14. package/artifacts/abis/IRouter.min.json +1 -0
  15. package/artifacts/abis/IWrapper.min.json +1 -0
  16. package/artifacts/abis/Math64x64.min.json +1 -0
  17. package/artifacts/abis/MultichainBridgeHelper.min.json +1 -0
  18. package/artifacts/abis/MultichainRouterMock.min.json +1 -0
  19. package/artifacts/abis/OverMintTester.min.json +1 -1
  20. package/artifacts/abis/PausableControl.min.json +1 -0
  21. package/artifacts/abis/RewardsMinter.min.json +1 -0
  22. package/artifacts/abis/StakingMockFixedAPY.min.json +1 -0
  23. package/artifacts/abis/StakingRewardsFixedAPY.min.json +1 -0
  24. package/artifacts/abis/TokenOperation.min.json +1 -0
  25. package/artifacts/abis/cERC20.min.json +1 -1
  26. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  27. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  28. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  29. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  30. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  31. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  32. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  33. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  34. package/artifacts/contracts/Interfaces.sol/ERC20.json +13 -0
  35. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  36. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  37. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  38. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  39. package/artifacts/contracts/Interfaces.sol/IERC2917.json +13 -0
  40. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  41. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  42. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  43. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  44. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  45. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  46. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +4 -0
  47. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.json +67 -0
  48. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  49. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  50. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  51. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  52. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  53. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  54. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  55. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  56. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  57. package/artifacts/contracts/Interfaces.sol/cERC20.json +13 -0
  58. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  59. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.json +2 -2
  60. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  61. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.json +2 -2
  62. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  63. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.json +2 -2
  64. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  65. package/artifacts/contracts/governance/GReputation.sol/GReputation.json +2 -2
  66. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.dbg.json +4 -0
  67. package/artifacts/contracts/governance/GoodDollarStaking.sol/GoodDollarStaking.json +1322 -0
  68. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.dbg.json +4 -0
  69. package/artifacts/contracts/governance/GoodDollarStaking.sol/RewardsMinter.json +35 -0
  70. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  71. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.json +2 -2
  72. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  73. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  74. package/artifacts/contracts/governance/Reputation.sol/Reputation.json +2 -2
  75. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  76. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.json +2 -2
  77. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  78. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.json +2 -2
  79. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  80. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  81. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  82. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.dbg.json +4 -0
  83. package/artifacts/contracts/mocks/DistributionBridgeMock.sol/DistributionBridgeMock.json +152 -0
  84. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +4 -0
  85. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.json +662 -0
  86. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +4 -0
  87. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.json +680 -0
  88. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  89. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.json +2 -2
  90. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.dbg.json +4 -0
  91. package/artifacts/contracts/mocks/GoodDollarStakingMock.sol/GoodDollarStakingMock.json +1322 -0
  92. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  93. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.json +2 -2
  94. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  95. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  96. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.dbg.json +4 -0
  97. package/artifacts/contracts/mocks/MultichainRouterMock.sol/IWrapper.json +59 -0
  98. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.dbg.json +4 -0
  99. package/artifacts/contracts/mocks/MultichainRouterMock.sol/MultichainRouterMock.json +81 -0
  100. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +4 -0
  101. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.json +49 -0
  102. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  103. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.json +4 -4
  104. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  105. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.json +2 -2
  106. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  107. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.dbg.json +4 -0
  108. package/artifacts/contracts/mocks/StakingMockFixedAPY.sol/StakingMockFixedAPY.json +682 -0
  109. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  110. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.json +2 -2
  111. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  112. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  113. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.json +2 -2
  114. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  115. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.json +2 -2
  116. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  117. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.json +2 -2
  118. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  119. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.json +2 -2
  120. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  121. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  122. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  123. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  124. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  125. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  126. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  127. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  128. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +4 -0
  129. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.json +662 -0
  130. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  131. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.json +2 -2
  132. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  133. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.json +2 -2
  134. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  135. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  136. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.json +75 -35
  137. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  138. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.json +2 -2
  139. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  140. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.json +2 -2
  141. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  142. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.json +2 -2
  143. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  144. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.json +2 -2
  145. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  146. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  147. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  148. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.json +2 -2
  149. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  150. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  151. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  152. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.json +2 -2
  153. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  154. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.json +2 -2
  155. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  156. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.json +2 -2
  157. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  158. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.json +2 -2
  159. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  160. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.json +2 -2
  161. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  162. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.json +2 -2
  163. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  164. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.json +2 -2
  165. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +4 -0
  166. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.json +10 -0
  167. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.dbg.json +4 -0
  168. package/artifacts/contracts/staking/utils/StakingRewardsFixedAPY.sol/StakingRewardsFixedAPY.json +268 -0
  169. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  170. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.json +2 -2
  171. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  172. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.json +2 -2
  173. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  174. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  175. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.json +3 -34
  176. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  177. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.json +2 -2
  178. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  179. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.json +2 -2
  180. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  181. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  182. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +4 -0
  183. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.json +1263 -0
  184. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +4 -0
  185. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.json +59 -0
  186. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +4 -0
  187. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.json +69 -0
  188. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +4 -0
  189. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.json +10 -0
  190. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +4 -0
  191. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.json +79 -0
  192. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  193. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  194. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  195. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.json +2 -2
  196. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  197. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.json +2 -2
  198. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  199. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.json +2 -2
  200. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  201. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.json +2 -2
  202. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  203. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  204. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  205. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.json +2 -2
  206. package/contracts/Interfaces.sol +20 -0
  207. package/contracts/governance/GoodDollarStaking.sol +510 -0
  208. package/contracts/governance/MultiBaseGovernanceShareField.sol +1 -0
  209. package/contracts/mocks/DistributionBridgeMock.sol +50 -0
  210. package/contracts/mocks/DistributionHelperTest.sol +22 -0
  211. package/contracts/mocks/GoodDollarStakingMock.sol +24 -0
  212. package/contracts/mocks/MultichainRouterMock.sol +38 -0
  213. package/contracts/mocks/OverMintTester.sol +39 -25
  214. package/contracts/mocks/StakingMockFixedAPY.sol +78 -0
  215. package/contracts/reserve/DistributionHelper.sol +142 -0
  216. package/contracts/reserve/GoodReserveCDai.sol +95 -41
  217. package/contracts/staking/utils/Math64X64.sol +268 -0
  218. package/contracts/staking/utils/StakingRewardsFixedAPY.sol +336 -0
  219. package/contracts/utils/BulkProof.sol +10 -10
  220. package/contracts/utils/GoodDollarMintBurnWrapper.sol +638 -0
  221. package/contracts/utils/MultichainBridgeHelper.sol +39 -0
  222. package/hardhat.config.ts +5 -3
  223. package/package.json +7 -4
  224. package/patches/@openzeppelin+hardhat-upgrades+1.7.0.patch.depracate +67 -0
  225. package/releases/deployment.json +10 -3
  226. package/releases/olddao.json +1 -1
  227. package/scripts/analytics/activeUsersCount.ts +65 -0
  228. package/scripts/analytics/activeWalletsStats.ts +150 -0
  229. package/scripts/analytics/claimIncidentStats.ts +117 -0
  230. package/scripts/analytics/faucetStats.ts +103 -0
  231. package/scripts/analytics/goodHolders.ts +50 -0
  232. package/scripts/{misc → analytics}/goodgiveback.ts +0 -0
  233. package/scripts/governance/airdropCalculation.ts +1 -0
  234. package/scripts/multichain-deploy/basicdao-deploy.ts +20 -5
  235. package/scripts/multichain-deploy/gdSavings-deploy.ts +232 -0
  236. package/scripts/multichain-deploy/helpers.ts +73 -8
  237. package/scripts/multichain-deploy/multichainWrapper-deploy.ts +56 -0
  238. package/scripts/multichain-deploy/nonubiDistribution-deploy.ts +170 -0
  239. package/scripts/voltageswaps.ts +47 -0
  240. package/test/governance/ClaimersDistribution.test.ts +1 -1
  241. package/test/governance/GoodDollarStaking.gd.test.ts +559 -0
  242. package/test/governance/GoodDollarStaking.good.test.ts +998 -0
  243. package/test/governance/GovernanceStaking.test.ts +43 -0
  244. package/test/helpers.ts +9 -12
  245. package/test/reserve/DistributionHelper.test.ts +394 -0
  246. package/test/reserve/GoodReserveCDai.distribution.test.ts +296 -0
  247. package/test/reserve/GoodReserveCDai.gdx.test.ts +21 -16
  248. package/test/reserve/GoodReserveCDai.pause.test.ts +116 -0
  249. package/test/staking/StakingRewardsFixedAPY.test.ts +900 -0
  250. package/test/utils/AdminWallet.test.ts +35 -6
  251. package/test/utils/GoodDollarMintBurnWrapper.test.ts +796 -0
  252. package/tsconfig.json +4 -9
  253. package/types/AccessControl.ts +361 -0
  254. package/types/CERC20.ts +25 -0
  255. package/types/DistributionBridgeMock.ts +251 -0
  256. package/types/DistributionHelper.ts +908 -0
  257. package/types/DistributionHelperTest.ts +909 -0
  258. package/types/DistributionHelperTestHelper.ts +945 -0
  259. package/types/ERC165.ts +104 -0
  260. package/types/ERC20.ts +101 -49
  261. package/types/GoodDollarMintBurnWrapper.ts +1806 -0
  262. package/types/GoodDollarStaking.ts +1855 -0
  263. package/types/GoodDollarStakingMock.ts +1855 -0
  264. package/types/GoodReserveCDai.ts +90 -55
  265. package/types/IAccessControl.ts +306 -0
  266. package/types/IERC165.ts +104 -0
  267. package/types/IERC20.ts +300 -0
  268. package/types/IERC20Metadata.ts +339 -0
  269. package/types/IERC2917.ts +25 -0
  270. package/types/IGoodDollarStakingTest.ts +160 -0
  271. package/types/IMultichainRouter.ts +166 -0
  272. package/types/IRouter.ts +143 -0
  273. package/types/IWrapper.ts +143 -0
  274. package/types/MultichainBridgeHelper.ts +170 -0
  275. package/types/MultichainRouterMock.ts +141 -0
  276. package/types/Pausable.ts +103 -0
  277. package/types/PausableControl.ts +125 -0
  278. package/types/{BulkProof.ts → RewardsMinter.ts} +24 -28
  279. package/types/StakingMockFixedAPY.ts +995 -0
  280. package/types/StakingRewardsFixedAPY.ts +428 -0
  281. package/types/factories/AaveStakingFactory__factory.ts +1 -1
  282. package/types/factories/AccessControl__factory.ts +227 -0
  283. package/types/factories/AdminWallet__factory.ts +1 -1
  284. package/types/factories/BaseShareFieldV2__factory.ts +1 -1
  285. package/types/factories/BaseShareField__factory.ts +1 -1
  286. package/types/factories/CERC20__factory.ts +13 -0
  287. package/types/factories/ClaimersDistribution__factory.ts +1 -1
  288. package/types/factories/CompoundStakingFactory__factory.ts +1 -1
  289. package/types/factories/CompoundVotingMachine__factory.ts +1 -1
  290. package/types/factories/DAOContract__factory.ts +1 -1
  291. package/types/factories/DAOUpgradeableContract__factory.ts +1 -1
  292. package/types/factories/DistributionBridgeMock__factory.ts +207 -0
  293. package/types/factories/DistributionHelperTestHelper__factory.ts +737 -0
  294. package/types/factories/DistributionHelperTest__factory.ts +717 -0
  295. package/types/factories/DistributionHelper__factory.ts +713 -0
  296. package/types/factories/DonationsStaking__factory.ts +1 -1
  297. package/types/factories/ERC165__factory.ts +39 -0
  298. package/types/factories/ERC20__factory.ts +13 -0
  299. package/types/factories/ExchangeHelper__factory.ts +1 -1
  300. package/types/factories/FuseFaucet__factory.ts +1 -1
  301. package/types/factories/FuseStakingV3__factory.ts +1 -1
  302. package/types/factories/GReputation__factory.ts +1 -1
  303. package/types/factories/GoodAaveStakingV2__factory.ts +1 -1
  304. package/types/factories/GoodAaveStaking__factory.ts +1 -1
  305. package/types/factories/GoodCompoundStakingTest__factory.ts +1 -1
  306. package/types/factories/GoodCompoundStakingV2__factory.ts +1 -1
  307. package/types/factories/GoodCompoundStaking__factory.ts +1 -1
  308. package/types/factories/GoodDollarMintBurnWrapper__factory.ts +1318 -0
  309. package/types/factories/GoodDollarStakingMock__factory.ts +1404 -0
  310. package/types/factories/GoodDollarStaking__factory.ts +1400 -0
  311. package/types/factories/GoodFundManagerTest__factory.ts +1 -1
  312. package/types/factories/GoodFundManager__factory.ts +1 -1
  313. package/types/factories/GoodMarketMaker__factory.ts +1 -1
  314. package/types/factories/GoodReserveCDai__factory.ts +74 -34
  315. package/types/factories/GovernanceStaking__factory.ts +1 -1
  316. package/types/factories/IAccessControl__factory.ts +198 -0
  317. package/types/factories/IERC165__factory.ts +42 -0
  318. package/types/factories/IERC20Metadata__factory.ts +248 -0
  319. package/types/factories/IERC20__factory.ts +203 -0
  320. package/types/factories/IERC2917__factory.ts +13 -0
  321. package/types/factories/IGoodDollarStakingTest__factory.ts +68 -0
  322. package/types/factories/IMultichainRouter__factory.ts +82 -0
  323. package/types/factories/IRouter__factory.ts +71 -0
  324. package/types/factories/IWrapper__factory.ts +71 -0
  325. package/types/factories/InvitesV1__factory.ts +1 -1
  326. package/types/factories/MultichainBridgeHelper__factory.ts +134 -0
  327. package/types/factories/MultichainRouterMock__factory.ts +141 -0
  328. package/types/factories/OverMintTesterRegularStake__factory.ts +1 -1
  329. package/types/factories/OverMintTester__factory.ts +3 -3
  330. package/types/factories/PausableControl__factory.ts +84 -0
  331. package/types/factories/Pausable__factory.ts +62 -0
  332. package/types/factories/ProtocolUpgradeFuseRecover__factory.ts +1 -1
  333. package/types/factories/ProtocolUpgradeFuse__factory.ts +1 -1
  334. package/types/factories/ProtocolUpgradeRecover__factory.ts +1 -1
  335. package/types/factories/ProtocolUpgrade__factory.ts +1 -1
  336. package/types/factories/ReputationTestHelper__factory.ts +1 -1
  337. package/types/factories/Reputation__factory.ts +1 -1
  338. package/types/factories/RewardsMinter__factory.ts +47 -0
  339. package/types/factories/StakersDistribution__factory.ts +1 -1
  340. package/types/factories/StakingMockFixedAPY__factory.ts +745 -0
  341. package/types/factories/StakingRewardsFixedAPY__factory.ts +287 -0
  342. package/types/factories/SwapHelperTest__factory.ts +1 -1
  343. package/types/factories/UBIScheme__factory.ts +1 -1
  344. package/types/factories/UniswapV2SwapHelper__factory.ts +1 -1
  345. package/types/factories/UpgradableMock2__factory.ts +1 -1
  346. package/types/factories/UpgradableMock3__factory.ts +1 -1
  347. package/types/factories/UpgradableMock4__factory.ts +1 -1
  348. package/types/factories/UpgradableMock__factory.ts +1 -1
  349. package/types/hardhat.d.ts +225 -9
  350. package/types/index.ts +50 -4
  351. package/yarn.lock +180 -104
  352. package/types/factories/BulkProof__factory.ts +0 -89
@@ -0,0 +1,227 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import { Contract, Signer, utils } from "ethers";
6
+ import { Provider } from "@ethersproject/providers";
7
+ import type { AccessControl, AccessControlInterface } from "../AccessControl";
8
+
9
+ const _abi = [
10
+ {
11
+ anonymous: false,
12
+ inputs: [
13
+ {
14
+ indexed: true,
15
+ internalType: "bytes32",
16
+ name: "role",
17
+ type: "bytes32",
18
+ },
19
+ {
20
+ indexed: true,
21
+ internalType: "bytes32",
22
+ name: "previousAdminRole",
23
+ type: "bytes32",
24
+ },
25
+ {
26
+ indexed: true,
27
+ internalType: "bytes32",
28
+ name: "newAdminRole",
29
+ type: "bytes32",
30
+ },
31
+ ],
32
+ name: "RoleAdminChanged",
33
+ type: "event",
34
+ },
35
+ {
36
+ anonymous: false,
37
+ inputs: [
38
+ {
39
+ indexed: true,
40
+ internalType: "bytes32",
41
+ name: "role",
42
+ type: "bytes32",
43
+ },
44
+ {
45
+ indexed: true,
46
+ internalType: "address",
47
+ name: "account",
48
+ type: "address",
49
+ },
50
+ {
51
+ indexed: true,
52
+ internalType: "address",
53
+ name: "sender",
54
+ type: "address",
55
+ },
56
+ ],
57
+ name: "RoleGranted",
58
+ type: "event",
59
+ },
60
+ {
61
+ anonymous: false,
62
+ inputs: [
63
+ {
64
+ indexed: true,
65
+ internalType: "bytes32",
66
+ name: "role",
67
+ type: "bytes32",
68
+ },
69
+ {
70
+ indexed: true,
71
+ internalType: "address",
72
+ name: "account",
73
+ type: "address",
74
+ },
75
+ {
76
+ indexed: true,
77
+ internalType: "address",
78
+ name: "sender",
79
+ type: "address",
80
+ },
81
+ ],
82
+ name: "RoleRevoked",
83
+ type: "event",
84
+ },
85
+ {
86
+ inputs: [],
87
+ name: "DEFAULT_ADMIN_ROLE",
88
+ outputs: [
89
+ {
90
+ internalType: "bytes32",
91
+ name: "",
92
+ type: "bytes32",
93
+ },
94
+ ],
95
+ stateMutability: "view",
96
+ type: "function",
97
+ },
98
+ {
99
+ inputs: [
100
+ {
101
+ internalType: "bytes32",
102
+ name: "role",
103
+ type: "bytes32",
104
+ },
105
+ ],
106
+ name: "getRoleAdmin",
107
+ outputs: [
108
+ {
109
+ internalType: "bytes32",
110
+ name: "",
111
+ type: "bytes32",
112
+ },
113
+ ],
114
+ stateMutability: "view",
115
+ type: "function",
116
+ },
117
+ {
118
+ inputs: [
119
+ {
120
+ internalType: "bytes32",
121
+ name: "role",
122
+ type: "bytes32",
123
+ },
124
+ {
125
+ internalType: "address",
126
+ name: "account",
127
+ type: "address",
128
+ },
129
+ ],
130
+ name: "grantRole",
131
+ outputs: [],
132
+ stateMutability: "nonpayable",
133
+ type: "function",
134
+ },
135
+ {
136
+ inputs: [
137
+ {
138
+ internalType: "bytes32",
139
+ name: "role",
140
+ type: "bytes32",
141
+ },
142
+ {
143
+ internalType: "address",
144
+ name: "account",
145
+ type: "address",
146
+ },
147
+ ],
148
+ name: "hasRole",
149
+ outputs: [
150
+ {
151
+ internalType: "bool",
152
+ name: "",
153
+ type: "bool",
154
+ },
155
+ ],
156
+ stateMutability: "view",
157
+ type: "function",
158
+ },
159
+ {
160
+ inputs: [
161
+ {
162
+ internalType: "bytes32",
163
+ name: "role",
164
+ type: "bytes32",
165
+ },
166
+ {
167
+ internalType: "address",
168
+ name: "account",
169
+ type: "address",
170
+ },
171
+ ],
172
+ name: "renounceRole",
173
+ outputs: [],
174
+ stateMutability: "nonpayable",
175
+ type: "function",
176
+ },
177
+ {
178
+ inputs: [
179
+ {
180
+ internalType: "bytes32",
181
+ name: "role",
182
+ type: "bytes32",
183
+ },
184
+ {
185
+ internalType: "address",
186
+ name: "account",
187
+ type: "address",
188
+ },
189
+ ],
190
+ name: "revokeRole",
191
+ outputs: [],
192
+ stateMutability: "nonpayable",
193
+ type: "function",
194
+ },
195
+ {
196
+ inputs: [
197
+ {
198
+ internalType: "bytes4",
199
+ name: "interfaceId",
200
+ type: "bytes4",
201
+ },
202
+ ],
203
+ name: "supportsInterface",
204
+ outputs: [
205
+ {
206
+ internalType: "bool",
207
+ name: "",
208
+ type: "bool",
209
+ },
210
+ ],
211
+ stateMutability: "view",
212
+ type: "function",
213
+ },
214
+ ];
215
+
216
+ export class AccessControl__factory {
217
+ static readonly abi = _abi;
218
+ static createInterface(): AccessControlInterface {
219
+ return new utils.Interface(_abi) as AccessControlInterface;
220
+ }
221
+ static connect(
222
+ address: string,
223
+ signerOrProvider: Signer | Provider
224
+ ): AccessControl {
225
+ return new Contract(address, _abi, signerOrProvider) as AccessControl;
226
+ }
227
+ }
@@ -731,7 +731,7 @@ const _abi = [
731
731
  ];
732
732
 
733
733
  const _bytecode =
734
- "0x60a06040523060601b60805234801561001757600080fd5b5060805160601c61235561004b6000396000818161082a0152818161086a01528181610ae10152610b2101526123556000f3fe60806040526004361061016c5760003560e01c806301ffc9a714610178578063133d93a1146101ad578063248a9ca3146101dd57806324d7806c146101fd5780632beeaca41461021d5780632bf164581461023f5780632c159a1a1461026d5780632f2ff15d1461029b57806336568abe146102bb5780633659cfe6146102db5780633771dcf8146102fb578063377e11e01461031b5780634f1ef2861461033b5780635fc944e91461034e578063715018a61461036e57806378c8cda7146103835780637e2c1355146103a35780638da5cb5b146103c357806390482d72146103d857806391d14854146103f85780639c54df6414610418578063a217fddf14610438578063c48924961461044d578063d547741f14610464578063db62683814610484578063e6ea3939146104a4578063eb91e651146104bb578063f2fde38b146104db578063f3da9f05146104fb578063f9f92be414610512578063fe173b971461053257600080fd5b3661017357005b600080fd5b34801561018457600080fd5b50610198610193366004611a6f565b610549565b60405190151581526020015b60405180910390f35b3480156101b957600080fd5b506101cf60008051602061229983398151915281565b6040519081526020016101a4565b3480156101e957600080fd5b506101cf6101f8366004611a99565b610580565b34801561020957600080fd5b50610198610218366004611ac7565b610595565b34801561022957600080fd5b5061023d610238366004611b81565b6105af565b005b34801561024b57600080fd5b5061025f61025a366004611c04565b610678565b6040516101a4929190611cb4565b34801561027957600080fd5b506101325461028e906001600160a01b031681565b6040516101a49190611cd7565b3480156102a757600080fd5b5061023d6102b6366004611ceb565b610783565b3480156102c757600080fd5b5061023d6102d6366004611ceb565b6107a5565b3480156102e757600080fd5b5061023d6102f6366004611ac7565b61081f565b34801561030757600080fd5b5061023d610316366004611ac7565b6108e8565b34801561032757600080fd5b5061023d610336366004611d3e565b610a16565b61023d610349366004611ddc565b610ad6565b34801561035a57600080fd5b5061023d610369366004611e21565b610b8c565b34801561037a57600080fd5b5061023d610cba565b34801561038f57600080fd5b5061023d61039e366004611ac7565b610cf5565b3480156103af57600080fd5b5061023d6103be366004611e43565b610d8d565b3480156103cf57600080fd5b5061028e610dce565b3480156103e457600080fd5b5061023d6103f3366004611ee4565b610ddd565b34801561040457600080fd5b50610198610413366004611ceb565b610eaa565b34801561042457600080fd5b5061023d610433366004611f47565b610ed5565b34801561044457600080fd5b506101cf600081565b34801561045957600080fd5b506101cf61012f5481565b34801561047057600080fd5b5061023d61047f366004611ceb565b61100c565b34801561049057600080fd5b5061023d61049f366004611a99565b611029565b3480156104b057600080fd5b506101cf61012e5481565b3480156104c757600080fd5b5061023d6104d6366004611ac7565b611038565b3480156104e757600080fd5b5061023d6104f6366004611ac7565b61108e565b34801561050757600080fd5b506101cf6101305481565b34801561051e57600080fd5b5061023d61052d366004611ac7565b61112b565b34801561053e57600080fd5b506101cf6101315481565b60006001600160e01b03198216637965db0b60e01b148061057a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600090815260fb602052604090206001015490565b600061057a60008051602061229983398151915283610eaa565b6105b833610595565b6105dd5760405162461bcd60e51b81526004016105d490611f7b565b60405180910390fd5b61013254604051631b02709960e01b81526001600160a01b0390911690631b027099906106109085908590600401611fa8565b600060405180830381600087803b15801561062a57600080fd5b505af115801561063e573d6000803e3d6000fd5b50505050600261012f546106529190611fe2565b333111801590610666575061066633610595565b156106745761067433611181565b5050565b6000606061068533610595565b6106a15760405162461bcd60e51b81526004016105d490611f7b565b846001600160a01b031683856040516106ba9190612004565b60006040518083038185875af1925050503d80600081146106f7576040519150601f19603f3d011682016040523d82523d6000602084013e6106fc565b606091505b5060405191935091506001600160a01b038616907f534b52c783549f909f9e743120524d0b7154058e4a54cdc895c2c0b587a1c7e09061074190879087908790612020565b60405180910390a2600261012f546107599190611fe2565b33311180159061076d575061076d33610595565b1561077b5761077b33611181565b935093915050565b61078c82610580565b610796813361128d565b6107a083836112f1565b505050565b6001600160a01b03811633146108155760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105d4565b6106748282611377565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156108685760405162461bcd60e51b81526004016105d49061204a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661089a6113de565b6001600160a01b0316146108c05760405162461bcd60e51b81526004016105d490612084565b6108c9816113fa565b604080516000808252602082019092526108e591839190611429565b50565b6108f133610595565b61090d5760405162461bcd60e51b81526004016105d490611f7b565b61013054610133600061091e611570565b81526020019081526020016000206000836001600160a01b03166001600160a01b0316815260200190815260200160002054106109b65760405162461bcd60e51b815260206004820152603060248201527f557365722077616c6c657420686173206265656e20746f7070656420746f6f2060448201526f6d616e792074696d657320746f64617960801b60648201526084016105d4565b600461012e546109c69190611fe2565b816001600160a01b031631106109db576109e4565b6109e481611181565b600261012f546109f49190611fe2565b333111801590610a085750610a0833610595565b156108e5576108e533611181565b33610a1f610dce565b6001600160a01b031614610a455760405162461bcd60e51b81526004016105d4906120be565b60005b8151811015610a9457610a82600080516020612299833981519152838381518110610a7557610a756120f3565b602002602001015161100c565b80610a8c81612109565b915050610a48565b5080604051610aa39190612124565b604051908190038120907fd5e6894641b5030a67e637ab2e12da64d8aec689f8bd1328de2b04d6a439c81090600090a250565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610b1f5760405162461bcd60e51b81526004016105d49061204a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b516113de565b6001600160a01b031614610b775760405162461bcd60e51b81526004016105d490612084565b610b80826113fa565b61067482826001611429565b61012d548210610bd45760405162461bcd60e51b815260206004820152601360248201527241646d696e206c69737420697320656d70747960681b60448201526064016105d4565b815b61012d5481108015610be757508181105b15610ca957610c1d61012d8281548110610c0357610c036120f3565b6000918252602090912001546001600160a01b0316610595565b8015610c615750600261012f54610c349190611fe2565b61012d8281548110610c4857610c486120f3565b6000918252602090912001546001600160a01b03163111155b15610c9757610c9761012d8281548110610c7d57610c7d6120f3565b6000918252602090912001546001600160a01b0316611181565b80610ca181612109565b915050610bd6565b50600261012f546106529190611fe2565b33610cc3610dce565b6001600160a01b031614610ce95760405162461bcd60e51b81526004016105d4906120be565b610cf36000611584565b565b610cfe33610595565b610d1a5760405162461bcd60e51b81526004016105d490611f7b565b6101325460405163291d954960e01b81526001600160a01b039091169063291d954990610d4b908490600401611cd7565b600060405180830381600087803b158015610d6557600080fd5b505af1158015610d79573d6000803e3d6000fd5b50505050600261012f546109f49190611fe2565b33610d96610dce565b6001600160a01b031614610dbc5760405162461bcd60e51b81526004016105d4906120be565b610dc8848484846115d6565b50505050565b6097546001600160a01b031690565b600054610100900460ff1680610df6575060005460ff16155b610e125760405162461bcd60e51b81526004016105d490612163565b600054610100900460ff16158015610e34576000805461ffff19166101011790555b610e3c611601565b610e4461166c565b610e4f6000846116cc565b610e67620927c06289544060036402540be4006115d6565b61013280546001600160a01b0319166001600160a01b038416179055835115610e9357610e9384610ed5565b8015610dc8576000805461ff001916905550505050565b600091825260fb602090815260408084206001600160a01b0393909316845291905290205460ff1690565b33610ede610dce565b6001600160a01b031614610f045760405162461bcd60e51b81526004016105d4906120be565b60005b8151811015610fca57610f32828281518110610f2557610f256120f3565b6020026020010151610595565b610fb857610f67600080516020612299833981519152838381518110610f5a57610f5a6120f3565b6020026020010151610783565b61012d828281518110610f7c57610f7c6120f3565b60209081029190910181015182546001810184556000938452919092200180546001600160a01b0319166001600160a01b039092169190911790555b80610fc281612109565b915050610f07565b5080604051610fd99190612124565b604051908190038120907f45486b220020cc2482ad1a5e0ae4d5f0b5372cea1b48173f6273c616a504726990600090a250565b61101582610580565b61101f813361128d565b6107a08383611377565b6109e4816103698160326121b1565b61104133610595565b61105d5760405162461bcd60e51b81526004016105d490611f7b565b610132546040516363513b6160e11b81526001600160a01b039091169063c6a276c290610d4b908490600401611cd7565b33611097610dce565b6001600160a01b0316146110bd5760405162461bcd60e51b81526004016105d4906120be565b6001600160a01b0381166111225760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105d4565b6108e581611584565b61113433610595565b6111505760405162461bcd60e51b81526004016105d490611f7b565b61013254604051630c477e0b60e11b81526001600160a01b039091169063188efc1690610d4b908490600401611cd7565b60016101336000611190611570565b81526020019081526020016000206000836001600160a01b03166001600160a01b0316815260200190815260200160002060008282546111d091906121b1565b90915550600090506111e182610595565b6111ee5761012e546111f3565b61012f545b9050600061120b6001600160a01b03841631836121c9565b6040519091506001600160a01b0384169082156108fc029083906000818181858888f19350505050158015611244573d6000803e3d6000fd5b50826001600160a01b03167ff60e56b8021f6ac77bd50d4acdbed9ad9e85107144d43090774a9ebe5ffed9858260405161128091815260200190565b60405180910390a2505050565b6112978282610eaa565b610674576112af816001600160a01b031660146116d6565b6112ba8360206116d6565b6040516020016112cb9291906121e0565b60408051601f198184030181529082905262461bcd60e51b82526105d49160040161224f565b6112fb8282610eaa565b61067457600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff191660011790556113333390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6113818282610eaa565b1561067457600082815260fb602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000805160206122d9833981519152546001600160a01b031690565b33611403610dce565b6001600160a01b0316146108e55760405162461bcd60e51b81526004016105d4906120be565b60006114336113de565b905061143e84611878565b60008351118061144b5750815b1561145c5761145a848461190b565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff1661156957805460ff191660011781556040516114d79086906114a8908590602401611cd7565b60408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b17905261190b565b50805460ff191681556114e86113de565b6001600160a01b0316826001600160a01b0316146115605760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b60648201526084016105d4565b611569856119f6565b5050505050565b600061157f6201518042611fe2565b905090565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6101318190556115e68185612262565b61012e556115f48184612262565b61012f5550610130555050565b600054610100900460ff168061161a575060005460ff16155b6116365760405162461bcd60e51b81526004016105d490612163565b600054610100900460ff16158015611658576000805461ffff19166101011790555b80156108e5576000805461ff001916905550565b600054610100900460ff1680611685575060005460ff16155b6116a15760405162461bcd60e51b81526004016105d490612163565b600054610100900460ff161580156116c3576000805461ffff19166101011790555b61165833611584565b61067482826112f1565b606060006116e5836002612262565b6116f09060026121b1565b6001600160401b0381111561170757611707611ae4565b6040519080825280601f01601f191660200182016040528015611731576020820181803683370190505b509050600360fc1b8160008151811061174c5761174c6120f3565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061177b5761177b6120f3565b60200101906001600160f81b031916908160001a905350600061179f846002612262565b6117aa9060016121b1565b90505b6001811115611822576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106117de576117de6120f3565b1a60f81b8282815181106117f4576117f46120f3565b60200101906001600160f81b031916908160001a90535060049490941c9361181b81612281565b90506117ad565b5083156118715760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105d4565b9392505050565b803b6118dc5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105d4565b6000805160206122d983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b61196a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105d4565b600080846001600160a01b0316846040516119859190612004565b600060405180830381855af49150503d80600081146119c0576040519150601f19603f3d011682016040523d82523d6000602084013e6119c5565b606091505b50915091506119ed82826040518060600160405280602781526020016122f960279139611a36565b95945050505050565b6119ff81611878565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60608315611a45575081611871565b825115611a555782518084602001fd5b8160405162461bcd60e51b81526004016105d4919061224f565b600060208284031215611a8157600080fd5b81356001600160e01b03198116811461187157600080fd5b600060208284031215611aab57600080fd5b5035919050565b6001600160a01b03811681146108e557600080fd5b600060208284031215611ad957600080fd5b813561187181611ab2565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b2257611b22611ae4565b604052919050565b60006001600160401b03831115611b4357611b43611ae4565b611b56601f8401601f1916602001611afa565b9050828152838383011115611b6a57600080fd5b828260208301376000602084830101529392505050565b60008060408385031215611b9457600080fd5b8235611b9f81611ab2565b915060208301356001600160401b03811115611bba57600080fd5b8301601f81018513611bcb57600080fd5b611bda85823560208401611b2a565b9150509250929050565b600082601f830112611bf557600080fd5b61187183833560208501611b2a565b600080600060608486031215611c1957600080fd5b8335611c2481611ab2565b925060208401356001600160401b03811115611c3f57600080fd5b611c4b86828701611be4565b925050604084013590509250925092565b60005b83811015611c77578181015183820152602001611c5f565b83811115610dc85750506000910152565b60008151808452611ca0816020860160208601611c5c565b601f01601f19169290920160200192915050565b8215158152604060208201526000611ccf6040830184611c88565b949350505050565b6001600160a01b0391909116815260200190565b60008060408385031215611cfe57600080fd5b823591506020830135611d1081611ab2565b809150509250929050565b60006001600160401b03821115611d3457611d34611ae4565b5060051b60200190565b60006020808385031215611d5157600080fd5b82356001600160401b03811115611d6757600080fd5b8301601f81018513611d7857600080fd5b8035611d8b611d8682611d1b565b611afa565b81815260059190911b82018301908381019087831115611daa57600080fd5b928401925b82841015611dd1578335611dc281611ab2565b82529284019290840190611daf565b979650505050505050565b60008060408385031215611def57600080fd5b8235611dfa81611ab2565b915060208301356001600160401b03811115611e1557600080fd5b611bda85828601611be4565b60008060408385031215611e3457600080fd5b50508035926020909101359150565b60008060008060808587031215611e5957600080fd5b5050823594602084013594506040840135936060013592509050565b600082601f830112611e8657600080fd5b81356020611e96611d8683611d1b565b82815260059290921b84018101918181019086841115611eb557600080fd5b8286015b84811015611ed9578035611ecc81611ab2565b8352918301918301611eb9565b509695505050505050565b600080600060608486031215611ef957600080fd5b83356001600160401b03811115611f0f57600080fd5b611f1b86828701611e75565b9350506020840135611f2c81611ab2565b91506040840135611f3c81611ab2565b809150509250925092565b600060208284031215611f5957600080fd5b81356001600160401b03811115611f6f57600080fd5b611ccf84828501611e75565b60208082526013908201527221b0b63632b91034b9903737ba1030b236b4b760691b604082015260600190565b6001600160a01b0383168152604060208201819052600090611ccf90830184611c88565b634e487b7160e01b600052601160045260246000fd5b600082611fff57634e487b7160e01b600052601260045260246000fd5b500490565b60008251612016818460208701611c5c565b9190910192915050565b6060815260006120336060830186611c88565b602083019490945250901515604090910152919050565b6020808252602c908201526000805160206122b983398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206122b983398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060001982141561211d5761211d611fcc565b5060010190565b815160009082906020808601845b838110156121575781516001600160a01b031685529382019390820190600101612132565b50929695505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600082198211156121c4576121c4611fcc565b500190565b6000828210156121db576121db611fcc565b500390565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351612212816017850160208801611c5c565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612243816028840160208801611c5c565b01602801949350505050565b6020815260006118716020830184611c88565b600081600019048311821515161561227c5761227c611fcc565b500290565b60008161229057612290611fcc565b50600019019056febf18f3bdda8a65fc5ec294c2c787f805aceec15eed9fe17fdb6588866be113dc46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220effa031a9bb44c9166af430e840425d44c9ecd4973b8e0e44b12f1877ce66d9064736f6c63430008080033";
734
+ "0x60a06040523060601b60805234801561001757600080fd5b5060805160601c61235561004b6000396000818161082a0152818161086a01528181610ae10152610b2101526123556000f3fe60806040526004361061016c5760003560e01c806301ffc9a714610178578063133d93a1146101ad578063248a9ca3146101dd57806324d7806c146101fd5780632beeaca41461021d5780632bf164581461023f5780632c159a1a1461026d5780632f2ff15d1461029b57806336568abe146102bb5780633659cfe6146102db5780633771dcf8146102fb578063377e11e01461031b5780634f1ef2861461033b5780635fc944e91461034e578063715018a61461036e57806378c8cda7146103835780637e2c1355146103a35780638da5cb5b146103c357806390482d72146103d857806391d14854146103f85780639c54df6414610418578063a217fddf14610438578063c48924961461044d578063d547741f14610464578063db62683814610484578063e6ea3939146104a4578063eb91e651146104bb578063f2fde38b146104db578063f3da9f05146104fb578063f9f92be414610512578063fe173b971461053257600080fd5b3661017357005b600080fd5b34801561018457600080fd5b50610198610193366004611a6f565b610549565b60405190151581526020015b60405180910390f35b3480156101b957600080fd5b506101cf60008051602061229983398151915281565b6040519081526020016101a4565b3480156101e957600080fd5b506101cf6101f8366004611a99565b610580565b34801561020957600080fd5b50610198610218366004611ac7565b610595565b34801561022957600080fd5b5061023d610238366004611b81565b6105af565b005b34801561024b57600080fd5b5061025f61025a366004611c04565b610678565b6040516101a4929190611cb4565b34801561027957600080fd5b506101325461028e906001600160a01b031681565b6040516101a49190611cd7565b3480156102a757600080fd5b5061023d6102b6366004611ceb565b610783565b3480156102c757600080fd5b5061023d6102d6366004611ceb565b6107a5565b3480156102e757600080fd5b5061023d6102f6366004611ac7565b61081f565b34801561030757600080fd5b5061023d610316366004611ac7565b6108e8565b34801561032757600080fd5b5061023d610336366004611d3e565b610a16565b61023d610349366004611ddc565b610ad6565b34801561035a57600080fd5b5061023d610369366004611e21565b610b8c565b34801561037a57600080fd5b5061023d610cba565b34801561038f57600080fd5b5061023d61039e366004611ac7565b610cf5565b3480156103af57600080fd5b5061023d6103be366004611e43565b610d8d565b3480156103cf57600080fd5b5061028e610dce565b3480156103e457600080fd5b5061023d6103f3366004611ee4565b610ddd565b34801561040457600080fd5b50610198610413366004611ceb565b610eaa565b34801561042457600080fd5b5061023d610433366004611f47565b610ed5565b34801561044457600080fd5b506101cf600081565b34801561045957600080fd5b506101cf61012f5481565b34801561047057600080fd5b5061023d61047f366004611ceb565b61100c565b34801561049057600080fd5b5061023d61049f366004611a99565b611029565b3480156104b057600080fd5b506101cf61012e5481565b3480156104c757600080fd5b5061023d6104d6366004611ac7565b611038565b3480156104e757600080fd5b5061023d6104f6366004611ac7565b61108e565b34801561050757600080fd5b506101cf6101305481565b34801561051e57600080fd5b5061023d61052d366004611ac7565b61112b565b34801561053e57600080fd5b506101cf6101315481565b60006001600160e01b03198216637965db0b60e01b148061057a57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600090815260fb602052604090206001015490565b600061057a60008051602061229983398151915283610eaa565b6105b833610595565b6105dd5760405162461bcd60e51b81526004016105d490611f7b565b60405180910390fd5b61013254604051631b02709960e01b81526001600160a01b0390911690631b027099906106109085908590600401611fa8565b600060405180830381600087803b15801561062a57600080fd5b505af115801561063e573d6000803e3d6000fd5b50505050600261012f546106529190611fe2565b333111801590610666575061066633610595565b156106745761067433611181565b5050565b6000606061068533610595565b6106a15760405162461bcd60e51b81526004016105d490611f7b565b846001600160a01b031683856040516106ba9190612004565b60006040518083038185875af1925050503d80600081146106f7576040519150601f19603f3d011682016040523d82523d6000602084013e6106fc565b606091505b5060405191935091506001600160a01b038616907f534b52c783549f909f9e743120524d0b7154058e4a54cdc895c2c0b587a1c7e09061074190879087908790612020565b60405180910390a2600261012f546107599190611fe2565b33311180159061076d575061076d33610595565b1561077b5761077b33611181565b935093915050565b61078c82610580565b610796813361128d565b6107a083836112f1565b505050565b6001600160a01b03811633146108155760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016105d4565b6106748282611377565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156108685760405162461bcd60e51b81526004016105d49061204a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661089a6113de565b6001600160a01b0316146108c05760405162461bcd60e51b81526004016105d490612084565b6108c9816113fa565b604080516000808252602082019092526108e591839190611429565b50565b6108f133610595565b61090d5760405162461bcd60e51b81526004016105d490611f7b565b61013054610133600061091e611570565b81526020019081526020016000206000836001600160a01b03166001600160a01b0316815260200190815260200160002054106109b65760405162461bcd60e51b815260206004820152603060248201527f557365722077616c6c657420686173206265656e20746f7070656420746f6f2060448201526f6d616e792074696d657320746f64617960801b60648201526084016105d4565b600461012e546109c69190611fe2565b816001600160a01b031631106109db576109e4565b6109e481611181565b600261012f546109f49190611fe2565b333111801590610a085750610a0833610595565b156108e5576108e533611181565b33610a1f610dce565b6001600160a01b031614610a455760405162461bcd60e51b81526004016105d4906120be565b60005b8151811015610a9457610a82600080516020612299833981519152838381518110610a7557610a756120f3565b602002602001015161100c565b80610a8c81612109565b915050610a48565b5080604051610aa39190612124565b604051908190038120907fd5e6894641b5030a67e637ab2e12da64d8aec689f8bd1328de2b04d6a439c81090600090a250565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610b1f5760405162461bcd60e51b81526004016105d49061204a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b516113de565b6001600160a01b031614610b775760405162461bcd60e51b81526004016105d490612084565b610b80826113fa565b61067482826001611429565b61012d548210610bd45760405162461bcd60e51b815260206004820152601360248201527241646d696e206c69737420697320656d70747960681b60448201526064016105d4565b815b61012d5481108015610be757508181105b15610ca957610c1d61012d8281548110610c0357610c036120f3565b6000918252602090912001546001600160a01b0316610595565b8015610c615750600261012f54610c349190611fe2565b61012d8281548110610c4857610c486120f3565b6000918252602090912001546001600160a01b03163111155b15610c9757610c9761012d8281548110610c7d57610c7d6120f3565b6000918252602090912001546001600160a01b0316611181565b80610ca181612109565b915050610bd6565b50600261012f546106529190611fe2565b33610cc3610dce565b6001600160a01b031614610ce95760405162461bcd60e51b81526004016105d4906120be565b610cf36000611584565b565b610cfe33610595565b610d1a5760405162461bcd60e51b81526004016105d490611f7b565b6101325460405163291d954960e01b81526001600160a01b039091169063291d954990610d4b908490600401611cd7565b600060405180830381600087803b158015610d6557600080fd5b505af1158015610d79573d6000803e3d6000fd5b50505050600261012f546109f49190611fe2565b33610d96610dce565b6001600160a01b031614610dbc5760405162461bcd60e51b81526004016105d4906120be565b610dc8848484846115d6565b50505050565b6097546001600160a01b031690565b600054610100900460ff1680610df6575060005460ff16155b610e125760405162461bcd60e51b81526004016105d490612163565b600054610100900460ff16158015610e34576000805461ffff19166101011790555b610e3c611601565b610e4461166c565b610e4f6000846116cc565b610e67620927c06289544060036402540be4006115d6565b61013280546001600160a01b0319166001600160a01b038416179055835115610e9357610e9384610ed5565b8015610dc8576000805461ff001916905550505050565b600091825260fb602090815260408084206001600160a01b0393909316845291905290205460ff1690565b33610ede610dce565b6001600160a01b031614610f045760405162461bcd60e51b81526004016105d4906120be565b60005b8151811015610fca57610f32828281518110610f2557610f256120f3565b6020026020010151610595565b610fb857610f67600080516020612299833981519152838381518110610f5a57610f5a6120f3565b6020026020010151610783565b61012d828281518110610f7c57610f7c6120f3565b60209081029190910181015182546001810184556000938452919092200180546001600160a01b0319166001600160a01b039092169190911790555b80610fc281612109565b915050610f07565b5080604051610fd99190612124565b604051908190038120907f45486b220020cc2482ad1a5e0ae4d5f0b5372cea1b48173f6273c616a504726990600090a250565b61101582610580565b61101f813361128d565b6107a08383611377565b6109e4816103698160326121b1565b61104133610595565b61105d5760405162461bcd60e51b81526004016105d490611f7b565b610132546040516363513b6160e11b81526001600160a01b039091169063c6a276c290610d4b908490600401611cd7565b33611097610dce565b6001600160a01b0316146110bd5760405162461bcd60e51b81526004016105d4906120be565b6001600160a01b0381166111225760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016105d4565b6108e581611584565b61113433610595565b6111505760405162461bcd60e51b81526004016105d490611f7b565b61013254604051630c477e0b60e11b81526001600160a01b039091169063188efc1690610d4b908490600401611cd7565b60016101336000611190611570565b81526020019081526020016000206000836001600160a01b03166001600160a01b0316815260200190815260200160002060008282546111d091906121b1565b90915550600090506111e182610595565b6111ee5761012e546111f3565b61012f545b9050600061120b6001600160a01b03841631836121c9565b6040519091506001600160a01b0384169082156108fc029083906000818181858888f19350505050158015611244573d6000803e3d6000fd5b50826001600160a01b03167ff60e56b8021f6ac77bd50d4acdbed9ad9e85107144d43090774a9ebe5ffed9858260405161128091815260200190565b60405180910390a2505050565b6112978282610eaa565b610674576112af816001600160a01b031660146116d6565b6112ba8360206116d6565b6040516020016112cb9291906121e0565b60408051601f198184030181529082905262461bcd60e51b82526105d49160040161224f565b6112fb8282610eaa565b61067457600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff191660011790556113333390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6113818282610eaa565b1561067457600082815260fb602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000805160206122d9833981519152546001600160a01b031690565b33611403610dce565b6001600160a01b0316146108e55760405162461bcd60e51b81526004016105d4906120be565b60006114336113de565b905061143e84611878565b60008351118061144b5750815b1561145c5761145a848461190b565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff1661156957805460ff191660011781556040516114d79086906114a8908590602401611cd7565b60408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b17905261190b565b50805460ff191681556114e86113de565b6001600160a01b0316826001600160a01b0316146115605760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b60648201526084016105d4565b611569856119f6565b5050505050565b600061157f6201518042611fe2565b905090565b609780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6101318190556115e68185612262565b61012e556115f48184612262565b61012f5550610130555050565b600054610100900460ff168061161a575060005460ff16155b6116365760405162461bcd60e51b81526004016105d490612163565b600054610100900460ff16158015611658576000805461ffff19166101011790555b80156108e5576000805461ff001916905550565b600054610100900460ff1680611685575060005460ff16155b6116a15760405162461bcd60e51b81526004016105d490612163565b600054610100900460ff161580156116c3576000805461ffff19166101011790555b61165833611584565b61067482826112f1565b606060006116e5836002612262565b6116f09060026121b1565b6001600160401b0381111561170757611707611ae4565b6040519080825280601f01601f191660200182016040528015611731576020820181803683370190505b509050600360fc1b8160008151811061174c5761174c6120f3565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061177b5761177b6120f3565b60200101906001600160f81b031916908160001a905350600061179f846002612262565b6117aa9060016121b1565b90505b6001811115611822576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106117de576117de6120f3565b1a60f81b8282815181106117f4576117f46120f3565b60200101906001600160f81b031916908160001a90535060049490941c9361181b81612281565b90506117ad565b5083156118715760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016105d4565b9392505050565b803b6118dc5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016105d4565b6000805160206122d983398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b61196a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016105d4565b600080846001600160a01b0316846040516119859190612004565b600060405180830381855af49150503d80600081146119c0576040519150601f19603f3d011682016040523d82523d6000602084013e6119c5565b606091505b50915091506119ed82826040518060600160405280602781526020016122f960279139611a36565b95945050505050565b6119ff81611878565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60608315611a45575081611871565b825115611a555782518084602001fd5b8160405162461bcd60e51b81526004016105d4919061224f565b600060208284031215611a8157600080fd5b81356001600160e01b03198116811461187157600080fd5b600060208284031215611aab57600080fd5b5035919050565b6001600160a01b03811681146108e557600080fd5b600060208284031215611ad957600080fd5b813561187181611ab2565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611b2257611b22611ae4565b604052919050565b60006001600160401b03831115611b4357611b43611ae4565b611b56601f8401601f1916602001611afa565b9050828152838383011115611b6a57600080fd5b828260208301376000602084830101529392505050565b60008060408385031215611b9457600080fd5b8235611b9f81611ab2565b915060208301356001600160401b03811115611bba57600080fd5b8301601f81018513611bcb57600080fd5b611bda85823560208401611b2a565b9150509250929050565b600082601f830112611bf557600080fd5b61187183833560208501611b2a565b600080600060608486031215611c1957600080fd5b8335611c2481611ab2565b925060208401356001600160401b03811115611c3f57600080fd5b611c4b86828701611be4565b925050604084013590509250925092565b60005b83811015611c77578181015183820152602001611c5f565b83811115610dc85750506000910152565b60008151808452611ca0816020860160208601611c5c565b601f01601f19169290920160200192915050565b8215158152604060208201526000611ccf6040830184611c88565b949350505050565b6001600160a01b0391909116815260200190565b60008060408385031215611cfe57600080fd5b823591506020830135611d1081611ab2565b809150509250929050565b60006001600160401b03821115611d3457611d34611ae4565b5060051b60200190565b60006020808385031215611d5157600080fd5b82356001600160401b03811115611d6757600080fd5b8301601f81018513611d7857600080fd5b8035611d8b611d8682611d1b565b611afa565b81815260059190911b82018301908381019087831115611daa57600080fd5b928401925b82841015611dd1578335611dc281611ab2565b82529284019290840190611daf565b979650505050505050565b60008060408385031215611def57600080fd5b8235611dfa81611ab2565b915060208301356001600160401b03811115611e1557600080fd5b611bda85828601611be4565b60008060408385031215611e3457600080fd5b50508035926020909101359150565b60008060008060808587031215611e5957600080fd5b5050823594602084013594506040840135936060013592509050565b600082601f830112611e8657600080fd5b81356020611e96611d8683611d1b565b82815260059290921b84018101918181019086841115611eb557600080fd5b8286015b84811015611ed9578035611ecc81611ab2565b8352918301918301611eb9565b509695505050505050565b600080600060608486031215611ef957600080fd5b83356001600160401b03811115611f0f57600080fd5b611f1b86828701611e75565b9350506020840135611f2c81611ab2565b91506040840135611f3c81611ab2565b809150509250925092565b600060208284031215611f5957600080fd5b81356001600160401b03811115611f6f57600080fd5b611ccf84828501611e75565b60208082526013908201527221b0b63632b91034b9903737ba1030b236b4b760691b604082015260600190565b6001600160a01b0383168152604060208201819052600090611ccf90830184611c88565b634e487b7160e01b600052601160045260246000fd5b600082611fff57634e487b7160e01b600052601260045260246000fd5b500490565b60008251612016818460208701611c5c565b9190910192915050565b6060815260006120336060830186611c88565b602083019490945250901515604090910152919050565b6020808252602c908201526000805160206122b983398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206122b983398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060001982141561211d5761211d611fcc565b5060010190565b815160009082906020808601845b838110156121575781516001600160a01b031685529382019390820190600101612132565b50929695505050505050565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b600082198211156121c4576121c4611fcc565b500190565b6000828210156121db576121db611fcc565b500390565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b815260008351612212816017850160208801611c5c565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612243816028840160208801611c5c565b01602801949350505050565b6020815260006118716020830184611c88565b600081600019048311821515161561227c5761227c611fcc565b500290565b60008161229057612290611fcc565b50600019019056febf18f3bdda8a65fc5ec294c2c787f805aceec15eed9fe17fdb6588866be113dc46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220cf00ba1125c19cfb009678cb08b617c500cdfae47d6ce8d2355424d2a26afa7864736f6c63430008080033";
735
735
 
736
736
  type AdminWalletConstructorParams =
737
737
  | [signer?: Signer]
@@ -202,7 +202,7 @@ const _abi = [
202
202
  ];
203
203
 
204
204
  const _bytecode =
205
- "0x608060405234801561001057600080fd5b50610f99806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806328e964e91461005c578063574c5c93146100b8578063a82415ae146100d9578063a87430ba146100ec578063c59d4847146101a9575b600080fd5b61009e61006a366004610cec565b6001600160a01b031660009081526004602052604081205490546001600160801b0391821692600160801b90910490911690565b604080519283526020830191909152015b60405180910390f35b6100cb6100c6366004610d0e565b610222565b6040519081526020016100af565b6100cb6100e7366004610d0e565b610335565b6101556100fa366004610cec565b6004602052600090815260409020805460018201546002909201546001600160801b0380831693600160801b9384900482169381831693918190048316928216916001600160401b03918104821691600160c01b9091041687565b604080516001600160801b039889168152968816602088015294871694860194909452918516606085015290931660808301526001600160401b0392831660a08301529190911660c082015260e0016100af565b600354600054600154600254604080519485526001600160801b038085166020870152600160801b948590048116918601919091528083166060860152918390048216608085015290811660a08401529081046001600160401b031660c0830152600160c01b900460ff1660e0820152610100016100af565b600061022f8484846105c2565b6001600160a01b03851660009081526004602052604090205461025e9086906001600160801b03166001610743565b6001600160a01b03851660009081526004602052604081206001810180546001600160801b0380821690925560029092018054600160801b9093048216938493919290916102ae91859116610d5d565b92506101000a8154816001600160801b0302191690836001600160801b031602179055508060008054906101000a90046001600160801b03166102f19190610d5d565b600080546001600160801b0319166001600160801b0392909216919091179055610322662386f26fc1000082610d9e565b6001600160801b03169695505050505050565b6001600160a01b0384166000908152600460209081526040808320815160e08101835281546001600160801b038082168352600160801b9182900481169583019590955260018084015480871695840195909552938190048516606083015260029092015480851660808301526001600160401b03928104831660a0830152600160c01b900490911660c082015260035491549092849116158015906103db5750854310155b80156103e75750438510155b1561059d57600254600090610405906001600160801b031643610dc4565b9050600061041a89662386f26fc10000610ddb565b6104249083610ddb565b9050600080600061043488610bda565b600254929550909350915061045490600160c01b900460ff16600a610ee0565b60015461046a91906001600160801b0316610ddb565b61047f85676765c793fa10079d601b1b610ddb565b6104899190610eef565b6104939088610f03565b96508783156105965780604001516001600160801b0316676765c793fa10079d601b1b89600260189054906101000a900460ff16600a6104d39190610ee0565b84602001516001600160801b03166104eb9190610ddb565b6104f59190610ddb565b6104ff9190610eef565b6105099190610dc4565b9650600061051f85670de0b6b3a7640000610ddb565b61053489676765c793fa10079d601b1b610ddb565b61053e9190610eef565b905064174876e80081610552856064610ddb565b600a61055f886064610ddb565b61056a906005610ddb565b6105749190610eef565b61057e9190610f03565b6105889190610ddb565b6105929190610eef565b9750505b5050505050505b8083606001516001600160801b03166105b69190610f03565b98975050505050505050565b6001546001600160801b03166105f2575050600280546001600160801b031916436001600160801b031617905550565b81431015801561060c57506002546001600160801b031682115b1561062d57600280546001600160801b0319166001600160801b0384161790555b6002546000906001600160801b03168311801561064a5750824310155b61065f576002546001600160801b0316610661565b825b905060008243116106725743610674565b825b9050838110806106845750828210155b15610690575050505050565b600061069c8383610dc4565b905060006106b187662386f26fc10000610ddb565b6106bb9083610ddb565b6002549091506106d690600160c01b900460ff16600a610ee0565b6001546106ec91906001600160801b0316610ddb565b61070182676765c793fa10079d601b1b610ddb565b61070b9190610eef565b6003546107189190610f03565b6003555050600280546001600160801b0319166001600160801b039290921691909117905550505050565b6001600160a01b038316600090815260046020526040902080546001600160801b0380821691600160801b9004168015610955576040805160e08101825284546001600160801b038082168352600160801b91829004811660208401526001870154808216948401949094529281900483166060830152600286015492831660808301526001600160401b03908304811660a0830152600160c01b90920490911660c0820152600090819081906107f990610bda565b9250925092508260001461094d5760018601546003546002546000926001600160801b031691676765c793fa10079d601b1b9161084190600160c01b900460ff16600a610ee0565b61084b9089610ddb565b6108559190610ddb565b61085f9190610eef565b6108699190610dc4565b905060008461087c83633b9aca00610ddb565b6108869190610eef565b905064174876e8008161089a856064610ddb565b600a6108a7886064610ddb565b6108b2906005610ddb565b6108bc9190610eef565b6108c69190610f03565b6108d09190610ddb565b6108da9190610eef565b60018901549092506108fd908390600160801b90046001600160801b0316610f03565b600189810180546001600160801b03908116600160801b948216850217909155905461092d928592910416610f03565b600180546001600160801b03928316600160801b02921691909117905550505b505050610978565b6002830180546001600160c01b0316600160c01b436001600160401b0316021790555b818511610a76576002830180546001600160c01b0316600160c01b436001600160401b0316021790558115610a715782546000908390600160801b90046001600160801b03166109c88883610dc4565b6109d29190610ddb565b6109dc9190610eef565b845490915081908590601090610a03908490600160801b90046001600160801b0316610f1b565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555080600160008282829054906101000a90046001600160801b0316610a4b9190610f1b565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550505b610b17565b83610b1757610a858286610dc4565b83548490601090610aa7908490600160801b90046001600160801b0316610d5d565b92506101000a8154816001600160801b0302191690836001600160801b031602179055508185610ad79190610dc4565b60018054600090610af29084906001600160801b0316610d5d565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b60028381018054600160801b600160c01b031916600160801b436001600160401b03160217905583546001600160801b0319166001600160801b0387161784556003549054676765c793fa10079d601b1b9190610b7f90600160c01b900460ff16600a610ee0565b8554610b9b9190600160801b90046001600160801b0316610ddb565b610ba59190610ddb565b610baf9190610eef565b60019390930180546001600160801b0319166001600160801b03909416939093179092555050505050565b6000806000808460c001518560a00151610bf49190610f43565b6001600160401b0316905060008560c001516001600160401b031643610c1a9190610dc4565b600254600160801b90046001600160401b031610610c4f5760c0860151610c4a906001600160401b031643610dc4565b610c63565b600254600160801b90046001600160401b03165b905060008660a001516001600160401b031643610c809190610dc4565b600254909150600090600160801b90046001600160401b0316841015610caf57610caa8484610dc4565b610cb2565b60005b90506000610cc08284610dc4565b9299919850919650945050505050565b80356001600160a01b0381168114610ce757600080fd5b919050565b600060208284031215610cfe57600080fd5b610d0782610cd0565b9392505050565b60008060008060808587031215610d2457600080fd5b610d2d85610cd0565b966020860135965060408601359560600135945092505050565b634e487b7160e01b600052601160045260246000fd5b60006001600160801b03828116848216808303821115610d7f57610d7f610d47565b01949350505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160801b0383811680610db857610db8610d88565b92169190910492915050565b600082821015610dd657610dd6610d47565b500390565b6000816000190483118215151615610df557610df5610d47565b500290565b600181815b80851115610e35578160001904821115610e1b57610e1b610d47565b80851615610e2857918102915b93841c9390800290610dff565b509250929050565b600082610e4c57506001610eda565b81610e5957506000610eda565b8160018114610e6f5760028114610e7957610e95565b6001915050610eda565b60ff841115610e8a57610e8a610d47565b50506001821b610eda565b5060208310610133831016604e8410600b8410161715610eb8575081810a610eda565b610ec28383610dfa565b8060001904821115610ed657610ed6610d47565b0290505b92915050565b6000610d0760ff841683610e3d565b600082610efe57610efe610d88565b500490565b60008219821115610f1657610f16610d47565b500190565b60006001600160801b0383811690831681811015610f3b57610f3b610d47565b039392505050565b60006001600160401b0383811690831681811015610f3b57610f3b610d4756fea26469706673582212207707a96f99868941bf2bcb55d713abcb3c75a99d37d9598bd7206c6b1c1f999164736f6c63430008080033";
205
+ "0x608060405234801561001057600080fd5b50610f99806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806328e964e91461005c578063574c5c93146100b8578063a82415ae146100d9578063a87430ba146100ec578063c59d4847146101a9575b600080fd5b61009e61006a366004610cec565b6001600160a01b031660009081526004602052604081205490546001600160801b0391821692600160801b90910490911690565b604080519283526020830191909152015b60405180910390f35b6100cb6100c6366004610d0e565b610222565b6040519081526020016100af565b6100cb6100e7366004610d0e565b610335565b6101556100fa366004610cec565b6004602052600090815260409020805460018201546002909201546001600160801b0380831693600160801b9384900482169381831693918190048316928216916001600160401b03918104821691600160c01b9091041687565b604080516001600160801b039889168152968816602088015294871694860194909452918516606085015290931660808301526001600160401b0392831660a08301529190911660c082015260e0016100af565b600354600054600154600254604080519485526001600160801b038085166020870152600160801b948590048116918601919091528083166060860152918390048216608085015290811660a08401529081046001600160401b031660c0830152600160c01b900460ff1660e0820152610100016100af565b600061022f8484846105c2565b6001600160a01b03851660009081526004602052604090205461025e9086906001600160801b03166001610743565b6001600160a01b03851660009081526004602052604081206001810180546001600160801b0380821690925560029092018054600160801b9093048216938493919290916102ae91859116610d5d565b92506101000a8154816001600160801b0302191690836001600160801b031602179055508060008054906101000a90046001600160801b03166102f19190610d5d565b600080546001600160801b0319166001600160801b0392909216919091179055610322662386f26fc1000082610d9e565b6001600160801b03169695505050505050565b6001600160a01b0384166000908152600460209081526040808320815160e08101835281546001600160801b038082168352600160801b9182900481169583019590955260018084015480871695840195909552938190048516606083015260029092015480851660808301526001600160401b03928104831660a0830152600160c01b900490911660c082015260035491549092849116158015906103db5750854310155b80156103e75750438510155b1561059d57600254600090610405906001600160801b031643610dc4565b9050600061041a89662386f26fc10000610ddb565b6104249083610ddb565b9050600080600061043488610bda565b600254929550909350915061045490600160c01b900460ff16600a610ee0565b60015461046a91906001600160801b0316610ddb565b61047f85676765c793fa10079d601b1b610ddb565b6104899190610eef565b6104939088610f03565b96508783156105965780604001516001600160801b0316676765c793fa10079d601b1b89600260189054906101000a900460ff16600a6104d39190610ee0565b84602001516001600160801b03166104eb9190610ddb565b6104f59190610ddb565b6104ff9190610eef565b6105099190610dc4565b9650600061051f85670de0b6b3a7640000610ddb565b61053489676765c793fa10079d601b1b610ddb565b61053e9190610eef565b905064174876e80081610552856064610ddb565b600a61055f886064610ddb565b61056a906005610ddb565b6105749190610eef565b61057e9190610f03565b6105889190610ddb565b6105929190610eef565b9750505b5050505050505b8083606001516001600160801b03166105b69190610f03565b98975050505050505050565b6001546001600160801b03166105f2575050600280546001600160801b031916436001600160801b031617905550565b81431015801561060c57506002546001600160801b031682115b1561062d57600280546001600160801b0319166001600160801b0384161790555b6002546000906001600160801b03168311801561064a5750824310155b61065f576002546001600160801b0316610661565b825b905060008243116106725743610674565b825b9050838110806106845750828210155b15610690575050505050565b600061069c8383610dc4565b905060006106b187662386f26fc10000610ddb565b6106bb9083610ddb565b6002549091506106d690600160c01b900460ff16600a610ee0565b6001546106ec91906001600160801b0316610ddb565b61070182676765c793fa10079d601b1b610ddb565b61070b9190610eef565b6003546107189190610f03565b6003555050600280546001600160801b0319166001600160801b039290921691909117905550505050565b6001600160a01b038316600090815260046020526040902080546001600160801b0380821691600160801b9004168015610955576040805160e08101825284546001600160801b038082168352600160801b91829004811660208401526001870154808216948401949094529281900483166060830152600286015492831660808301526001600160401b03908304811660a0830152600160c01b90920490911660c0820152600090819081906107f990610bda565b9250925092508260001461094d5760018601546003546002546000926001600160801b031691676765c793fa10079d601b1b9161084190600160c01b900460ff16600a610ee0565b61084b9089610ddb565b6108559190610ddb565b61085f9190610eef565b6108699190610dc4565b905060008461087c83633b9aca00610ddb565b6108869190610eef565b905064174876e8008161089a856064610ddb565b600a6108a7886064610ddb565b6108b2906005610ddb565b6108bc9190610eef565b6108c69190610f03565b6108d09190610ddb565b6108da9190610eef565b60018901549092506108fd908390600160801b90046001600160801b0316610f03565b600189810180546001600160801b03908116600160801b948216850217909155905461092d928592910416610f03565b600180546001600160801b03928316600160801b02921691909117905550505b505050610978565b6002830180546001600160c01b0316600160c01b436001600160401b0316021790555b818511610a76576002830180546001600160c01b0316600160c01b436001600160401b0316021790558115610a715782546000908390600160801b90046001600160801b03166109c88883610dc4565b6109d29190610ddb565b6109dc9190610eef565b845490915081908590601090610a03908490600160801b90046001600160801b0316610f1b565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555080600160008282829054906101000a90046001600160801b0316610a4b9190610f1b565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550505b610b17565b83610b1757610a858286610dc4565b83548490601090610aa7908490600160801b90046001600160801b0316610d5d565b92506101000a8154816001600160801b0302191690836001600160801b031602179055508185610ad79190610dc4565b60018054600090610af29084906001600160801b0316610d5d565b92506101000a8154816001600160801b0302191690836001600160801b031602179055505b60028381018054600160801b600160c01b031916600160801b436001600160401b03160217905583546001600160801b0319166001600160801b0387161784556003549054676765c793fa10079d601b1b9190610b7f90600160c01b900460ff16600a610ee0565b8554610b9b9190600160801b90046001600160801b0316610ddb565b610ba59190610ddb565b610baf9190610eef565b60019390930180546001600160801b0319166001600160801b03909416939093179092555050505050565b6000806000808460c001518560a00151610bf49190610f43565b6001600160401b0316905060008560c001516001600160401b031643610c1a9190610dc4565b600254600160801b90046001600160401b031610610c4f5760c0860151610c4a906001600160401b031643610dc4565b610c63565b600254600160801b90046001600160401b03165b905060008660a001516001600160401b031643610c809190610dc4565b600254909150600090600160801b90046001600160401b0316841015610caf57610caa8484610dc4565b610cb2565b60005b90506000610cc08284610dc4565b9299919850919650945050505050565b80356001600160a01b0381168114610ce757600080fd5b919050565b600060208284031215610cfe57600080fd5b610d0782610cd0565b9392505050565b60008060008060808587031215610d2457600080fd5b610d2d85610cd0565b966020860135965060408601359560600135945092505050565b634e487b7160e01b600052601160045260246000fd5b60006001600160801b03828116848216808303821115610d7f57610d7f610d47565b01949350505050565b634e487b7160e01b600052601260045260246000fd5b60006001600160801b0383811680610db857610db8610d88565b92169190910492915050565b600082821015610dd657610dd6610d47565b500390565b6000816000190483118215151615610df557610df5610d47565b500290565b600181815b80851115610e35578160001904821115610e1b57610e1b610d47565b80851615610e2857918102915b93841c9390800290610dff565b509250929050565b600082610e4c57506001610eda565b81610e5957506000610eda565b8160018114610e6f5760028114610e7957610e95565b6001915050610eda565b60ff841115610e8a57610e8a610d47565b50506001821b610eda565b5060208310610133831016604e8410600b8410161715610eb8575081810a610eda565b610ec28383610dfa565b8060001904821115610ed657610ed6610d47565b0290505b92915050565b6000610d0760ff841683610e3d565b600082610efe57610efe610d88565b500490565b60008219821115610f1657610f16610d47565b500190565b60006001600160801b0383811690831681811015610f3b57610f3b610d47565b039392505050565b60006001600160401b0383811690831681811015610f3b57610f3b610d4756fea2646970667358221220465805dcbf9a20631e838650664773eee4685df7d71770717459f9222672554e64736f6c63430008080033";
206
206
 
207
207
  type BaseShareFieldV2ConstructorParams =
208
208
  | [signer?: Signer]
@@ -258,7 +258,7 @@ const _abi = [
258
258
  ];
259
259
 
260
260
  const _bytecode =
261
- "0x608060405234801561001057600080fd5b50610c34806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a45760003560e01c80631ce720f3146100a957806328e964e9146100cd5780633a6080321461010e5780634a291b0114610125578063574c5c931461012e578063899e1b6c146101415780639c81ff6b1461016c578063a82415ae14610175578063a87430ba14610188578063a9f8d18114610220578063bea2811514610229578063e319828c14610232575b600080fd5b6007546100b69060ff1681565b60405160ff90911681526020015b60405180910390f35b6100f96100db366004610a09565b6001600160a01b031660009081526008602052604081205490549091565b604080519283526020830191909152016100c4565b61011760025481565b6040519081526020016100c4565b61011760015481565b61011761013c366004610a24565b61023b565b600554610154906001600160401b031681565b6040516001600160401b0390911681526020016100c4565b61011760045481565b610117610183366004610a24565b6102c1565b6101df610196366004610a09565b60086020526000908152604090208054600182015460028301546003840154600485015460059095015493949293919290916001600160401b0380821691600160401b90041687565b60408051978852602088019690965294860193909352606085019190915260808401526001600160401b0390811660a08401521660c082015260e0016100c4565b61011760065481565b61011760005481565b61011760035481565b6001600160a01b038416600090815260086020526040812061025e8585856104fb565b61026e86826000015460016105fd565b6003810180546000918290556004830180549192839261028f908490610a73565b90915550506003546102a2908290610a73565b6003556102b6662386f26fc1000082610a8b565b979650505050505050565b6001600160a01b0384166000908152600860209081526040808320815160e08101835281548152600180830154948201949094526002808301549382019390935260038201546060820152600482015460808201526005909101546001600160401b0380821660a0840152600160401b9091041660c0820152905491549091908390158015906103515750854310155b801561035d5750438510155b156104df576000600654436103729190610aad565b9050600061038789662386f26fc10000610ac4565b6103919083610ac4565b905060008060006103a188610924565b60075492955090935091506103ba9060ff16600a610bc7565b6001546103c79190610ac4565b6103dc85676765c793fa10079d601b1b610ac4565b6103e69190610a8b565b6103f09088610a73565b96508783156104d8576040810151600754676765c793fa10079d601b1b908a9061041e9060ff16600a610bc7565b846020015161042d9190610ac4565b6104379190610ac4565b6104419190610a8b565b61044b9190610aad565b9650600061046185670de0b6b3a7640000610ac4565b61047689676765c793fa10079d601b1b610ac4565b6104809190610a8b565b905064174876e80081610494856064610ac4565b600a6104a1886064610ac4565b6104ac906005610ac4565b6104b69190610a8b565b6104c09190610a73565b6104ca9190610ac4565b6104d49190610a8b565b9750505b5050505050505b8083606001516104ef9190610a73565b98975050505050505050565b60015461050b5750504360065550565b81431015801561051c575081600654105b156105275760068290555b60008260065410801561053a5750824310155b61054657600654610548565b825b90506000824311610559574361055b565b825b90508381108061056b5750828210155b15610577575050505050565b60006105838383610aad565b9050600061059887662386f26fc10000610ac4565b6105a29083610ac4565b6007549091506105b69060ff16600a610bc7565b6001546105c39190610ac4565b6105d882676765c793fa10079d601b1b610ac4565b6105e29190610a8b565b6002546105ef9190610a73565b600255505060065550505050565b6001600160a01b03831660009081526008602052604090208054600182015480156107a9576040805160e0810182528454815260018501546020820152600285015491810191909152600384015460608201526004840154608082015260058401546001600160401b0380821660a0840152600160401b9091041660c08201526000908190819061068d90610924565b925092509250826000146107a157600280870154905460075460009291676765c793fa10079d601b1b916106c59060ff16600a610bc7565b6106cf9089610ac4565b6106d99190610ac4565b6106e39190610a8b565b6106ed9190610aad565b9050600061070385670de0b6b3a7640000610ac4565b61071883676765c793fa10079d601b1b610ac4565b6107229190610a8b565b905064174876e80081610736856064610ac4565b600a610743886064610ac4565b61074e906005610ac4565b6107589190610a8b565b6107629190610a73565b61076c9190610ac4565b6107769190610a8b565b91508188600301546107889190610a73565b600389015560045461079b908390610a73565b60045550505b5050506107d0565b600583018054600160401b600160801b031916600160401b436001600160401b0316021790555b81851161086657600583018054600160401b600160801b031916600160401b436001600160401b031602179055811561086157600082846001015487856108179190610aad565b6108219190610ac4565b61082b9190610a8b565b9050808460010160008282546108419190610aad565b92505081905550806001600082825461085a9190610aad565b9091555050505b6108af565b836108af576108758286610aad565b8360010160008282546108889190610a73565b9091555061089890508286610aad565b600160008282546108a99190610a73565b90915550505b6005830180546001600160401b031916436001600160401b0316179055848355600254600754676765c793fa10079d601b1b91906108f19060ff16600a610bc7565b85600101546109009190610ac4565b61090a9190610ac4565b6109149190610a8b565b8360020181905550505050505050565b6000806000808460c001518560a0015161093e9190610bd6565b60055460c08701516001600160401b03928316935060009261096d92811691610968911643610aad565b6109d3565b905060008660a001516001600160401b03164361098a9190610aad565b6005549091506000906001600160401b03168410156109b2576109ad8484610aad565b6109b5565b60005b905060006109c38284610aad565b9299919850919650945050505050565b60008183106109e257816109e4565b825b90505b92915050565b80356001600160a01b0381168114610a0457600080fd5b919050565b600060208284031215610a1b57600080fd5b6109e4826109ed565b60008060008060808587031215610a3a57600080fd5b610a43856109ed565b966020860135965060408601359560600135945092505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610a8657610a86610a5d565b500190565b600082610aa857634e487b7160e01b600052601260045260246000fd5b500490565b600082821015610abf57610abf610a5d565b500390565b6000816000190483118215151615610ade57610ade610a5d565b500290565b600181815b80851115610b1e578160001904821115610b0457610b04610a5d565b80851615610b1157918102915b93841c9390800290610ae8565b509250929050565b600082610b35575060016109e7565b81610b42575060006109e7565b8160018114610b585760028114610b6257610b7e565b60019150506109e7565b60ff841115610b7357610b73610a5d565b50506001821b6109e7565b5060208310610133831016604e8410600b8410161715610ba1575081810a6109e7565b610bab8383610ae3565b8060001904821115610bbf57610bbf610a5d565b029392505050565b60006109e460ff841683610b26565b60006001600160401b0383811690831681811015610bf657610bf6610a5d565b03939250505056fea2646970667358221220980e9177429b2bf1bcf96e3849505b3988a9a75c60c1e8e7d075c536b798a8a464736f6c63430008080033";
261
+ "0x608060405234801561001057600080fd5b50610c34806100206000396000f3fe608060405234801561001057600080fd5b50600436106100a45760003560e01c80631ce720f3146100a957806328e964e9146100cd5780633a6080321461010e5780634a291b0114610125578063574c5c931461012e578063899e1b6c146101415780639c81ff6b1461016c578063a82415ae14610175578063a87430ba14610188578063a9f8d18114610220578063bea2811514610229578063e319828c14610232575b600080fd5b6007546100b69060ff1681565b60405160ff90911681526020015b60405180910390f35b6100f96100db366004610a09565b6001600160a01b031660009081526008602052604081205490549091565b604080519283526020830191909152016100c4565b61011760025481565b6040519081526020016100c4565b61011760015481565b61011761013c366004610a24565b61023b565b600554610154906001600160401b031681565b6040516001600160401b0390911681526020016100c4565b61011760045481565b610117610183366004610a24565b6102c1565b6101df610196366004610a09565b60086020526000908152604090208054600182015460028301546003840154600485015460059095015493949293919290916001600160401b0380821691600160401b90041687565b60408051978852602088019690965294860193909352606085019190915260808401526001600160401b0390811660a08401521660c082015260e0016100c4565b61011760065481565b61011760005481565b61011760035481565b6001600160a01b038416600090815260086020526040812061025e8585856104fb565b61026e86826000015460016105fd565b6003810180546000918290556004830180549192839261028f908490610a73565b90915550506003546102a2908290610a73565b6003556102b6662386f26fc1000082610a8b565b979650505050505050565b6001600160a01b0384166000908152600860209081526040808320815160e08101835281548152600180830154948201949094526002808301549382019390935260038201546060820152600482015460808201526005909101546001600160401b0380821660a0840152600160401b9091041660c0820152905491549091908390158015906103515750854310155b801561035d5750438510155b156104df576000600654436103729190610aad565b9050600061038789662386f26fc10000610ac4565b6103919083610ac4565b905060008060006103a188610924565b60075492955090935091506103ba9060ff16600a610bc7565b6001546103c79190610ac4565b6103dc85676765c793fa10079d601b1b610ac4565b6103e69190610a8b565b6103f09088610a73565b96508783156104d8576040810151600754676765c793fa10079d601b1b908a9061041e9060ff16600a610bc7565b846020015161042d9190610ac4565b6104379190610ac4565b6104419190610a8b565b61044b9190610aad565b9650600061046185670de0b6b3a7640000610ac4565b61047689676765c793fa10079d601b1b610ac4565b6104809190610a8b565b905064174876e80081610494856064610ac4565b600a6104a1886064610ac4565b6104ac906005610ac4565b6104b69190610a8b565b6104c09190610a73565b6104ca9190610ac4565b6104d49190610a8b565b9750505b5050505050505b8083606001516104ef9190610a73565b98975050505050505050565b60015461050b5750504360065550565b81431015801561051c575081600654105b156105275760068290555b60008260065410801561053a5750824310155b61054657600654610548565b825b90506000824311610559574361055b565b825b90508381108061056b5750828210155b15610577575050505050565b60006105838383610aad565b9050600061059887662386f26fc10000610ac4565b6105a29083610ac4565b6007549091506105b69060ff16600a610bc7565b6001546105c39190610ac4565b6105d882676765c793fa10079d601b1b610ac4565b6105e29190610a8b565b6002546105ef9190610a73565b600255505060065550505050565b6001600160a01b03831660009081526008602052604090208054600182015480156107a9576040805160e0810182528454815260018501546020820152600285015491810191909152600384015460608201526004840154608082015260058401546001600160401b0380821660a0840152600160401b9091041660c08201526000908190819061068d90610924565b925092509250826000146107a157600280870154905460075460009291676765c793fa10079d601b1b916106c59060ff16600a610bc7565b6106cf9089610ac4565b6106d99190610ac4565b6106e39190610a8b565b6106ed9190610aad565b9050600061070385670de0b6b3a7640000610ac4565b61071883676765c793fa10079d601b1b610ac4565b6107229190610a8b565b905064174876e80081610736856064610ac4565b600a610743886064610ac4565b61074e906005610ac4565b6107589190610a8b565b6107629190610a73565b61076c9190610ac4565b6107769190610a8b565b91508188600301546107889190610a73565b600389015560045461079b908390610a73565b60045550505b5050506107d0565b600583018054600160401b600160801b031916600160401b436001600160401b0316021790555b81851161086657600583018054600160401b600160801b031916600160401b436001600160401b031602179055811561086157600082846001015487856108179190610aad565b6108219190610ac4565b61082b9190610a8b565b9050808460010160008282546108419190610aad565b92505081905550806001600082825461085a9190610aad565b9091555050505b6108af565b836108af576108758286610aad565b8360010160008282546108889190610a73565b9091555061089890508286610aad565b600160008282546108a99190610a73565b90915550505b6005830180546001600160401b031916436001600160401b0316179055848355600254600754676765c793fa10079d601b1b91906108f19060ff16600a610bc7565b85600101546109009190610ac4565b61090a9190610ac4565b6109149190610a8b565b8360020181905550505050505050565b6000806000808460c001518560a0015161093e9190610bd6565b60055460c08701516001600160401b03928316935060009261096d92811691610968911643610aad565b6109d3565b905060008660a001516001600160401b03164361098a9190610aad565b6005549091506000906001600160401b03168410156109b2576109ad8484610aad565b6109b5565b60005b905060006109c38284610aad565b9299919850919650945050505050565b60008183106109e257816109e4565b825b90505b92915050565b80356001600160a01b0381168114610a0457600080fd5b919050565b600060208284031215610a1b57600080fd5b6109e4826109ed565b60008060008060808587031215610a3a57600080fd5b610a43856109ed565b966020860135965060408601359560600135945092505050565b634e487b7160e01b600052601160045260246000fd5b60008219821115610a8657610a86610a5d565b500190565b600082610aa857634e487b7160e01b600052601260045260246000fd5b500490565b600082821015610abf57610abf610a5d565b500390565b6000816000190483118215151615610ade57610ade610a5d565b500290565b600181815b80851115610b1e578160001904821115610b0457610b04610a5d565b80851615610b1157918102915b93841c9390800290610ae8565b509250929050565b600082610b35575060016109e7565b81610b42575060006109e7565b8160018114610b585760028114610b6257610b7e565b60019150506109e7565b60ff841115610b7357610b73610a5d565b50506001821b6109e7565b5060208310610133831016604e8410600b8410161715610ba1575081810a6109e7565b610bab8383610ae3565b8060001904821115610bbf57610bbf610a5d565b029392505050565b60006109e460ff841683610b26565b60006001600160401b0383811690831681811015610bf657610bf6610a5d565b03939250505056fea264697066735822122001ce4f605fafc0df42c35bca16bc960c676de0680027566ef17ee1adca56a31464736f6c63430008080033";
262
262
 
263
263
  type BaseShareFieldConstructorParams =
264
264
  | [signer?: Signer]
@@ -130,6 +130,19 @@ const _abi = [
130
130
  stateMutability: "view",
131
131
  type: "function",
132
132
  },
133
+ {
134
+ inputs: [
135
+ {
136
+ internalType: "uint256",
137
+ name: "amount",
138
+ type: "uint256",
139
+ },
140
+ ],
141
+ name: "burn",
142
+ outputs: [],
143
+ stateMutability: "nonpayable",
144
+ type: "function",
145
+ },
133
146
  {
134
147
  inputs: [],
135
148
  name: "decimals",
@@ -351,7 +351,7 @@ const _abi = [
351
351
  ];
352
352
 
353
353
  const _bytecode =
354
- "0x60a06040523060601b60805234801561001757600080fd5b5060805160601c6115d361004b600039600081816104db01528181610524015281816105ad01526105ed01526115d36000f3fe6080604052600436106100ce5760003560e01c806305a6aafa146100d35780630a6f93e6146100f55780631b3c90a8146101355780631d0205b81461014a5780633659cfe6146101965780633c8c043a146101b65780633e6326fc146101cc5780634162169f146101f95780634f1ef286146102195780635aef7de61461022c578063862a4d471461024c578063b5f3067f14610262578063c047f1c31461028f578063c382c475146102d3578063c4d66de8146102f3578063e1758bd814610313578063e9157dd214610328575b600080fd5b3480156100df57600080fd5b506100f36100ee366004611231565b610348565b005b34801561010157600080fd5b5061012261011036600461125f565b609e6020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561014157600080fd5b506100f361038b565b34801561015657600080fd5b50610181610165366004611231565b609c602052600090815260409020600181015460029091015482565b6040805192835260208301919091520161012c565b3480156101a257600080fd5b506100f36101b136600461125f565b6104d0565b3480156101c257600080fd5b50610122609a5481565b3480156101d857600080fd5b506067546101ec906001600160a01b031681565b60405161012c919061127c565b34801561020557600080fd5b506065546101ec906001600160a01b031681565b6100f36102273660046112a6565b6105a2565b34801561023857600080fd5b506066546101ec906001600160a01b031681565b34801561025857600080fd5b50610122609b5481565b34801561026e57600080fd5b5061012261027d36600461125f565b609d6020526000908152604090205481565b34801561029b57600080fd5b506101226102aa36600461125f565b609b546000908152609c602090815260408083206001600160a01b039094168352929052205490565b3480156102df57600080fd5b506100f36102ee36600461125f565b61065c565b3480156102ff57600080fd5b506100f361030e36600461125f565b610883565b34801561031f57600080fd5b506101ec610955565b34801561033457600080fd5b506100f361034336600461125f565b6109f1565b610350610da1565b609a8190556040518181527f237ab53d478ae984b5181944dc85b134c034a24236aac1632aa10236cedd8a999060200160405180910390a150565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b1580156103e957600080fd5b505afa1580156103fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104219190611369565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de691600480820192602092909190829003018186803b15801561047657600080fd5b505afa15801561048a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ae9190611369565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156105225760405162461bcd60e51b815260040161051990611386565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610554610e75565b6001600160a01b03161461057a5760405162461bcd60e51b8152600401610519906113c0565b61058381610e91565b6040805160008082526020820190925261059f91839190610e99565b50565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156105eb5760405162461bcd60e51b815260040161051990611386565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661061d610e75565b6001600160a01b0316146106435760405162461bcd60e51b8152600401610519906113c0565b61064c82610e91565b61065882826001610e99565b5050565b60006001609b5461066d9190611410565b6000818152609c6020908152604080832060028101546001600160a01b038816855290835281842054609d9093529220549293509091831180156106b15750600081115b80156106bd5750600082115b1561087d576001600160a01b0384166000908152609d60209081526040808320869055858352609c9091528120600101546106f88385611427565b6107029190611446565b9050801561087b5760675460405163bf40fac160e01b815260206004820152600a6024820152692922a82aaa20aa24a7a760b11b60448201526000916001600160a01b03169063bf40fac19060640160206040518083038186803b15801561076957600080fd5b505afa15801561077d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a19190611369565b6040516340c10f1960e01b81526001600160a01b03888116600483015260248201859052919250908216906340c10f1990604401602060405180830381600087803b1580156107ef57600080fd5b505af1158015610803573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108279190611468565b50604080516001600160a01b038816815260208101879052908101849052606081018390527f6d539aca58a0ce9de5ef660cea9845c2b109a1665b74200cceda7e8f097d0ace9060800160405180910390a1505b505b50505050565b600054610100900460ff168061089c575060005460ff16155b6108ff5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610519565b600054610100900460ff16158015610921576000805461ffff19166101011790555b66d3c21bcecceda1601a1b609a55610937610fd9565b61094082611010565b8015610658576000805461ff00191690555050565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac19060640160206040518083038186803b1580156109b457600080fd5b505afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611369565b905090565b60675460405163bf40fac160e01b8152602060048201526009602482015268554249534348454d4560b81b60448201526000916001600160a01b03169063bf40fac19060640160206040518083038186803b158015610a4f57600080fd5b505afa158015610a63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a879190611369565b6040516339d9740760e11b81529091506001600160a01b038216906373b2e80e90610ab690859060040161127c565b60206040518083038186803b158015610ace57600080fd5b505afa158015610ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b069190611468565b610b635760405162461bcd60e51b815260206004820152602860248201527f436c61696d657273446973747269627574696f6e3a206469646e277420636c61604482015267696d20746f64617960c01b6064820152608401610519565b609e6000836001600160a01b03166001600160a01b0316815260200190815260200160002054816001600160a01b031663eda4e6d66040518163ffffffff1660e01b815260040160206040518083038186803b158015610bc257600080fd5b505afa158015610bd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfa919061148a565b826001600160a01b0316635c9302c96040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3357600080fd5b505afa158015610c47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6b919061148a565b610c789062015180611427565b610c8291906114a3565b11610cdd5760405162461bcd60e51b815260206004820152602560248201527f436c61696d657273446973747269627574696f6e3a20616c726561647920757060448201526419185d195960da1b6064820152608401610519565b610ce5610fd9565b6001600160a01b0382166000818152609e60209081526040808320429055609b548352609c8252808320938352929052908120805460019290610d299084906114a3565b9091555050609b546000908152609c602052604081206001908101805491929091610d559084906114a3565b9091555050609b54600090610d6c90600190611410565b6001600160a01b0384166000908152609d60205260409020549091508111610d9357505050565b610d9c8361065c565b505050565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de6916004808301926020929190829003018186803b158015610de557600080fd5b505afa158015610df9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1d9190611369565b6001600160a01b031614610e735760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f646044820152606401610519565b565b600080516020611557833981519152546001600160a01b031690565b61059f610da1565b6000610ea3610e75565b9050610eae84611033565b600083511180610ebb5750815b15610ecc57610eca84846110c6565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff1661087b57805460ff19166001178155604051610f47908690610f1890859060240161127c565b60408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b1790526110c6565b50805460ff19168155610f58610e75565b6001600160a01b0316826001600160a01b031614610fd05760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610519565b61087b856111b1565b6000610fe862278d0042611446565b9050609b54811461059f57609b819055609a546000828152609c602052604090206002015550565b606780546001600160a01b0319166001600160a01b03831617905561059f61038b565b803b6110975760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610519565b60008051602061155783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6111255760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610519565b600080846001600160a01b03168460405161114091906114e7565b600060405180830381855af49150503d806000811461117b576040519150601f19603f3d011682016040523d82523d6000602084013e611180565b606091505b50915091506111a88282604051806060016040528060278152602001611577602791396111f1565b95945050505050565b6111ba81611033565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060831561120057508161122a565b8251156112105782518084602001fd5b8160405162461bcd60e51b81526004016105199190611503565b9392505050565b60006020828403121561124357600080fd5b5035919050565b6001600160a01b038116811461059f57600080fd5b60006020828403121561127157600080fd5b813561122a8161124a565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156112b957600080fd5b82356112c48161124a565b915060208301356001600160401b03808211156112e057600080fd5b818501915085601f8301126112f457600080fd5b81358181111561130657611306611290565b604051601f8201601f19908116603f0116810190838211818310171561132e5761132e611290565b8160405282815288602084870101111561134757600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561137b57600080fd5b815161122a8161124a565b6020808252602c9082015260008051602061153783398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061153783398151915260408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600082821015611422576114226113fa565b500390565b6000816000190483118215151615611441576114416113fa565b500290565b60008261146357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561147a57600080fd5b8151801515811461122a57600080fd5b60006020828403121561149c57600080fd5b5051919050565b600082198211156114b6576114b66113fa565b500190565b60005b838110156114d65781810151838201526020016114be565b8381111561087d5750506000910152565b600082516114f98184602087016114bb565b9190910192915050565b60208152600082518060208401526115228160408501602087016114bb565b601f01601f1916919091016040019291505056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220492c072b84e25998e65d276672fec4c1395c49a4994cf991e85e6c3a623f0f3f64736f6c63430008080033";
354
+ "0x60a06040523060601b60805234801561001757600080fd5b5060805160601c6115d361004b600039600081816104db01528181610524015281816105ad01526105ed01526115d36000f3fe6080604052600436106100ce5760003560e01c806305a6aafa146100d35780630a6f93e6146100f55780631b3c90a8146101355780631d0205b81461014a5780633659cfe6146101965780633c8c043a146101b65780633e6326fc146101cc5780634162169f146101f95780634f1ef286146102195780635aef7de61461022c578063862a4d471461024c578063b5f3067f14610262578063c047f1c31461028f578063c382c475146102d3578063c4d66de8146102f3578063e1758bd814610313578063e9157dd214610328575b600080fd5b3480156100df57600080fd5b506100f36100ee366004611231565b610348565b005b34801561010157600080fd5b5061012261011036600461125f565b609e6020526000908152604090205481565b6040519081526020015b60405180910390f35b34801561014157600080fd5b506100f361038b565b34801561015657600080fd5b50610181610165366004611231565b609c602052600090815260409020600181015460029091015482565b6040805192835260208301919091520161012c565b3480156101a257600080fd5b506100f36101b136600461125f565b6104d0565b3480156101c257600080fd5b50610122609a5481565b3480156101d857600080fd5b506067546101ec906001600160a01b031681565b60405161012c919061127c565b34801561020557600080fd5b506065546101ec906001600160a01b031681565b6100f36102273660046112a6565b6105a2565b34801561023857600080fd5b506066546101ec906001600160a01b031681565b34801561025857600080fd5b50610122609b5481565b34801561026e57600080fd5b5061012261027d36600461125f565b609d6020526000908152604090205481565b34801561029b57600080fd5b506101226102aa36600461125f565b609b546000908152609c602090815260408083206001600160a01b039094168352929052205490565b3480156102df57600080fd5b506100f36102ee36600461125f565b61065c565b3480156102ff57600080fd5b506100f361030e36600461125f565b610883565b34801561031f57600080fd5b506101ec610955565b34801561033457600080fd5b506100f361034336600461125f565b6109f1565b610350610da1565b609a8190556040518181527f237ab53d478ae984b5181944dc85b134c034a24236aac1632aa10236cedd8a999060200160405180910390a150565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac19060640160206040518083038186803b1580156103e957600080fd5b505afa1580156103fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104219190611369565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de691600480820192602092909190829003018186803b15801561047657600080fd5b505afa15801561048a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ae9190611369565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156105225760405162461bcd60e51b815260040161051990611386565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610554610e75565b6001600160a01b03161461057a5760405162461bcd60e51b8152600401610519906113c0565b61058381610e91565b6040805160008082526020820190925261059f91839190610e99565b50565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614156105eb5760405162461bcd60e51b815260040161051990611386565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661061d610e75565b6001600160a01b0316146106435760405162461bcd60e51b8152600401610519906113c0565b61064c82610e91565b61065882826001610e99565b5050565b60006001609b5461066d9190611410565b6000818152609c6020908152604080832060028101546001600160a01b038816855290835281842054609d9093529220549293509091831180156106b15750600081115b80156106bd5750600082115b1561087d576001600160a01b0384166000908152609d60209081526040808320869055858352609c9091528120600101546106f88385611427565b6107029190611446565b9050801561087b5760675460405163bf40fac160e01b815260206004820152600a6024820152692922a82aaa20aa24a7a760b11b60448201526000916001600160a01b03169063bf40fac19060640160206040518083038186803b15801561076957600080fd5b505afa15801561077d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a19190611369565b6040516340c10f1960e01b81526001600160a01b03888116600483015260248201859052919250908216906340c10f1990604401602060405180830381600087803b1580156107ef57600080fd5b505af1158015610803573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108279190611468565b50604080516001600160a01b038816815260208101879052908101849052606081018390527f6d539aca58a0ce9de5ef660cea9845c2b109a1665b74200cceda7e8f097d0ace9060800160405180910390a1505b505b50505050565b600054610100900460ff168061089c575060005460ff16155b6108ff5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610519565b600054610100900460ff16158015610921576000805461ffff19166101011790555b66d3c21bcecceda1601a1b609a55610937610fd9565b61094082611010565b8015610658576000805461ff00191690555050565b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac19060640160206040518083038186803b1580156109b457600080fd5b505afa1580156109c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ec9190611369565b905090565b60675460405163bf40fac160e01b8152602060048201526009602482015268554249534348454d4560b81b60448201526000916001600160a01b03169063bf40fac19060640160206040518083038186803b158015610a4f57600080fd5b505afa158015610a63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a879190611369565b6040516339d9740760e11b81529091506001600160a01b038216906373b2e80e90610ab690859060040161127c565b60206040518083038186803b158015610ace57600080fd5b505afa158015610ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b069190611468565b610b635760405162461bcd60e51b815260206004820152602860248201527f436c61696d657273446973747269627574696f6e3a206469646e277420636c61604482015267696d20746f64617960c01b6064820152608401610519565b609e6000836001600160a01b03166001600160a01b0316815260200190815260200160002054816001600160a01b031663eda4e6d66040518163ffffffff1660e01b815260040160206040518083038186803b158015610bc257600080fd5b505afa158015610bd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bfa919061148a565b826001600160a01b0316635c9302c96040518163ffffffff1660e01b815260040160206040518083038186803b158015610c3357600080fd5b505afa158015610c47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6b919061148a565b610c789062015180611427565b610c8291906114a3565b11610cdd5760405162461bcd60e51b815260206004820152602560248201527f436c61696d657273446973747269627574696f6e3a20616c726561647920757060448201526419185d195960da1b6064820152608401610519565b610ce5610fd9565b6001600160a01b0382166000818152609e60209081526040808320429055609b548352609c8252808320938352929052908120805460019290610d299084906114a3565b9091555050609b546000908152609c602052604081206001908101805491929091610d559084906114a3565b9091555050609b54600090610d6c90600190611410565b6001600160a01b0384166000908152609d60205260409020549091508111610d9357505050565b610d9c8361065c565b505050565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de6916004808301926020929190829003018186803b158015610de557600080fd5b505afa158015610df9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1d9190611369565b6001600160a01b031614610e735760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f646044820152606401610519565b565b600080516020611557833981519152546001600160a01b031690565b61059f610da1565b6000610ea3610e75565b9050610eae84611033565b600083511180610ebb5750815b15610ecc57610eca84846110c6565b505b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143805460ff1661087b57805460ff19166001178155604051610f47908690610f1890859060240161127c565b60408051601f198184030181529190526020810180516001600160e01b0316631b2ce7f360e11b1790526110c6565b50805460ff19168155610f58610e75565b6001600160a01b0316826001600160a01b031614610fd05760405162461bcd60e51b815260206004820152602f60248201527f45524331393637557067726164653a207570677261646520627265616b73206660448201526e75727468657220757067726164657360881b6064820152608401610519565b61087b856111b1565b6000610fe862278d0042611446565b9050609b54811461059f57609b819055609a546000828152609c602052604090206002015550565b606780546001600160a01b0319166001600160a01b03831617905561059f61038b565b803b6110975760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610519565b60008051602061155783398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060823b6111255760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610519565b600080846001600160a01b03168460405161114091906114e7565b600060405180830381855af49150503d806000811461117b576040519150601f19603f3d011682016040523d82523d6000602084013e611180565b606091505b50915091506111a88282604051806060016040528060278152602001611577602791396111f1565b95945050505050565b6111ba81611033565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060831561120057508161122a565b8251156112105782518084602001fd5b8160405162461bcd60e51b81526004016105199190611503565b9392505050565b60006020828403121561124357600080fd5b5035919050565b6001600160a01b038116811461059f57600080fd5b60006020828403121561127157600080fd5b813561122a8161124a565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156112b957600080fd5b82356112c48161124a565b915060208301356001600160401b03808211156112e057600080fd5b818501915085601f8301126112f457600080fd5b81358181111561130657611306611290565b604051601f8201601f19908116603f0116810190838211818310171561132e5761132e611290565b8160405282815288602084870101111561134757600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561137b57600080fd5b815161122a8161124a565b6020808252602c9082015260008051602061153783398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602061153783398151915260408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b600082821015611422576114226113fa565b500390565b6000816000190483118215151615611441576114416113fa565b500290565b60008261146357634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561147a57600080fd5b8151801515811461122a57600080fd5b60006020828403121561149c57600080fd5b5051919050565b600082198211156114b6576114b66113fa565b500190565b60005b838110156114d65781810151838201526020016114be565b8381111561087d5750506000910152565b600082516114f98184602087016114bb565b9190910192915050565b60208152600082518060208401526115228160408501602087016114bb565b601f01601f1916919091016040019291505056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212202ad006228f862d85ced4de324e4b73582e21d2db54102955c0ec3440268a7b8864736f6c63430008080033";
355
355
 
356
356
  type ClaimersDistributionConstructorParams =
357
357
  | [signer?: Signer]