@gooddollar/goodprotocol 2.1.4 → 2.2.0-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 (292) hide show
  1. package/artifacts/abis/IdentityV4.min.json +1 -0
  2. package/artifacts/contracts/DAOStackInterfaces.sol/Avatar.dbg.json +1 -1
  3. package/artifacts/contracts/DAOStackInterfaces.sol/Controller.dbg.json +1 -1
  4. package/artifacts/contracts/DAOStackInterfaces.sol/GlobalConstraintInterface.dbg.json +1 -1
  5. package/artifacts/contracts/DAOStackInterfaces.sol/IntVoteInterface.dbg.json +1 -1
  6. package/artifacts/contracts/DAOStackInterfaces.sol/ReputationInterface.dbg.json +1 -1
  7. package/artifacts/contracts/DAOStackInterfaces.sol/SchemeRegistrar.dbg.json +1 -1
  8. package/artifacts/contracts/IUniswapV3.sol/INonfungiblePositionManager.dbg.json +1 -1
  9. package/artifacts/contracts/IUniswapV3.sol/IUniswapV3Pool.dbg.json +1 -1
  10. package/artifacts/contracts/Interfaces.sol/AggregatorV3Interface.dbg.json +1 -1
  11. package/artifacts/contracts/Interfaces.sol/ERC20.dbg.json +1 -1
  12. package/artifacts/contracts/Interfaces.sol/IAaveIncentivesController.dbg.json +1 -1
  13. package/artifacts/contracts/Interfaces.sol/IAdminWallet.dbg.json +1 -1
  14. package/artifacts/contracts/Interfaces.sol/IDonationStaking.dbg.json +1 -1
  15. package/artifacts/contracts/Interfaces.sol/IERC2917.dbg.json +1 -1
  16. package/artifacts/contracts/Interfaces.sol/IFirstClaimPool.dbg.json +1 -1
  17. package/artifacts/contracts/Interfaces.sol/IGoodDollar.dbg.json +1 -1
  18. package/artifacts/contracts/Interfaces.sol/IGoodStaking.dbg.json +1 -1
  19. package/artifacts/contracts/Interfaces.sol/IHasRouter.dbg.json +1 -1
  20. package/artifacts/contracts/Interfaces.sol/IIdentity.dbg.json +1 -1
  21. package/artifacts/contracts/Interfaces.sol/IIdentityV2.dbg.json +1 -1
  22. package/artifacts/contracts/Interfaces.sol/ILendingPool.dbg.json +1 -1
  23. package/artifacts/contracts/Interfaces.sol/IMultichainRouter.dbg.json +1 -1
  24. package/artifacts/contracts/Interfaces.sol/INameService.dbg.json +1 -1
  25. package/artifacts/contracts/Interfaces.sol/IQuoterV2.dbg.json +1 -1
  26. package/artifacts/contracts/Interfaces.sol/ISwapRouter.dbg.json +1 -1
  27. package/artifacts/contracts/Interfaces.sol/IUBIScheme.dbg.json +1 -1
  28. package/artifacts/contracts/Interfaces.sol/ProxyAdmin.dbg.json +1 -1
  29. package/artifacts/contracts/Interfaces.sol/Reserve.dbg.json +1 -1
  30. package/artifacts/contracts/Interfaces.sol/Staking.dbg.json +1 -1
  31. package/artifacts/contracts/Interfaces.sol/Uniswap.dbg.json +1 -1
  32. package/artifacts/contracts/Interfaces.sol/UniswapFactory.dbg.json +1 -1
  33. package/artifacts/contracts/Interfaces.sol/UniswapPair.dbg.json +1 -1
  34. package/artifacts/contracts/Interfaces.sol/cERC20.dbg.json +1 -1
  35. package/artifacts/contracts/MentoInterfaces.sol/IBancorExchangeProvider.dbg.json +1 -1
  36. package/artifacts/contracts/MentoInterfaces.sol/IBroker.dbg.json +1 -1
  37. package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExchangeProvider.dbg.json +1 -1
  38. package/artifacts/contracts/MentoInterfaces.sol/IGoodDollarExpansionController.dbg.json +1 -1
  39. package/artifacts/contracts/MentoInterfaces.sol/IMentoReserve.dbg.json +1 -1
  40. package/artifacts/contracts/MentoInterfaces.sol/ITradingLimits.dbg.json +1 -1
  41. package/artifacts/contracts/fuseFaucet/Faucet.sol/Faucet.dbg.json +1 -1
  42. package/artifacts/contracts/fuseFaucet/FuseFaucet.sol/FuseFaucet.dbg.json +1 -1
  43. package/artifacts/contracts/fuseFaucet/FuseFaucetV2.sol/FuseFaucetV2.dbg.json +1 -1
  44. package/artifacts/contracts/fuseFaucet/SuperfluidFacuet.sol/SuperfluidFaucet.dbg.json +1 -1
  45. package/artifacts/contracts/governance/ClaimersDistribution.sol/ClaimersDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/governance/CompoundVotingMachine.sol/CompoundVotingMachine.dbg.json +1 -1
  47. package/artifacts/contracts/governance/GReputation.sol/GReputation.dbg.json +1 -1
  48. package/artifacts/contracts/governance/GovernanceStaking.sol/GovernanceStaking.dbg.json +1 -1
  49. package/artifacts/contracts/governance/MultiBaseGovernanceShareField.sol/MultiBaseGovernanceShareField.dbg.json +1 -1
  50. package/artifacts/contracts/governance/Reputation.sol/Reputation.dbg.json +1 -1
  51. package/artifacts/contracts/governance/StakersDistribution.sol/StakersDistribution.dbg.json +1 -1
  52. package/artifacts/contracts/identity/IdentityV2.sol/IdentityV2.dbg.json +1 -1
  53. package/artifacts/contracts/identity/IdentityV3.sol/IdentityV3.dbg.json +1 -1
  54. package/artifacts/contracts/identity/IdentityV3.sol/IdentityV3.json +2 -2
  55. package/artifacts/contracts/identity/IdentityV4.sol/IdentityV4.dbg.json +4 -0
  56. package/artifacts/contracts/identity/IdentityV4.sol/IdentityV4.json +1162 -0
  57. package/artifacts/contracts/invite/InvitesFuseV2.sol/InvitesFuseV2.dbg.json +1 -1
  58. package/artifacts/contracts/invite/InvitesV1.sol/InvitesV1.dbg.json +1 -1
  59. package/artifacts/contracts/invite/InvitesV2.sol/InvitesV2.dbg.json +1 -1
  60. package/artifacts/contracts/invite/OneTimeReward.sol/OneTimeReward.dbg.json +1 -1
  61. package/artifacts/contracts/mocks/AaveMock.sol/AaveMock.dbg.json +1 -1
  62. package/artifacts/contracts/mocks/AaveUSDMockOracle.sol/AaveUSDMockOracle.dbg.json +1 -1
  63. package/artifacts/contracts/mocks/BatUSDMockOracle.sol/BatUSDMockOracle.dbg.json +1 -1
  64. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTest.dbg.json +1 -1
  65. package/artifacts/contracts/mocks/CeloDistributionHelperTest.sol/CeloDistributionHelperTestHelper.dbg.json +1 -1
  66. package/artifacts/contracts/mocks/CompUsdMockOracle.sol/CompUSDMockOracle.dbg.json +1 -1
  67. package/artifacts/contracts/mocks/DAIMock.sol/DAIMock.dbg.json +1 -1
  68. package/artifacts/contracts/mocks/DaiEthPriceMockOracle.sol/DaiEthPriceMockOracle.dbg.json +1 -1
  69. package/artifacts/contracts/mocks/DecimalsMock.sol/DecimalsMock.dbg.json +1 -1
  70. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTest.dbg.json +1 -1
  71. package/artifacts/contracts/mocks/DistributionHelperTest.sol/DistributionHelperTestHelper.dbg.json +1 -1
  72. package/artifacts/contracts/mocks/EthUSDMockOracle.sol/EthUSDMockOracle.dbg.json +1 -1
  73. package/artifacts/contracts/mocks/FeesFormularMock.sol/FeesFormulaMock.dbg.json +1 -1
  74. package/artifacts/contracts/mocks/GasPriceMockOracle.sol/GasPriceMockOracle.dbg.json +1 -1
  75. package/artifacts/contracts/mocks/GenericDistributionHelperTest.sol/GenericDistributionHelperTest.dbg.json +1 -1
  76. package/artifacts/contracts/mocks/GenericDistributionHelperTest.sol/GenericDistributionHelperTestHelper.dbg.json +1 -1
  77. package/artifacts/contracts/mocks/GoodCompoundStakingTest.sol/GoodCompoundStakingTest.dbg.json +1 -1
  78. package/artifacts/contracts/mocks/GoodFundManagerTest.sol/GoodFundManagerTest.dbg.json +1 -1
  79. package/artifacts/contracts/mocks/IdentityMock.sol/IdentityMock.dbg.json +1 -1
  80. package/artifacts/contracts/mocks/IncentiveControllerMock.sol/IncentiveControllerMock.dbg.json +1 -1
  81. package/artifacts/contracts/mocks/LendingPoolMock.sol/LendingPoolMock.dbg.json +1 -1
  82. package/artifacts/contracts/mocks/OverMintTester.sol/IGoodDollarStakingTest.dbg.json +1 -1
  83. package/artifacts/contracts/mocks/OverMintTester.sol/OverMintTester.dbg.json +1 -1
  84. package/artifacts/contracts/mocks/OverMintTesterRegularStake.sol/OverMintTesterRegularStake.dbg.json +1 -1
  85. package/artifacts/contracts/mocks/PayableMock.sol/PayableMock.dbg.json +1 -1
  86. package/artifacts/contracts/mocks/SixteenDecimalsTokenMock.sol/SixteenDecimalsTokenMock.dbg.json +1 -1
  87. package/artifacts/contracts/mocks/SwapHelperTest.sol/SwapHelperTest.dbg.json +1 -1
  88. package/artifacts/contracts/mocks/TwentyDecimalsTokenMock.sol/TwentyDecimalsTokenMock.dbg.json +1 -1
  89. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock.dbg.json +1 -1
  90. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock2.dbg.json +1 -1
  91. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock3.dbg.json +1 -1
  92. package/artifacts/contracts/mocks/UpgradableMocks.sol/UpgradableMock4.dbg.json +1 -1
  93. package/artifacts/contracts/mocks/UsdcMock.sol/USDCMock.dbg.json +1 -1
  94. package/artifacts/contracts/mocks/cBATMock.sol/cBATMock.dbg.json +1 -1
  95. package/artifacts/contracts/mocks/cDAILowWorthMock.sol/cDAILowWorthMock.dbg.json +1 -1
  96. package/artifacts/contracts/mocks/cDAIMock.sol/cDAIMock.dbg.json +1 -1
  97. package/artifacts/contracts/mocks/cDAINonMintableMock.sol/cDAINonMintableMock.dbg.json +1 -1
  98. package/artifacts/contracts/mocks/cDecimalsMock.sol/cDecimalsMock.dbg.json +1 -1
  99. package/artifacts/contracts/mocks/cSDTMock.sol/cSDTMock.dbg.json +1 -1
  100. package/artifacts/contracts/mocks/cUSDCMock.sol/cUSDCMock.dbg.json +1 -1
  101. package/artifacts/contracts/reserve/CeloDistributionHelper.sol/CeloDistributionHelper.dbg.json +1 -1
  102. package/artifacts/contracts/reserve/DistributionHelper.sol/DistributionHelper.dbg.json +1 -1
  103. package/artifacts/contracts/reserve/ExchangeHelper.sol/ExchangeHelper.dbg.json +1 -1
  104. package/artifacts/contracts/reserve/GenericDistributionHelper.sol/GenericDistributionHelper.dbg.json +1 -1
  105. package/artifacts/contracts/reserve/GoodMarketMaker.sol/GoodMarketMaker.dbg.json +1 -1
  106. package/artifacts/contracts/reserve/GoodReserveCDai.sol/ContributionCalc.dbg.json +1 -1
  107. package/artifacts/contracts/reserve/GoodReserveCDai.sol/GoodReserveCDai.dbg.json +1 -1
  108. package/artifacts/contracts/staking/BaseShareField.sol/BaseShareField.dbg.json +1 -1
  109. package/artifacts/contracts/staking/BaseShareFieldV2.sol/BaseShareFieldV2.dbg.json +1 -1
  110. package/artifacts/contracts/staking/DonationsStaking.sol/DonationsStaking.dbg.json +1 -1
  111. package/artifacts/contracts/staking/FuseStakingV3.sol/FuseStakingV3.dbg.json +1 -1
  112. package/artifacts/contracts/staking/FuseStakingV3.sol/IConsensus.dbg.json +1 -1
  113. package/artifacts/contracts/staking/FuseStakingV3.sol/PegSwap.dbg.json +1 -1
  114. package/artifacts/contracts/staking/GoodFundManager.sol/GoodFundManager.dbg.json +1 -1
  115. package/artifacts/contracts/staking/SimpleStaking.sol/SimpleStaking.dbg.json +1 -1
  116. package/artifacts/contracts/staking/SimpleStakingV2.sol/SimpleStakingV2.dbg.json +1 -1
  117. package/artifacts/contracts/staking/UniswapV2SwapHelper.sol/UniswapV2SwapHelper.dbg.json +1 -1
  118. package/artifacts/contracts/staking/aave/AaveStakingFactory.sol/AaveStakingFactory.dbg.json +1 -1
  119. package/artifacts/contracts/staking/aave/GoodAaveStaking.sol/GoodAaveStaking.dbg.json +1 -1
  120. package/artifacts/contracts/staking/aave/GoodAaveStakingV2.sol/GoodAaveStakingV2.dbg.json +1 -1
  121. package/artifacts/contracts/staking/compound/CompoundStakingFactory.sol/CompoundStakingFactory.dbg.json +1 -1
  122. package/artifacts/contracts/staking/compound/GoodCompoundStaking.sol/GoodCompoundStaking.dbg.json +1 -1
  123. package/artifacts/contracts/staking/compound/GoodCompoundStakingV2.sol/GoodCompoundStakingV2.dbg.json +1 -1
  124. package/artifacts/contracts/staking/utils/Math64X64.sol/Math64x64.dbg.json +1 -1
  125. package/artifacts/contracts/token/ERC20PresetMinterPauserUpgradeable.sol/ERC20PresetMinterPauserUpgradeable.dbg.json +1 -1
  126. package/artifacts/contracts/token/ERC677.sol/ERC677.dbg.json +1 -1
  127. package/artifacts/contracts/token/ERC677.sol/ERC677Receiver.dbg.json +1 -1
  128. package/artifacts/contracts/token/GoodDollar.sol/GoodDollar.dbg.json +1 -1
  129. package/artifacts/contracts/token/GoodDollar2.sol/GoodDollar2.dbg.json +1 -1
  130. package/artifacts/contracts/token/IFeesFormula.sol/IFeesFormula.dbg.json +1 -1
  131. package/artifacts/contracts/token/MultichainFeeFormula.sol/MultichainFeeFormula.dbg.json +1 -1
  132. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/ERC20Permit.dbg.json +1 -1
  133. package/artifacts/contracts/token/superfluid/ERC20Permit.sol/SelfApprove.dbg.json +1 -1
  134. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/IGoodDollarCustom.dbg.json +1 -1
  135. package/artifacts/contracts/token/superfluid/ISuperGoodDollar.sol/ISuperGoodDollar.dbg.json +1 -1
  136. package/artifacts/contracts/token/superfluid/ISuperToken.sol/ISuperToken.dbg.json +1 -1
  137. package/artifacts/contracts/token/superfluid/SuperGoodDollar.sol/SuperGoodDollar.dbg.json +1 -1
  138. package/artifacts/contracts/token/superfluid/SuperToken.sol/SuperToken.dbg.json +1 -1
  139. package/artifacts/contracts/token/superfluid/SuperfluidToken.sol/SuperfluidToken.dbg.json +1 -1
  140. package/artifacts/contracts/token/superfluid/UUPSProxiable.sol/UUPSProxiable.dbg.json +1 -1
  141. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/Proxy.dbg.json +1 -1
  142. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSProxy.dbg.json +1 -1
  143. package/artifacts/contracts/token/superfluid/UUPSProxy.sol/UUPSUtils.dbg.json +1 -1
  144. package/artifacts/contracts/ubi/UBIScheme.sol/UBIScheme.dbg.json +1 -1
  145. package/artifacts/contracts/ubi/UBISchemeV2.sol/UBISchemeV2.dbg.json +1 -1
  146. package/artifacts/contracts/utils/AdminWallet.sol/AdminWallet.dbg.json +1 -1
  147. package/artifacts/contracts/utils/AdminWalletFuse.sol/AdminWalletFuse.dbg.json +1 -1
  148. package/artifacts/contracts/utils/BancorFormula.sol/BancorFormula.dbg.json +1 -1
  149. package/artifacts/contracts/utils/BulkProof.sol/BulkProof.dbg.json +1 -1
  150. package/artifacts/contracts/utils/BulkWhitelist.sol/BulkWhitelist.dbg.json +1 -1
  151. package/artifacts/contracts/utils/BuyAndBridgeHelper.sol/BuyAndBridgeHelper.dbg.json +1 -1
  152. package/artifacts/contracts/utils/BuyFromReserveHelper.sol/BuyFromReserveHelper.dbg.json +1 -1
  153. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDClone.dbg.json +1 -1
  154. package/artifacts/contracts/utils/BuyGDClone.sol/BuyGDCloneFactory.dbg.json +1 -1
  155. package/artifacts/contracts/utils/BuyGDClone.sol/DonateGDClone.dbg.json +1 -1
  156. package/artifacts/contracts/utils/DAOContract.sol/DAOContract.dbg.json +1 -1
  157. package/artifacts/contracts/utils/DAOUpgradeableContract.sol/DAOUpgradeableContract.dbg.json +1 -1
  158. package/artifacts/contracts/utils/DSMath.sol/DSMath.dbg.json +1 -1
  159. package/artifacts/contracts/utils/DataTypes.sol/DataTypes.dbg.json +1 -1
  160. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/EternalStorage.dbg.json +1 -1
  161. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/FuseOldBridgeKill.dbg.json +1 -1
  162. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/IUpgradeabilityOwnerStorage.dbg.json +1 -1
  163. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Initializable.dbg.json +1 -1
  164. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Ownable.dbg.json +1 -1
  165. package/artifacts/contracts/utils/FuseOldBridgeKill.sol/Upgradeable.dbg.json +1 -1
  166. package/artifacts/contracts/utils/GDFaucet.sol/GDFaucet.dbg.json +1 -1
  167. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/GoodDollarMintBurnWrapper.dbg.json +1 -1
  168. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/IRouter.dbg.json +1 -1
  169. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/PausableControl.dbg.json +1 -1
  170. package/artifacts/contracts/utils/GoodDollarMintBurnWrapper.sol/TokenOperation.dbg.json +1 -1
  171. package/artifacts/contracts/utils/IdentityFix.sol/IdentityFix.dbg.json +1 -1
  172. package/artifacts/contracts/utils/MultiCall.sol/Multicall.dbg.json +1 -1
  173. package/artifacts/contracts/utils/MultichainBridgeHelper.sol/MultichainBridgeHelper.dbg.json +1 -1
  174. package/artifacts/contracts/utils/NameService.sol/NameService.dbg.json +1 -1
  175. package/artifacts/contracts/utils/OneTimePayments.sol/OneTimePayments.dbg.json +1 -1
  176. package/artifacts/contracts/utils/OneTimePaymentsV2.sol/OneTimePaymentsV2.dbg.json +1 -1
  177. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/MentoExchange.dbg.json +1 -1
  178. package/artifacts/contracts/utils/ProtoclUpgradeV4Mento.sol/ProtocolUpgradeV4Mento.dbg.json +1 -1
  179. package/artifacts/contracts/utils/ProtocolUpgrade.sol/OldMarketMaker.dbg.json +1 -1
  180. package/artifacts/contracts/utils/ProtocolUpgrade.sol/ProtocolUpgrade.dbg.json +1 -1
  181. package/artifacts/contracts/utils/ProtocolUpgradeFuse.sol/ProtocolUpgradeFuse.dbg.json +1 -1
  182. package/artifacts/contracts/utils/ProtocolUpgradeFuseRecover.sol/ProtocolUpgradeFuseRecover.dbg.json +1 -1
  183. package/artifacts/contracts/utils/ProtocolUpgradeRecover.sol/ProtocolUpgradeRecover.dbg.json +1 -1
  184. package/artifacts/contracts/utils/ProxyFactory1967.sol/ERC1967Proxy.dbg.json +1 -1
  185. package/artifacts/contracts/utils/ProxyFactory1967.sol/ProxyFactory1967.dbg.json +1 -1
  186. package/artifacts/contracts/utils/ReputationTestHelper.sol/ReputationTestHelper.dbg.json +1 -1
  187. package/contracts/identity/IdentityV3.sol +0 -3
  188. package/contracts/identity/IdentityV4.sol +578 -0
  189. package/hardhat.config.ts +3 -4
  190. package/package.json +8 -4
  191. package/releases/deployment.json +691 -1
  192. package/test/governance/ClaimersDistribution.test.ts +1 -1
  193. package/test/governance/CompoundVotingMachine.castvote.test.ts +30 -30
  194. package/test/helpers.ts +76 -195
  195. package/test/identity/IdentityV3.test.ts +53 -129
  196. package/test/identity/IdentityV4.test.ts +454 -0
  197. package/test/reserve/GenericDistributionHelper.e2e.test.ts +445 -0
  198. package/test/utils/AdminWallet.test.ts +14 -15
  199. package/types/contracts/identity/IdentityV4.ts +2001 -0
  200. package/types/contracts/identity/index.ts +1 -0
  201. package/types/contracts/utils/UpdateReserveRatio.sol/MentoExchange.ts +81 -0
  202. package/types/contracts/utils/UpdateReserveRatio.sol/UpdateReserveRatio.ts +134 -0
  203. package/types/contracts/utils/UpdateReserveRatio.sol/index.ts +5 -0
  204. package/types/contracts/utils/UpdateReserveRatioAfterXDC.sol/UpdateReserveRatioAfterXDC.ts +7 -2
  205. package/types/contracts/utils/index.ts +2 -0
  206. package/types/factories/contracts/identity/IdentityV3__factory.ts +1 -1
  207. package/types/factories/contracts/identity/IdentityV4__factory.ts +1213 -0
  208. package/types/factories/contracts/identity/index.ts +1 -0
  209. package/types/factories/contracts/utils/UpdateReserveRatio.sol/MentoExchange__factory.ts +39 -0
  210. package/types/factories/contracts/utils/UpdateReserveRatio.sol/UpdateReserveRatio__factory.ts +113 -0
  211. package/types/factories/contracts/utils/UpdateReserveRatio.sol/index.ts +5 -0
  212. package/types/factories/contracts/utils/UpdateReserveRatioAfterXDC.sol/UpdateReserveRatioAfterXDC__factory.ts +9 -15
  213. package/types/factories/contracts/utils/index.ts +1 -0
  214. package/types/hardhat.d.ts +27 -0
  215. package/types/index.ts +4 -0
  216. package/scripts/ProxyFactory.json +0 -4425
  217. package/scripts/analytics/activeGDStakers.ts +0 -188
  218. package/scripts/analytics/activeStakers.ts +0 -25
  219. package/scripts/analytics/activeUsersCount.ts +0 -156
  220. package/scripts/analytics/activeWalletsStats.ts +0 -301
  221. package/scripts/analytics/checkActiveWallets.ts +0 -60
  222. package/scripts/analytics/checkBridgeBalances.ts +0 -442
  223. package/scripts/analytics/claimIncidentStats.ts +0 -98
  224. package/scripts/analytics/faucetStats.ts +0 -130
  225. package/scripts/analytics/gdinflow.ts +0 -57
  226. package/scripts/analytics/goodHolders.ts +0 -46
  227. package/scripts/analytics/goodgiveback.ts +0 -64
  228. package/scripts/analytics/p2pTxs.ts +0 -564
  229. package/scripts/analytics/stuckgd.ts +0 -70
  230. package/scripts/analytics/tokenInOutStats.ts +0 -48
  231. package/scripts/analytics/whitelistsyncIssue.ts +0 -87
  232. package/scripts/bulkProof.ts +0 -202
  233. package/scripts/bulkWhitelist.ts +0 -31
  234. package/scripts/deployGnosisSafe.ts +0 -111
  235. package/scripts/fetchOrDeployProxyFactory.ts +0 -46
  236. package/scripts/fv.ts +0 -263
  237. package/scripts/gdx/gdxAirdropCalculation.ts +0 -479
  238. package/scripts/getFounders.ts +0 -32
  239. package/scripts/governance/README.md +0 -70
  240. package/scripts/governance/airdropCalculation.ts +0 -1119
  241. package/scripts/governance/airdropCalculationRecover.ts +0 -416
  242. package/scripts/governance/airdropCalculationSorted.ts +0 -438
  243. package/scripts/governance/goodCheckpointSorted.ts +0 -300
  244. package/scripts/keeper/fishInactive.ts +0 -47
  245. package/scripts/minimize.sh +0 -17
  246. package/scripts/multichain-deploy/0_proxyFactory-deploy.ts +0 -131
  247. package/scripts/multichain-deploy/1_basicdao-deploy.ts +0 -294
  248. package/scripts/multichain-deploy/2_helpers-deploy.ts +0 -152
  249. package/scripts/multichain-deploy/2b_otp-deploy.ts +0 -73
  250. package/scripts/multichain-deploy/3_gdSavings-deploy.ts +0 -190
  251. package/scripts/multichain-deploy/4_ubi-deploy.ts +0 -129
  252. package/scripts/multichain-deploy/5_gov-deploy.ts +0 -179
  253. package/scripts/multichain-deploy/6_testnetFaucet.ts +0 -85
  254. package/scripts/multichain-deploy/7_superfluidfaucet-deploy.ts +0 -123
  255. package/scripts/multichain-deploy/8_disthelper-deploy.ts +0 -152
  256. package/scripts/multichain-deploy/createUniswapTestPools.ts +0 -163
  257. package/scripts/multichain-deploy/flattened/Avatar.sol +0 -913
  258. package/scripts/multichain-deploy/flattened/Controller.sol +0 -1891
  259. package/scripts/multichain-deploy/flattened/FeeFormula.sol +0 -1290
  260. package/scripts/multichain-deploy/fulldeploy.sh +0 -26
  261. package/scripts/multichain-deploy/helpers.ts +0 -647
  262. package/scripts/multichain-deploy/multichainWrapper-deploy.ts +0 -59
  263. package/scripts/multichain-deploy/verifyEtherscan.ts +0 -177
  264. package/scripts/proposals/gip-14_1.ts +0 -251
  265. package/scripts/proposals/gip-15.ts +0 -427
  266. package/scripts/proposals/gip-25-xdc-upgrade-ubi.ts +0 -746
  267. package/scripts/proposals/gips-14_1.md +0 -29
  268. package/scripts/proposals/hack-ubi-recovery.ts +0 -414
  269. package/scripts/proposals/identityAuthPeriod.ts +0 -229
  270. package/scripts/proposals/reserveRestore.ts +0 -474
  271. package/scripts/proposals/updateDistHelper.ts +0 -180
  272. package/scripts/proposals/v4Upgrade.ts +0 -845
  273. package/scripts/releaser.js +0 -24
  274. package/scripts/staking/stakersGdRewardsCalculation.ts +0 -64
  275. package/scripts/upgradeScheme.ts +0 -97
  276. package/scripts/upgradeToV2/upgradeToV2.ts +0 -853
  277. package/scripts/upgradeToV2/upgradeToV2Recover.ts +0 -939
  278. package/scripts/upgradeToV3/v3-fix.ts +0 -120
  279. package/scripts/upgradeToV3/v3-fuse-multichain.ts +0 -117
  280. package/scripts/upgradeToV3/v3-upgrade.ts +0 -219
  281. package/scripts/upgrades/celo-defi-ubi-deploy.ts +0 -184
  282. package/scripts/upgrades/identity-upgrade.ts +0 -126
  283. package/scripts/upgrades/multichain-formula-upgrade.ts +0 -143
  284. package/scripts/upgrades/multichain-temp-fix.ts +0 -129
  285. package/scripts/upgrades/restoreFunds.ts +0 -91
  286. package/scripts/upgrades/superfluid-nft-celo-gas-token.ts +0 -159
  287. package/scripts/upgrades/transferDaoToGuardians.ts +0 -80
  288. package/scripts/upgrades/upgradeAdminWallet.ts +0 -29
  289. package/scripts/upgrades/upgradeFaucet.ts +0 -46
  290. package/scripts/utils.ts +0 -50
  291. package/scripts/verify.ts +0 -67
  292. package/scripts/voltageswaps.ts +0 -46
@@ -1,4425 +0,0 @@
1
- {
2
- "fileName": "ProxyFactory.sol",
3
- "contractName": "ProxyFactory",
4
- "source": "pragma solidity ^0.5.3;\n\nimport \"./InitializableAdminUpgradeabilityProxy.sol\";\nimport \"../cryptography/ECDSA.sol\";\n\ncontract ProxyFactory {\n \n event ProxyCreated(address proxy);\n\n bytes32 private contractCodeHash;\n\n constructor() public {\n contractCodeHash = keccak256(\n type(InitializableAdminUpgradeabilityProxy).creationCode\n );\n }\n\n function deployMinimal(address _logic, bytes memory _data) public returns (address proxy) {\n // Adapted from https://github.com/optionality/clone-factory/blob/32782f82dfc5a00d103a7e61a17a5dedbd1e8e9d/contracts/CloneFactory.sol\n bytes20 targetBytes = bytes20(_logic);\n assembly {\n let clone := mload(0x40)\n mstore(clone, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)\n mstore(add(clone, 0x14), targetBytes)\n mstore(add(clone, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000)\n proxy := create(0, clone, 0x37)\n }\n \n emit ProxyCreated(address(proxy));\n\n if(_data.length > 0) {\n (bool success,) = proxy.call(_data);\n require(success);\n } \n }\n\n function deploy(uint256 _salt, address _logic, address _admin, bytes memory _data) public returns (address) {\n return _deployProxy(_salt, _logic, _admin, _data, msg.sender);\n }\n\n function deploySigned(uint256 _salt, address _logic, address _admin, bytes memory _data, bytes memory _signature) public returns (address) {\n address signer = getSigner(_salt, _logic, _admin, _data, _signature);\n require(signer != address(0), \"Invalid signature\");\n return _deployProxy(_salt, _logic, _admin, _data, signer);\n }\n\n function getDeploymentAddress(uint256 _salt, address _sender) public view returns (address) {\n // Adapted from https://github.com/archanova/solidity/blob/08f8f6bedc6e71c24758d20219b7d0749d75919d/contracts/contractCreator/ContractCreator.sol\n bytes32 salt = _getSalt(_salt, _sender);\n bytes32 rawAddress = keccak256(\n abi.encodePacked(\n bytes1(0xff),\n address(this),\n salt,\n contractCodeHash\n )\n );\n\n return address(bytes20(rawAddress << 96));\n }\n\n function getSigner(uint256 _salt, address _logic, address _admin, bytes memory _data, bytes memory _signature) public view returns (address) {\n bytes32 msgHash = OpenZeppelinUpgradesECDSA.toEthSignedMessageHash(\n keccak256(\n abi.encodePacked(\n _salt, _logic, _admin, _data, address(this)\n )\n )\n );\n\n return OpenZeppelinUpgradesECDSA.recover(msgHash, _signature);\n }\n\n function _deployProxy(uint256 _salt, address _logic, address _admin, bytes memory _data, address _sender) internal returns (address) {\n InitializableAdminUpgradeabilityProxy proxy = _createProxy(_salt, _sender);\n emit ProxyCreated(address(proxy));\n proxy.initialize(_logic, _admin, _data);\n return address(proxy);\n }\n\n function _createProxy(uint256 _salt, address _sender) internal returns (InitializableAdminUpgradeabilityProxy) {\n address payable addr;\n bytes memory code = type(InitializableAdminUpgradeabilityProxy).creationCode;\n bytes32 salt = _getSalt(_salt, _sender);\n\n assembly {\n addr := create2(0, add(code, 0x20), mload(code), salt)\n if iszero(extcodesize(addr)) {\n revert(0, 0)\n }\n }\n\n return InitializableAdminUpgradeabilityProxy(addr);\n }\n\n function _getSalt(uint256 _salt, address _sender) internal pure returns (bytes32) {\n return keccak256(abi.encodePacked(_salt, _sender)); \n }\n}\n",
5
- "sourcePath": "contracts/upgradeability/ProxyFactory.sol",
6
- "sourceMap": "116:3386:41:-;;;220:130;8:9:-1;5:2;;;30:1;27;20:12;5:2;220:130:41;283:56;;;;;;;;:::i;:::-;41:4:-1;34:5;30:16;25:3;21:26;14:5;7:41;65:3;61:2;54:15;283:56:41;266:79;;;;;;247:16;:98;;;;116:3386;;;;;;;;;;:::o;:::-;;;;;;;",
7
- "deployedSourceMap": "116:3386:41:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;116:3386:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2132:408;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;2132:408:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2132:408:41;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2132:408:41;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2132:408:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2132:408:41;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2132:408:41;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2132:408:41;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2132:408:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2132:408:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1288:337;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1288:337:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1288:337:41;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1288:337:41;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1288:337:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1288:337:41;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1288:337:41;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1288:337:41;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1288:337:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1288:337:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1104:180;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1104:180:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;1104:180:41;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1104:180:41;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1104:180:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1104:180:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1629:499;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1629:499:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;354:746;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;354:746:41;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;354:746:41;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;354:746:41;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;354:746:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;354:746:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2132:408;2264:7;2279:15;2297:170;2400:5;2407:6;2415;2423:5;2438:4;2372:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2372:81:41;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2372:81:41;;;2353:108;;;;;;2297:48;:170::i;:::-;2279:188;;2481:54;2515:7;2524:10;2481:33;:54::i;:::-;2474:61;;;2132:408;;;;;;;:::o;1288:337::-;1418:7;1433:14;1450:51;1460:5;1467:6;1475;1483:5;1490:10;1450:9;:51::i;:::-;1433:68;;1533:1;1515:20;;:6;:20;;;;1507:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1570;1583:5;1590:6;1598;1606:5;1613:6;1570:12;:50::i;:::-;1563:57;;;1288:337;;;;;;;:::o;1104:180::-;1203:7;1225:54;1238:5;1245:6;1253;1261:5;1268:10;1225:12;:54::i;:::-;1218:61;;1104:180;;;;;;:::o;1629:499::-;1712:7;1877:12;1892:24;1901:5;1908:7;1892:8;:24::i;:::-;1877:39;;1922:18;1993:4;1986:12;;2016:4;2031;2045:16;;1960:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;1960:109:41;;;1943:132;;;;;;1922:153;;2119:2;2105:10;:16;;2089:34;;2082:41;;;;1629:499;;;;:::o;354:746::-;429:13;588:19;618:6;610:15;;588:37;;667:4;661:11;693:66;686:5;679:81;792:11;785:4;778:5;774:16;767:37;836:66;829:4;822:5;818:16;811:92;936:4;929:5;926:1;919:22;910:31;;640:307;962:28;983:5;962:28;;;;;;;;;;;;;;;;;;;;;;1015:1;1000:5;:12;:16;997:95;;;1027:12;1044:5;:10;;1055:5;1044:17;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;51:19;36:153;;;182:3;176:10;171:3;164:23;98:2;93:3;89:12;82:19;;123:2;118:3;114:12;107:19;;148:2;143:3;139:12;132:19;;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1044:17:41;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1026:35:41;;;1077:7;1069:16;;;;;;;;997:95;;354:746;;;;;:::o;3142:265:5:-;3211:7;3394:4;3341:58;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3341:58:5;;;3331:69;;;;;;3324:76;;3142:265;;;:::o;1101:1891::-;1179:7;1260:2;1240:9;:16;:22;;1236:72;;;1294:1;1278:19;;;;1236:72;1374:9;1393;1412:7;1658:4;1647:9;1643:20;1637:27;1632:32;;1703:4;1692:9;1688:20;1682:27;1677:32;;1756:4;1745:9;1741:20;1735:27;1732:1;1727:36;1722:41;;2674:66;2669:1;2661:10;;:79;2657:127;;;2771:1;2756:17;;;;;;;2657:127;2803:2;2798:1;:7;;;;:18;;;;;2814:2;2809:1;:7;;;;2798:18;2794:66;;;2847:1;2832:17;;;;;;;2794:66;2961:24;2971:4;2977:1;2980;2983;2961:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2961:24:5;;;;;;;;2954:31;;;;;1101:1891;;;;;:::o;2544:329:41:-;2668:7;2683:43;2729:28;2742:5;2749:7;2729:12;:28::i;:::-;2683:74;;2768:28;2789:5;2768:28;;;;;;;;;;;;;;;;;;;;;;2802:5;:16;;;2819:6;2827;2835:5;2802:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2802:39:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2802:39:41;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2802:39:41;;;;2862:5;2847:21;;;2544:329;;;;;;;:::o;3356:144::-;3429:7;3478:5;3485:7;3461:32;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3461:32:41;;;3451:43;;;;;;3444:50;;3356:144;;;;:::o;2877:475::-;2949:37;2994:20;3020:17;3040:56;;;;;;;;:::i;:::-;41:4:-1;34:5;30:16;25:3;21:26;14:5;7:41;65:3;61:2;54:15;3040:56:41;3020:76;;3102:12;3117:24;3126:5;3133:7;3117:8;:24::i;:::-;3102:39;;3214:4;3207;3201:11;3194:4;3188;3184:15;3181:1;3173:46;3165:54;;3248:4;3236:17;3229:25;3226:2;;;3275:1;3272;3265:12;3226:2;3342:4;3297:50;;;;;2877:475;;;;:::o;116:3386::-;;;;;;;;:::o",
8
- "abi": [
9
- {
10
- "constant": true,
11
- "inputs": [
12
- {
13
- "name": "_salt",
14
- "type": "uint256"
15
- },
16
- {
17
- "name": "_logic",
18
- "type": "address"
19
- },
20
- {
21
- "name": "_admin",
22
- "type": "address"
23
- },
24
- {
25
- "name": "_data",
26
- "type": "bytes"
27
- },
28
- {
29
- "name": "_signature",
30
- "type": "bytes"
31
- }
32
- ],
33
- "name": "getSigner",
34
- "outputs": [
35
- {
36
- "name": "",
37
- "type": "address"
38
- }
39
- ],
40
- "payable": false,
41
- "stateMutability": "view",
42
- "type": "function"
43
- },
44
- {
45
- "constant": false,
46
- "inputs": [
47
- {
48
- "name": "_salt",
49
- "type": "uint256"
50
- },
51
- {
52
- "name": "_logic",
53
- "type": "address"
54
- },
55
- {
56
- "name": "_admin",
57
- "type": "address"
58
- },
59
- {
60
- "name": "_data",
61
- "type": "bytes"
62
- },
63
- {
64
- "name": "_signature",
65
- "type": "bytes"
66
- }
67
- ],
68
- "name": "deploySigned",
69
- "outputs": [
70
- {
71
- "name": "",
72
- "type": "address"
73
- }
74
- ],
75
- "payable": false,
76
- "stateMutability": "nonpayable",
77
- "type": "function"
78
- },
79
- {
80
- "constant": false,
81
- "inputs": [
82
- {
83
- "name": "_salt",
84
- "type": "uint256"
85
- },
86
- {
87
- "name": "_logic",
88
- "type": "address"
89
- },
90
- {
91
- "name": "_admin",
92
- "type": "address"
93
- },
94
- {
95
- "name": "_data",
96
- "type": "bytes"
97
- }
98
- ],
99
- "name": "deploy",
100
- "outputs": [
101
- {
102
- "name": "",
103
- "type": "address"
104
- }
105
- ],
106
- "payable": false,
107
- "stateMutability": "nonpayable",
108
- "type": "function"
109
- },
110
- {
111
- "constant": true,
112
- "inputs": [
113
- {
114
- "name": "_salt",
115
- "type": "uint256"
116
- },
117
- {
118
- "name": "_sender",
119
- "type": "address"
120
- }
121
- ],
122
- "name": "getDeploymentAddress",
123
- "outputs": [
124
- {
125
- "name": "",
126
- "type": "address"
127
- }
128
- ],
129
- "payable": false,
130
- "stateMutability": "view",
131
- "type": "function"
132
- },
133
- {
134
- "constant": false,
135
- "inputs": [
136
- {
137
- "name": "_logic",
138
- "type": "address"
139
- },
140
- {
141
- "name": "_data",
142
- "type": "bytes"
143
- }
144
- ],
145
- "name": "deployMinimal",
146
- "outputs": [
147
- {
148
- "name": "proxy",
149
- "type": "address"
150
- }
151
- ],
152
- "payable": false,
153
- "stateMutability": "nonpayable",
154
- "type": "function"
155
- },
156
- {
157
- "inputs": [],
158
- "payable": false,
159
- "stateMutability": "nonpayable",
160
- "type": "constructor"
161
- },
162
- {
163
- "anonymous": false,
164
- "inputs": [
165
- {
166
- "indexed": false,
167
- "name": "proxy",
168
- "type": "address"
169
- }
170
- ],
171
- "name": "ProxyCreated",
172
- "type": "event"
173
- }
174
- ],
175
- "ast": {
176
- "absolutePath": "contracts/upgradeability/ProxyFactory.sol",
177
- "exportedSymbols": {
178
- "ProxyFactory": [
179
- 6321
180
- ]
181
- },
182
- "id": 6322,
183
- "nodeType": "SourceUnit",
184
- "nodes": [
185
- {
186
- "id": 6021,
187
- "literals": [
188
- "solidity",
189
- "^",
190
- "0.5",
191
- ".3"
192
- ],
193
- "nodeType": "PragmaDirective",
194
- "src": "0:23:41"
195
- },
196
- {
197
- "absolutePath": "contracts/upgradeability/InitializableAdminUpgradeabilityProxy.sol",
198
- "file": "./InitializableAdminUpgradeabilityProxy.sol",
199
- "id": 6022,
200
- "nodeType": "ImportDirective",
201
- "scope": 6322,
202
- "sourceUnit": 5801,
203
- "src": "25:53:41",
204
- "symbolAliases": [],
205
- "unitAlias": ""
206
- },
207
- {
208
- "absolutePath": "contracts/cryptography/ECDSA.sol",
209
- "file": "../cryptography/ECDSA.sol",
210
- "id": 6023,
211
- "nodeType": "ImportDirective",
212
- "scope": 6322,
213
- "sourceUnit": 875,
214
- "src": "79:35:41",
215
- "symbolAliases": [],
216
- "unitAlias": ""
217
- },
218
- {
219
- "baseContracts": [],
220
- "contractDependencies": [
221
- 5800
222
- ],
223
- "contractKind": "contract",
224
- "documentation": null,
225
- "fullyImplemented": true,
226
- "id": 6321,
227
- "linearizedBaseContracts": [
228
- 6321
229
- ],
230
- "name": "ProxyFactory",
231
- "nodeType": "ContractDefinition",
232
- "nodes": [
233
- {
234
- "anonymous": false,
235
- "documentation": null,
236
- "id": 6027,
237
- "name": "ProxyCreated",
238
- "nodeType": "EventDefinition",
239
- "parameters": {
240
- "id": 6026,
241
- "nodeType": "ParameterList",
242
- "parameters": [
243
- {
244
- "constant": false,
245
- "id": 6025,
246
- "indexed": false,
247
- "name": "proxy",
248
- "nodeType": "VariableDeclaration",
249
- "scope": 6027,
250
- "src": "164:13:41",
251
- "stateVariable": false,
252
- "storageLocation": "default",
253
- "typeDescriptions": {
254
- "typeIdentifier": "t_address",
255
- "typeString": "address"
256
- },
257
- "typeName": {
258
- "id": 6024,
259
- "name": "address",
260
- "nodeType": "ElementaryTypeName",
261
- "src": "164:7:41",
262
- "stateMutability": "nonpayable",
263
- "typeDescriptions": {
264
- "typeIdentifier": "t_address",
265
- "typeString": "address"
266
- }
267
- },
268
- "value": null,
269
- "visibility": "internal"
270
- }
271
- ],
272
- "src": "163:15:41"
273
- },
274
- "src": "145:34:41"
275
- },
276
- {
277
- "constant": false,
278
- "id": 6029,
279
- "name": "contractCodeHash",
280
- "nodeType": "VariableDeclaration",
281
- "scope": 6321,
282
- "src": "183:32:41",
283
- "stateVariable": true,
284
- "storageLocation": "default",
285
- "typeDescriptions": {
286
- "typeIdentifier": "t_bytes32",
287
- "typeString": "bytes32"
288
- },
289
- "typeName": {
290
- "id": 6028,
291
- "name": "bytes32",
292
- "nodeType": "ElementaryTypeName",
293
- "src": "183:7:41",
294
- "typeDescriptions": {
295
- "typeIdentifier": "t_bytes32",
296
- "typeString": "bytes32"
297
- }
298
- },
299
- "value": null,
300
- "visibility": "private"
301
- },
302
- {
303
- "body": {
304
- "id": 6041,
305
- "nodeType": "Block",
306
- "src": "241:109:41",
307
- "statements": [
308
- {
309
- "expression": {
310
- "argumentTypes": null,
311
- "id": 6039,
312
- "isConstant": false,
313
- "isLValue": false,
314
- "isPure": false,
315
- "lValueRequested": false,
316
- "leftHandSide": {
317
- "argumentTypes": null,
318
- "id": 6032,
319
- "name": "contractCodeHash",
320
- "nodeType": "Identifier",
321
- "overloadedDeclarations": [],
322
- "referencedDeclaration": 6029,
323
- "src": "247:16:41",
324
- "typeDescriptions": {
325
- "typeIdentifier": "t_bytes32",
326
- "typeString": "bytes32"
327
- }
328
- },
329
- "nodeType": "Assignment",
330
- "operator": "=",
331
- "rightHandSide": {
332
- "argumentTypes": null,
333
- "arguments": [
334
- {
335
- "argumentTypes": null,
336
- "expression": {
337
- "argumentTypes": null,
338
- "arguments": [
339
- {
340
- "argumentTypes": null,
341
- "id": 6035,
342
- "name": "InitializableAdminUpgradeabilityProxy",
343
- "nodeType": "Identifier",
344
- "overloadedDeclarations": [],
345
- "referencedDeclaration": 5800,
346
- "src": "288:37:41",
347
- "typeDescriptions": {
348
- "typeIdentifier": "t_type$_t_contract$_InitializableAdminUpgradeabilityProxy_$5800_$",
349
- "typeString": "type(contract InitializableAdminUpgradeabilityProxy)"
350
- }
351
- }
352
- ],
353
- "expression": {
354
- "argumentTypes": [
355
- {
356
- "typeIdentifier": "t_type$_t_contract$_InitializableAdminUpgradeabilityProxy_$5800_$",
357
- "typeString": "type(contract InitializableAdminUpgradeabilityProxy)"
358
- }
359
- ],
360
- "id": 6034,
361
- "name": "type",
362
- "nodeType": "Identifier",
363
- "overloadedDeclarations": [],
364
- "referencedDeclaration": 6476,
365
- "src": "283:4:41",
366
- "typeDescriptions": {
367
- "typeIdentifier": "t_function_metatype_pure$_t_address_$returns$__$",
368
- "typeString": "function (address) pure"
369
- }
370
- },
371
- "id": 6036,
372
- "isConstant": false,
373
- "isLValue": false,
374
- "isPure": false,
375
- "kind": "functionCall",
376
- "lValueRequested": false,
377
- "names": [],
378
- "nodeType": "FunctionCall",
379
- "src": "283:43:41",
380
- "typeDescriptions": {
381
- "typeIdentifier": "t_magic_meta_type_t_contract$_InitializableAdminUpgradeabilityProxy_$5800",
382
- "typeString": "type(contract InitializableAdminUpgradeabilityProxy)"
383
- }
384
- },
385
- "id": 6037,
386
- "isConstant": false,
387
- "isLValue": false,
388
- "isPure": true,
389
- "lValueRequested": false,
390
- "memberName": "creationCode",
391
- "nodeType": "MemberAccess",
392
- "referencedDeclaration": null,
393
- "src": "283:56:41",
394
- "typeDescriptions": {
395
- "typeIdentifier": "t_bytes_memory_ptr",
396
- "typeString": "bytes memory"
397
- }
398
- }
399
- ],
400
- "expression": {
401
- "argumentTypes": [
402
- {
403
- "typeIdentifier": "t_bytes_memory_ptr",
404
- "typeString": "bytes memory"
405
- }
406
- ],
407
- "id": 6033,
408
- "name": "keccak256",
409
- "nodeType": "Identifier",
410
- "overloadedDeclarations": [],
411
- "referencedDeclaration": 6457,
412
- "src": "266:9:41",
413
- "typeDescriptions": {
414
- "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
415
- "typeString": "function (bytes memory) pure returns (bytes32)"
416
- }
417
- },
418
- "id": 6038,
419
- "isConstant": false,
420
- "isLValue": false,
421
- "isPure": true,
422
- "kind": "functionCall",
423
- "lValueRequested": false,
424
- "names": [],
425
- "nodeType": "FunctionCall",
426
- "src": "266:79:41",
427
- "typeDescriptions": {
428
- "typeIdentifier": "t_bytes32",
429
- "typeString": "bytes32"
430
- }
431
- },
432
- "src": "247:98:41",
433
- "typeDescriptions": {
434
- "typeIdentifier": "t_bytes32",
435
- "typeString": "bytes32"
436
- }
437
- },
438
- "id": 6040,
439
- "nodeType": "ExpressionStatement",
440
- "src": "247:98:41"
441
- }
442
- ]
443
- },
444
- "documentation": null,
445
- "id": 6042,
446
- "implemented": true,
447
- "kind": "constructor",
448
- "modifiers": [],
449
- "name": "",
450
- "nodeType": "FunctionDefinition",
451
- "parameters": {
452
- "id": 6030,
453
- "nodeType": "ParameterList",
454
- "parameters": [],
455
- "src": "231:2:41"
456
- },
457
- "returnParameters": {
458
- "id": 6031,
459
- "nodeType": "ParameterList",
460
- "parameters": [],
461
- "src": "241:0:41"
462
- },
463
- "scope": 6321,
464
- "src": "220:130:41",
465
- "stateMutability": "nonpayable",
466
- "superFunction": null,
467
- "visibility": "public"
468
- },
469
- {
470
- "body": {
471
- "id": 6081,
472
- "nodeType": "Block",
473
- "src": "444:656:41",
474
- "statements": [
475
- {
476
- "assignments": [
477
- 6052
478
- ],
479
- "declarations": [
480
- {
481
- "constant": false,
482
- "id": 6052,
483
- "name": "targetBytes",
484
- "nodeType": "VariableDeclaration",
485
- "scope": 6081,
486
- "src": "588:19:41",
487
- "stateVariable": false,
488
- "storageLocation": "default",
489
- "typeDescriptions": {
490
- "typeIdentifier": "t_bytes20",
491
- "typeString": "bytes20"
492
- },
493
- "typeName": {
494
- "id": 6051,
495
- "name": "bytes20",
496
- "nodeType": "ElementaryTypeName",
497
- "src": "588:7:41",
498
- "typeDescriptions": {
499
- "typeIdentifier": "t_bytes20",
500
- "typeString": "bytes20"
501
- }
502
- },
503
- "value": null,
504
- "visibility": "internal"
505
- }
506
- ],
507
- "id": 6056,
508
- "initialValue": {
509
- "argumentTypes": null,
510
- "arguments": [
511
- {
512
- "argumentTypes": null,
513
- "id": 6054,
514
- "name": "_logic",
515
- "nodeType": "Identifier",
516
- "overloadedDeclarations": [],
517
- "referencedDeclaration": 6044,
518
- "src": "618:6:41",
519
- "typeDescriptions": {
520
- "typeIdentifier": "t_address",
521
- "typeString": "address"
522
- }
523
- }
524
- ],
525
- "expression": {
526
- "argumentTypes": [
527
- {
528
- "typeIdentifier": "t_address",
529
- "typeString": "address"
530
- }
531
- ],
532
- "id": 6053,
533
- "isConstant": false,
534
- "isLValue": false,
535
- "isPure": true,
536
- "lValueRequested": false,
537
- "nodeType": "ElementaryTypeNameExpression",
538
- "src": "610:7:41",
539
- "typeDescriptions": {
540
- "typeIdentifier": "t_type$_t_bytes20_$",
541
- "typeString": "type(bytes20)"
542
- },
543
- "typeName": "bytes20"
544
- },
545
- "id": 6055,
546
- "isConstant": false,
547
- "isLValue": false,
548
- "isPure": false,
549
- "kind": "typeConversion",
550
- "lValueRequested": false,
551
- "names": [],
552
- "nodeType": "FunctionCall",
553
- "src": "610:15:41",
554
- "typeDescriptions": {
555
- "typeIdentifier": "t_bytes20",
556
- "typeString": "bytes20"
557
- }
558
- },
559
- "nodeType": "VariableDeclarationStatement",
560
- "src": "588:37:41"
561
- },
562
- {
563
- "externalReferences": [
564
- {
565
- "proxy": {
566
- "declaration": 6049,
567
- "isOffset": false,
568
- "isSlot": false,
569
- "src": "910:5:41",
570
- "valueSize": 1
571
- }
572
- },
573
- {
574
- "targetBytes": {
575
- "declaration": 6052,
576
- "isOffset": false,
577
- "isSlot": false,
578
- "src": "792:11:41",
579
- "valueSize": 1
580
- }
581
- }
582
- ],
583
- "id": 6057,
584
- "nodeType": "InlineAssembly",
585
- "operations": "{\n let clone := mload(0x40)\n mstore(clone, 0x3d602d80600a3d3981f3363d3d373d3d3d363d73000000000000000000000000)\n mstore(add(clone, 0x14), targetBytes)\n mstore(add(clone, 0x28), 0x5af43d82803e903d91602b57fd5bf30000000000000000000000000000000000)\n proxy := create(0, clone, 0x37)\n}",
586
- "src": "631:330:41"
587
- },
588
- {
589
- "eventCall": {
590
- "argumentTypes": null,
591
- "arguments": [
592
- {
593
- "argumentTypes": null,
594
- "arguments": [
595
- {
596
- "argumentTypes": null,
597
- "id": 6060,
598
- "name": "proxy",
599
- "nodeType": "Identifier",
600
- "overloadedDeclarations": [],
601
- "referencedDeclaration": 6049,
602
- "src": "983:5:41",
603
- "typeDescriptions": {
604
- "typeIdentifier": "t_address",
605
- "typeString": "address"
606
- }
607
- }
608
- ],
609
- "expression": {
610
- "argumentTypes": [
611
- {
612
- "typeIdentifier": "t_address",
613
- "typeString": "address"
614
- }
615
- ],
616
- "id": 6059,
617
- "isConstant": false,
618
- "isLValue": false,
619
- "isPure": true,
620
- "lValueRequested": false,
621
- "nodeType": "ElementaryTypeNameExpression",
622
- "src": "975:7:41",
623
- "typeDescriptions": {
624
- "typeIdentifier": "t_type$_t_address_$",
625
- "typeString": "type(address)"
626
- },
627
- "typeName": "address"
628
- },
629
- "id": 6061,
630
- "isConstant": false,
631
- "isLValue": false,
632
- "isPure": false,
633
- "kind": "typeConversion",
634
- "lValueRequested": false,
635
- "names": [],
636
- "nodeType": "FunctionCall",
637
- "src": "975:14:41",
638
- "typeDescriptions": {
639
- "typeIdentifier": "t_address",
640
- "typeString": "address"
641
- }
642
- }
643
- ],
644
- "expression": {
645
- "argumentTypes": [
646
- {
647
- "typeIdentifier": "t_address",
648
- "typeString": "address"
649
- }
650
- ],
651
- "id": 6058,
652
- "name": "ProxyCreated",
653
- "nodeType": "Identifier",
654
- "overloadedDeclarations": [],
655
- "referencedDeclaration": 6027,
656
- "src": "962:12:41",
657
- "typeDescriptions": {
658
- "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
659
- "typeString": "function (address)"
660
- }
661
- },
662
- "id": 6062,
663
- "isConstant": false,
664
- "isLValue": false,
665
- "isPure": false,
666
- "kind": "functionCall",
667
- "lValueRequested": false,
668
- "names": [],
669
- "nodeType": "FunctionCall",
670
- "src": "962:28:41",
671
- "typeDescriptions": {
672
- "typeIdentifier": "t_tuple$__$",
673
- "typeString": "tuple()"
674
- }
675
- },
676
- "id": 6063,
677
- "nodeType": "EmitStatement",
678
- "src": "957:33:41"
679
- },
680
- {
681
- "condition": {
682
- "argumentTypes": null,
683
- "commonType": {
684
- "typeIdentifier": "t_uint256",
685
- "typeString": "uint256"
686
- },
687
- "id": 6067,
688
- "isConstant": false,
689
- "isLValue": false,
690
- "isPure": false,
691
- "lValueRequested": false,
692
- "leftExpression": {
693
- "argumentTypes": null,
694
- "expression": {
695
- "argumentTypes": null,
696
- "id": 6064,
697
- "name": "_data",
698
- "nodeType": "Identifier",
699
- "overloadedDeclarations": [],
700
- "referencedDeclaration": 6046,
701
- "src": "1000:5:41",
702
- "typeDescriptions": {
703
- "typeIdentifier": "t_bytes_memory_ptr",
704
- "typeString": "bytes memory"
705
- }
706
- },
707
- "id": 6065,
708
- "isConstant": false,
709
- "isLValue": false,
710
- "isPure": false,
711
- "lValueRequested": false,
712
- "memberName": "length",
713
- "nodeType": "MemberAccess",
714
- "referencedDeclaration": null,
715
- "src": "1000:12:41",
716
- "typeDescriptions": {
717
- "typeIdentifier": "t_uint256",
718
- "typeString": "uint256"
719
- }
720
- },
721
- "nodeType": "BinaryOperation",
722
- "operator": ">",
723
- "rightExpression": {
724
- "argumentTypes": null,
725
- "hexValue": "30",
726
- "id": 6066,
727
- "isConstant": false,
728
- "isLValue": false,
729
- "isPure": true,
730
- "kind": "number",
731
- "lValueRequested": false,
732
- "nodeType": "Literal",
733
- "src": "1015:1:41",
734
- "subdenomination": null,
735
- "typeDescriptions": {
736
- "typeIdentifier": "t_rational_0_by_1",
737
- "typeString": "int_const 0"
738
- },
739
- "value": "0"
740
- },
741
- "src": "1000:16:41",
742
- "typeDescriptions": {
743
- "typeIdentifier": "t_bool",
744
- "typeString": "bool"
745
- }
746
- },
747
- "falseBody": null,
748
- "id": 6080,
749
- "nodeType": "IfStatement",
750
- "src": "997:95:41",
751
- "trueBody": {
752
- "id": 6079,
753
- "nodeType": "Block",
754
- "src": "1018:74:41",
755
- "statements": [
756
- {
757
- "assignments": [
758
- 6069,
759
- null
760
- ],
761
- "declarations": [
762
- {
763
- "constant": false,
764
- "id": 6069,
765
- "name": "success",
766
- "nodeType": "VariableDeclaration",
767
- "scope": 6079,
768
- "src": "1027:12:41",
769
- "stateVariable": false,
770
- "storageLocation": "default",
771
- "typeDescriptions": {
772
- "typeIdentifier": "t_bool",
773
- "typeString": "bool"
774
- },
775
- "typeName": {
776
- "id": 6068,
777
- "name": "bool",
778
- "nodeType": "ElementaryTypeName",
779
- "src": "1027:4:41",
780
- "typeDescriptions": {
781
- "typeIdentifier": "t_bool",
782
- "typeString": "bool"
783
- }
784
- },
785
- "value": null,
786
- "visibility": "internal"
787
- },
788
- null
789
- ],
790
- "id": 6074,
791
- "initialValue": {
792
- "argumentTypes": null,
793
- "arguments": [
794
- {
795
- "argumentTypes": null,
796
- "id": 6072,
797
- "name": "_data",
798
- "nodeType": "Identifier",
799
- "overloadedDeclarations": [],
800
- "referencedDeclaration": 6046,
801
- "src": "1055:5:41",
802
- "typeDescriptions": {
803
- "typeIdentifier": "t_bytes_memory_ptr",
804
- "typeString": "bytes memory"
805
- }
806
- }
807
- ],
808
- "expression": {
809
- "argumentTypes": [
810
- {
811
- "typeIdentifier": "t_bytes_memory_ptr",
812
- "typeString": "bytes memory"
813
- }
814
- ],
815
- "expression": {
816
- "argumentTypes": null,
817
- "id": 6070,
818
- "name": "proxy",
819
- "nodeType": "Identifier",
820
- "overloadedDeclarations": [],
821
- "referencedDeclaration": 6049,
822
- "src": "1044:5:41",
823
- "typeDescriptions": {
824
- "typeIdentifier": "t_address",
825
- "typeString": "address"
826
- }
827
- },
828
- "id": 6071,
829
- "isConstant": false,
830
- "isLValue": false,
831
- "isPure": false,
832
- "lValueRequested": false,
833
- "memberName": "call",
834
- "nodeType": "MemberAccess",
835
- "referencedDeclaration": null,
836
- "src": "1044:10:41",
837
- "typeDescriptions": {
838
- "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$",
839
- "typeString": "function (bytes memory) payable returns (bool,bytes memory)"
840
- }
841
- },
842
- "id": 6073,
843
- "isConstant": false,
844
- "isLValue": false,
845
- "isPure": false,
846
- "kind": "functionCall",
847
- "lValueRequested": false,
848
- "names": [],
849
- "nodeType": "FunctionCall",
850
- "src": "1044:17:41",
851
- "typeDescriptions": {
852
- "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$",
853
- "typeString": "tuple(bool,bytes memory)"
854
- }
855
- },
856
- "nodeType": "VariableDeclarationStatement",
857
- "src": "1026:35:41"
858
- },
859
- {
860
- "expression": {
861
- "argumentTypes": null,
862
- "arguments": [
863
- {
864
- "argumentTypes": null,
865
- "id": 6076,
866
- "name": "success",
867
- "nodeType": "Identifier",
868
- "overloadedDeclarations": [],
869
- "referencedDeclaration": 6069,
870
- "src": "1077:7:41",
871
- "typeDescriptions": {
872
- "typeIdentifier": "t_bool",
873
- "typeString": "bool"
874
- }
875
- }
876
- ],
877
- "expression": {
878
- "argumentTypes": [
879
- {
880
- "typeIdentifier": "t_bool",
881
- "typeString": "bool"
882
- }
883
- ],
884
- "id": 6075,
885
- "name": "require",
886
- "nodeType": "Identifier",
887
- "overloadedDeclarations": [
888
- 6466,
889
- 6467
890
- ],
891
- "referencedDeclaration": 6466,
892
- "src": "1069:7:41",
893
- "typeDescriptions": {
894
- "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
895
- "typeString": "function (bool) pure"
896
- }
897
- },
898
- "id": 6077,
899
- "isConstant": false,
900
- "isLValue": false,
901
- "isPure": false,
902
- "kind": "functionCall",
903
- "lValueRequested": false,
904
- "names": [],
905
- "nodeType": "FunctionCall",
906
- "src": "1069:16:41",
907
- "typeDescriptions": {
908
- "typeIdentifier": "t_tuple$__$",
909
- "typeString": "tuple()"
910
- }
911
- },
912
- "id": 6078,
913
- "nodeType": "ExpressionStatement",
914
- "src": "1069:16:41"
915
- }
916
- ]
917
- }
918
- }
919
- ]
920
- },
921
- "documentation": null,
922
- "id": 6082,
923
- "implemented": true,
924
- "kind": "function",
925
- "modifiers": [],
926
- "name": "deployMinimal",
927
- "nodeType": "FunctionDefinition",
928
- "parameters": {
929
- "id": 6047,
930
- "nodeType": "ParameterList",
931
- "parameters": [
932
- {
933
- "constant": false,
934
- "id": 6044,
935
- "name": "_logic",
936
- "nodeType": "VariableDeclaration",
937
- "scope": 6082,
938
- "src": "377:14:41",
939
- "stateVariable": false,
940
- "storageLocation": "default",
941
- "typeDescriptions": {
942
- "typeIdentifier": "t_address",
943
- "typeString": "address"
944
- },
945
- "typeName": {
946
- "id": 6043,
947
- "name": "address",
948
- "nodeType": "ElementaryTypeName",
949
- "src": "377:7:41",
950
- "stateMutability": "nonpayable",
951
- "typeDescriptions": {
952
- "typeIdentifier": "t_address",
953
- "typeString": "address"
954
- }
955
- },
956
- "value": null,
957
- "visibility": "internal"
958
- },
959
- {
960
- "constant": false,
961
- "id": 6046,
962
- "name": "_data",
963
- "nodeType": "VariableDeclaration",
964
- "scope": 6082,
965
- "src": "393:18:41",
966
- "stateVariable": false,
967
- "storageLocation": "memory",
968
- "typeDescriptions": {
969
- "typeIdentifier": "t_bytes_memory_ptr",
970
- "typeString": "bytes"
971
- },
972
- "typeName": {
973
- "id": 6045,
974
- "name": "bytes",
975
- "nodeType": "ElementaryTypeName",
976
- "src": "393:5:41",
977
- "typeDescriptions": {
978
- "typeIdentifier": "t_bytes_storage_ptr",
979
- "typeString": "bytes"
980
- }
981
- },
982
- "value": null,
983
- "visibility": "internal"
984
- }
985
- ],
986
- "src": "376:36:41"
987
- },
988
- "returnParameters": {
989
- "id": 6050,
990
- "nodeType": "ParameterList",
991
- "parameters": [
992
- {
993
- "constant": false,
994
- "id": 6049,
995
- "name": "proxy",
996
- "nodeType": "VariableDeclaration",
997
- "scope": 6082,
998
- "src": "429:13:41",
999
- "stateVariable": false,
1000
- "storageLocation": "default",
1001
- "typeDescriptions": {
1002
- "typeIdentifier": "t_address",
1003
- "typeString": "address"
1004
- },
1005
- "typeName": {
1006
- "id": 6048,
1007
- "name": "address",
1008
- "nodeType": "ElementaryTypeName",
1009
- "src": "429:7:41",
1010
- "stateMutability": "nonpayable",
1011
- "typeDescriptions": {
1012
- "typeIdentifier": "t_address",
1013
- "typeString": "address"
1014
- }
1015
- },
1016
- "value": null,
1017
- "visibility": "internal"
1018
- }
1019
- ],
1020
- "src": "428:15:41"
1021
- },
1022
- "scope": 6321,
1023
- "src": "354:746:41",
1024
- "stateMutability": "nonpayable",
1025
- "superFunction": null,
1026
- "visibility": "public"
1027
- },
1028
- {
1029
- "body": {
1030
- "id": 6104,
1031
- "nodeType": "Block",
1032
- "src": "1212:72:41",
1033
- "statements": [
1034
- {
1035
- "expression": {
1036
- "argumentTypes": null,
1037
- "arguments": [
1038
- {
1039
- "argumentTypes": null,
1040
- "id": 6096,
1041
- "name": "_salt",
1042
- "nodeType": "Identifier",
1043
- "overloadedDeclarations": [],
1044
- "referencedDeclaration": 6084,
1045
- "src": "1238:5:41",
1046
- "typeDescriptions": {
1047
- "typeIdentifier": "t_uint256",
1048
- "typeString": "uint256"
1049
- }
1050
- },
1051
- {
1052
- "argumentTypes": null,
1053
- "id": 6097,
1054
- "name": "_logic",
1055
- "nodeType": "Identifier",
1056
- "overloadedDeclarations": [],
1057
- "referencedDeclaration": 6086,
1058
- "src": "1245:6:41",
1059
- "typeDescriptions": {
1060
- "typeIdentifier": "t_address",
1061
- "typeString": "address"
1062
- }
1063
- },
1064
- {
1065
- "argumentTypes": null,
1066
- "id": 6098,
1067
- "name": "_admin",
1068
- "nodeType": "Identifier",
1069
- "overloadedDeclarations": [],
1070
- "referencedDeclaration": 6088,
1071
- "src": "1253:6:41",
1072
- "typeDescriptions": {
1073
- "typeIdentifier": "t_address",
1074
- "typeString": "address"
1075
- }
1076
- },
1077
- {
1078
- "argumentTypes": null,
1079
- "id": 6099,
1080
- "name": "_data",
1081
- "nodeType": "Identifier",
1082
- "overloadedDeclarations": [],
1083
- "referencedDeclaration": 6090,
1084
- "src": "1261:5:41",
1085
- "typeDescriptions": {
1086
- "typeIdentifier": "t_bytes_memory_ptr",
1087
- "typeString": "bytes memory"
1088
- }
1089
- },
1090
- {
1091
- "argumentTypes": null,
1092
- "expression": {
1093
- "argumentTypes": null,
1094
- "id": 6100,
1095
- "name": "msg",
1096
- "nodeType": "Identifier",
1097
- "overloadedDeclarations": [],
1098
- "referencedDeclaration": 6463,
1099
- "src": "1268:3:41",
1100
- "typeDescriptions": {
1101
- "typeIdentifier": "t_magic_message",
1102
- "typeString": "msg"
1103
- }
1104
- },
1105
- "id": 6101,
1106
- "isConstant": false,
1107
- "isLValue": false,
1108
- "isPure": false,
1109
- "lValueRequested": false,
1110
- "memberName": "sender",
1111
- "nodeType": "MemberAccess",
1112
- "referencedDeclaration": null,
1113
- "src": "1268:10:41",
1114
- "typeDescriptions": {
1115
- "typeIdentifier": "t_address_payable",
1116
- "typeString": "address payable"
1117
- }
1118
- }
1119
- ],
1120
- "expression": {
1121
- "argumentTypes": [
1122
- {
1123
- "typeIdentifier": "t_uint256",
1124
- "typeString": "uint256"
1125
- },
1126
- {
1127
- "typeIdentifier": "t_address",
1128
- "typeString": "address"
1129
- },
1130
- {
1131
- "typeIdentifier": "t_address",
1132
- "typeString": "address"
1133
- },
1134
- {
1135
- "typeIdentifier": "t_bytes_memory_ptr",
1136
- "typeString": "bytes memory"
1137
- },
1138
- {
1139
- "typeIdentifier": "t_address_payable",
1140
- "typeString": "address payable"
1141
- }
1142
- ],
1143
- "id": 6095,
1144
- "name": "_deployProxy",
1145
- "nodeType": "Identifier",
1146
- "overloadedDeclarations": [],
1147
- "referencedDeclaration": 6270,
1148
- "src": "1225:12:41",
1149
- "typeDescriptions": {
1150
- "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_bytes_memory_ptr_$_t_address_$returns$_t_address_$",
1151
- "typeString": "function (uint256,address,address,bytes memory,address) returns (address)"
1152
- }
1153
- },
1154
- "id": 6102,
1155
- "isConstant": false,
1156
- "isLValue": false,
1157
- "isPure": false,
1158
- "kind": "functionCall",
1159
- "lValueRequested": false,
1160
- "names": [],
1161
- "nodeType": "FunctionCall",
1162
- "src": "1225:54:41",
1163
- "typeDescriptions": {
1164
- "typeIdentifier": "t_address",
1165
- "typeString": "address"
1166
- }
1167
- },
1168
- "functionReturnParameters": 6094,
1169
- "id": 6103,
1170
- "nodeType": "Return",
1171
- "src": "1218:61:41"
1172
- }
1173
- ]
1174
- },
1175
- "documentation": null,
1176
- "id": 6105,
1177
- "implemented": true,
1178
- "kind": "function",
1179
- "modifiers": [],
1180
- "name": "deploy",
1181
- "nodeType": "FunctionDefinition",
1182
- "parameters": {
1183
- "id": 6091,
1184
- "nodeType": "ParameterList",
1185
- "parameters": [
1186
- {
1187
- "constant": false,
1188
- "id": 6084,
1189
- "name": "_salt",
1190
- "nodeType": "VariableDeclaration",
1191
- "scope": 6105,
1192
- "src": "1120:13:41",
1193
- "stateVariable": false,
1194
- "storageLocation": "default",
1195
- "typeDescriptions": {
1196
- "typeIdentifier": "t_uint256",
1197
- "typeString": "uint256"
1198
- },
1199
- "typeName": {
1200
- "id": 6083,
1201
- "name": "uint256",
1202
- "nodeType": "ElementaryTypeName",
1203
- "src": "1120:7:41",
1204
- "typeDescriptions": {
1205
- "typeIdentifier": "t_uint256",
1206
- "typeString": "uint256"
1207
- }
1208
- },
1209
- "value": null,
1210
- "visibility": "internal"
1211
- },
1212
- {
1213
- "constant": false,
1214
- "id": 6086,
1215
- "name": "_logic",
1216
- "nodeType": "VariableDeclaration",
1217
- "scope": 6105,
1218
- "src": "1135:14:41",
1219
- "stateVariable": false,
1220
- "storageLocation": "default",
1221
- "typeDescriptions": {
1222
- "typeIdentifier": "t_address",
1223
- "typeString": "address"
1224
- },
1225
- "typeName": {
1226
- "id": 6085,
1227
- "name": "address",
1228
- "nodeType": "ElementaryTypeName",
1229
- "src": "1135:7:41",
1230
- "stateMutability": "nonpayable",
1231
- "typeDescriptions": {
1232
- "typeIdentifier": "t_address",
1233
- "typeString": "address"
1234
- }
1235
- },
1236
- "value": null,
1237
- "visibility": "internal"
1238
- },
1239
- {
1240
- "constant": false,
1241
- "id": 6088,
1242
- "name": "_admin",
1243
- "nodeType": "VariableDeclaration",
1244
- "scope": 6105,
1245
- "src": "1151:14:41",
1246
- "stateVariable": false,
1247
- "storageLocation": "default",
1248
- "typeDescriptions": {
1249
- "typeIdentifier": "t_address",
1250
- "typeString": "address"
1251
- },
1252
- "typeName": {
1253
- "id": 6087,
1254
- "name": "address",
1255
- "nodeType": "ElementaryTypeName",
1256
- "src": "1151:7:41",
1257
- "stateMutability": "nonpayable",
1258
- "typeDescriptions": {
1259
- "typeIdentifier": "t_address",
1260
- "typeString": "address"
1261
- }
1262
- },
1263
- "value": null,
1264
- "visibility": "internal"
1265
- },
1266
- {
1267
- "constant": false,
1268
- "id": 6090,
1269
- "name": "_data",
1270
- "nodeType": "VariableDeclaration",
1271
- "scope": 6105,
1272
- "src": "1167:18:41",
1273
- "stateVariable": false,
1274
- "storageLocation": "memory",
1275
- "typeDescriptions": {
1276
- "typeIdentifier": "t_bytes_memory_ptr",
1277
- "typeString": "bytes"
1278
- },
1279
- "typeName": {
1280
- "id": 6089,
1281
- "name": "bytes",
1282
- "nodeType": "ElementaryTypeName",
1283
- "src": "1167:5:41",
1284
- "typeDescriptions": {
1285
- "typeIdentifier": "t_bytes_storage_ptr",
1286
- "typeString": "bytes"
1287
- }
1288
- },
1289
- "value": null,
1290
- "visibility": "internal"
1291
- }
1292
- ],
1293
- "src": "1119:67:41"
1294
- },
1295
- "returnParameters": {
1296
- "id": 6094,
1297
- "nodeType": "ParameterList",
1298
- "parameters": [
1299
- {
1300
- "constant": false,
1301
- "id": 6093,
1302
- "name": "",
1303
- "nodeType": "VariableDeclaration",
1304
- "scope": 6105,
1305
- "src": "1203:7:41",
1306
- "stateVariable": false,
1307
- "storageLocation": "default",
1308
- "typeDescriptions": {
1309
- "typeIdentifier": "t_address",
1310
- "typeString": "address"
1311
- },
1312
- "typeName": {
1313
- "id": 6092,
1314
- "name": "address",
1315
- "nodeType": "ElementaryTypeName",
1316
- "src": "1203:7:41",
1317
- "stateMutability": "nonpayable",
1318
- "typeDescriptions": {
1319
- "typeIdentifier": "t_address",
1320
- "typeString": "address"
1321
- }
1322
- },
1323
- "value": null,
1324
- "visibility": "internal"
1325
- }
1326
- ],
1327
- "src": "1202:9:41"
1328
- },
1329
- "scope": 6321,
1330
- "src": "1104:180:41",
1331
- "stateMutability": "nonpayable",
1332
- "superFunction": null,
1333
- "visibility": "public"
1334
- },
1335
- {
1336
- "body": {
1337
- "id": 6147,
1338
- "nodeType": "Block",
1339
- "src": "1427:198:41",
1340
- "statements": [
1341
- {
1342
- "assignments": [
1343
- 6121
1344
- ],
1345
- "declarations": [
1346
- {
1347
- "constant": false,
1348
- "id": 6121,
1349
- "name": "signer",
1350
- "nodeType": "VariableDeclaration",
1351
- "scope": 6147,
1352
- "src": "1433:14:41",
1353
- "stateVariable": false,
1354
- "storageLocation": "default",
1355
- "typeDescriptions": {
1356
- "typeIdentifier": "t_address",
1357
- "typeString": "address"
1358
- },
1359
- "typeName": {
1360
- "id": 6120,
1361
- "name": "address",
1362
- "nodeType": "ElementaryTypeName",
1363
- "src": "1433:7:41",
1364
- "stateMutability": "nonpayable",
1365
- "typeDescriptions": {
1366
- "typeIdentifier": "t_address",
1367
- "typeString": "address"
1368
- }
1369
- },
1370
- "value": null,
1371
- "visibility": "internal"
1372
- }
1373
- ],
1374
- "id": 6129,
1375
- "initialValue": {
1376
- "argumentTypes": null,
1377
- "arguments": [
1378
- {
1379
- "argumentTypes": null,
1380
- "id": 6123,
1381
- "name": "_salt",
1382
- "nodeType": "Identifier",
1383
- "overloadedDeclarations": [],
1384
- "referencedDeclaration": 6107,
1385
- "src": "1460:5:41",
1386
- "typeDescriptions": {
1387
- "typeIdentifier": "t_uint256",
1388
- "typeString": "uint256"
1389
- }
1390
- },
1391
- {
1392
- "argumentTypes": null,
1393
- "id": 6124,
1394
- "name": "_logic",
1395
- "nodeType": "Identifier",
1396
- "overloadedDeclarations": [],
1397
- "referencedDeclaration": 6109,
1398
- "src": "1467:6:41",
1399
- "typeDescriptions": {
1400
- "typeIdentifier": "t_address",
1401
- "typeString": "address"
1402
- }
1403
- },
1404
- {
1405
- "argumentTypes": null,
1406
- "id": 6125,
1407
- "name": "_admin",
1408
- "nodeType": "Identifier",
1409
- "overloadedDeclarations": [],
1410
- "referencedDeclaration": 6111,
1411
- "src": "1475:6:41",
1412
- "typeDescriptions": {
1413
- "typeIdentifier": "t_address",
1414
- "typeString": "address"
1415
- }
1416
- },
1417
- {
1418
- "argumentTypes": null,
1419
- "id": 6126,
1420
- "name": "_data",
1421
- "nodeType": "Identifier",
1422
- "overloadedDeclarations": [],
1423
- "referencedDeclaration": 6113,
1424
- "src": "1483:5:41",
1425
- "typeDescriptions": {
1426
- "typeIdentifier": "t_bytes_memory_ptr",
1427
- "typeString": "bytes memory"
1428
- }
1429
- },
1430
- {
1431
- "argumentTypes": null,
1432
- "id": 6127,
1433
- "name": "_signature",
1434
- "nodeType": "Identifier",
1435
- "overloadedDeclarations": [],
1436
- "referencedDeclaration": 6115,
1437
- "src": "1490:10:41",
1438
- "typeDescriptions": {
1439
- "typeIdentifier": "t_bytes_memory_ptr",
1440
- "typeString": "bytes memory"
1441
- }
1442
- }
1443
- ],
1444
- "expression": {
1445
- "argumentTypes": [
1446
- {
1447
- "typeIdentifier": "t_uint256",
1448
- "typeString": "uint256"
1449
- },
1450
- {
1451
- "typeIdentifier": "t_address",
1452
- "typeString": "address"
1453
- },
1454
- {
1455
- "typeIdentifier": "t_address",
1456
- "typeString": "address"
1457
- },
1458
- {
1459
- "typeIdentifier": "t_bytes_memory_ptr",
1460
- "typeString": "bytes memory"
1461
- },
1462
- {
1463
- "typeIdentifier": "t_bytes_memory_ptr",
1464
- "typeString": "bytes memory"
1465
- }
1466
- ],
1467
- "id": 6122,
1468
- "name": "getSigner",
1469
- "nodeType": "Identifier",
1470
- "overloadedDeclarations": [],
1471
- "referencedDeclaration": 6229,
1472
- "src": "1450:9:41",
1473
- "typeDescriptions": {
1474
- "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_address_$_t_address_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_address_$",
1475
- "typeString": "function (uint256,address,address,bytes memory,bytes memory) view returns (address)"
1476
- }
1477
- },
1478
- "id": 6128,
1479
- "isConstant": false,
1480
- "isLValue": false,
1481
- "isPure": false,
1482
- "kind": "functionCall",
1483
- "lValueRequested": false,
1484
- "names": [],
1485
- "nodeType": "FunctionCall",
1486
- "src": "1450:51:41",
1487
- "typeDescriptions": {
1488
- "typeIdentifier": "t_address",
1489
- "typeString": "address"
1490
- }
1491
- },
1492
- "nodeType": "VariableDeclarationStatement",
1493
- "src": "1433:68:41"
1494
- },
1495
- {
1496
- "expression": {
1497
- "argumentTypes": null,
1498
- "arguments": [
1499
- {
1500
- "argumentTypes": null,
1501
- "commonType": {
1502
- "typeIdentifier": "t_address",
1503
- "typeString": "address"
1504
- },
1505
- "id": 6135,
1506
- "isConstant": false,
1507
- "isLValue": false,
1508
- "isPure": false,
1509
- "lValueRequested": false,
1510
- "leftExpression": {
1511
- "argumentTypes": null,
1512
- "id": 6131,
1513
- "name": "signer",
1514
- "nodeType": "Identifier",
1515
- "overloadedDeclarations": [],
1516
- "referencedDeclaration": 6121,
1517
- "src": "1515:6:41",
1518
- "typeDescriptions": {
1519
- "typeIdentifier": "t_address",
1520
- "typeString": "address"
1521
- }
1522
- },
1523
- "nodeType": "BinaryOperation",
1524
- "operator": "!=",
1525
- "rightExpression": {
1526
- "argumentTypes": null,
1527
- "arguments": [
1528
- {
1529
- "argumentTypes": null,
1530
- "hexValue": "30",
1531
- "id": 6133,
1532
- "isConstant": false,
1533
- "isLValue": false,
1534
- "isPure": true,
1535
- "kind": "number",
1536
- "lValueRequested": false,
1537
- "nodeType": "Literal",
1538
- "src": "1533:1:41",
1539
- "subdenomination": null,
1540
- "typeDescriptions": {
1541
- "typeIdentifier": "t_rational_0_by_1",
1542
- "typeString": "int_const 0"
1543
- },
1544
- "value": "0"
1545
- }
1546
- ],
1547
- "expression": {
1548
- "argumentTypes": [
1549
- {
1550
- "typeIdentifier": "t_rational_0_by_1",
1551
- "typeString": "int_const 0"
1552
- }
1553
- ],
1554
- "id": 6132,
1555
- "isConstant": false,
1556
- "isLValue": false,
1557
- "isPure": true,
1558
- "lValueRequested": false,
1559
- "nodeType": "ElementaryTypeNameExpression",
1560
- "src": "1525:7:41",
1561
- "typeDescriptions": {
1562
- "typeIdentifier": "t_type$_t_address_$",
1563
- "typeString": "type(address)"
1564
- },
1565
- "typeName": "address"
1566
- },
1567
- "id": 6134,
1568
- "isConstant": false,
1569
- "isLValue": false,
1570
- "isPure": true,
1571
- "kind": "typeConversion",
1572
- "lValueRequested": false,
1573
- "names": [],
1574
- "nodeType": "FunctionCall",
1575
- "src": "1525:10:41",
1576
- "typeDescriptions": {
1577
- "typeIdentifier": "t_address_payable",
1578
- "typeString": "address payable"
1579
- }
1580
- },
1581
- "src": "1515:20:41",
1582
- "typeDescriptions": {
1583
- "typeIdentifier": "t_bool",
1584
- "typeString": "bool"
1585
- }
1586
- },
1587
- {
1588
- "argumentTypes": null,
1589
- "hexValue": "496e76616c6964207369676e6174757265",
1590
- "id": 6136,
1591
- "isConstant": false,
1592
- "isLValue": false,
1593
- "isPure": true,
1594
- "kind": "string",
1595
- "lValueRequested": false,
1596
- "nodeType": "Literal",
1597
- "src": "1537:19:41",
1598
- "subdenomination": null,
1599
- "typeDescriptions": {
1600
- "typeIdentifier": "t_stringliteral_4f2d7dfcb27c0aafa13ae8c400de482c7832204d194018b6e45bd2bf244c74e7",
1601
- "typeString": "literal_string \"Invalid signature\""
1602
- },
1603
- "value": "Invalid signature"
1604
- }
1605
- ],
1606
- "expression": {
1607
- "argumentTypes": [
1608
- {
1609
- "typeIdentifier": "t_bool",
1610
- "typeString": "bool"
1611
- },
1612
- {
1613
- "typeIdentifier": "t_stringliteral_4f2d7dfcb27c0aafa13ae8c400de482c7832204d194018b6e45bd2bf244c74e7",
1614
- "typeString": "literal_string \"Invalid signature\""
1615
- }
1616
- ],
1617
- "id": 6130,
1618
- "name": "require",
1619
- "nodeType": "Identifier",
1620
- "overloadedDeclarations": [
1621
- 6466,
1622
- 6467
1623
- ],
1624
- "referencedDeclaration": 6467,
1625
- "src": "1507:7:41",
1626
- "typeDescriptions": {
1627
- "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
1628
- "typeString": "function (bool,string memory) pure"
1629
- }
1630
- },
1631
- "id": 6137,
1632
- "isConstant": false,
1633
- "isLValue": false,
1634
- "isPure": false,
1635
- "kind": "functionCall",
1636
- "lValueRequested": false,
1637
- "names": [],
1638
- "nodeType": "FunctionCall",
1639
- "src": "1507:50:41",
1640
- "typeDescriptions": {
1641
- "typeIdentifier": "t_tuple$__$",
1642
- "typeString": "tuple()"
1643
- }
1644
- },
1645
- "id": 6138,
1646
- "nodeType": "ExpressionStatement",
1647
- "src": "1507:50:41"
1648
- },
1649
- {
1650
- "expression": {
1651
- "argumentTypes": null,
1652
- "arguments": [
1653
- {
1654
- "argumentTypes": null,
1655
- "id": 6140,
1656
- "name": "_salt",
1657
- "nodeType": "Identifier",
1658
- "overloadedDeclarations": [],
1659
- "referencedDeclaration": 6107,
1660
- "src": "1583:5:41",
1661
- "typeDescriptions": {
1662
- "typeIdentifier": "t_uint256",
1663
- "typeString": "uint256"
1664
- }
1665
- },
1666
- {
1667
- "argumentTypes": null,
1668
- "id": 6141,
1669
- "name": "_logic",
1670
- "nodeType": "Identifier",
1671
- "overloadedDeclarations": [],
1672
- "referencedDeclaration": 6109,
1673
- "src": "1590:6:41",
1674
- "typeDescriptions": {
1675
- "typeIdentifier": "t_address",
1676
- "typeString": "address"
1677
- }
1678
- },
1679
- {
1680
- "argumentTypes": null,
1681
- "id": 6142,
1682
- "name": "_admin",
1683
- "nodeType": "Identifier",
1684
- "overloadedDeclarations": [],
1685
- "referencedDeclaration": 6111,
1686
- "src": "1598:6:41",
1687
- "typeDescriptions": {
1688
- "typeIdentifier": "t_address",
1689
- "typeString": "address"
1690
- }
1691
- },
1692
- {
1693
- "argumentTypes": null,
1694
- "id": 6143,
1695
- "name": "_data",
1696
- "nodeType": "Identifier",
1697
- "overloadedDeclarations": [],
1698
- "referencedDeclaration": 6113,
1699
- "src": "1606:5:41",
1700
- "typeDescriptions": {
1701
- "typeIdentifier": "t_bytes_memory_ptr",
1702
- "typeString": "bytes memory"
1703
- }
1704
- },
1705
- {
1706
- "argumentTypes": null,
1707
- "id": 6144,
1708
- "name": "signer",
1709
- "nodeType": "Identifier",
1710
- "overloadedDeclarations": [],
1711
- "referencedDeclaration": 6121,
1712
- "src": "1613:6:41",
1713
- "typeDescriptions": {
1714
- "typeIdentifier": "t_address",
1715
- "typeString": "address"
1716
- }
1717
- }
1718
- ],
1719
- "expression": {
1720
- "argumentTypes": [
1721
- {
1722
- "typeIdentifier": "t_uint256",
1723
- "typeString": "uint256"
1724
- },
1725
- {
1726
- "typeIdentifier": "t_address",
1727
- "typeString": "address"
1728
- },
1729
- {
1730
- "typeIdentifier": "t_address",
1731
- "typeString": "address"
1732
- },
1733
- {
1734
- "typeIdentifier": "t_bytes_memory_ptr",
1735
- "typeString": "bytes memory"
1736
- },
1737
- {
1738
- "typeIdentifier": "t_address",
1739
- "typeString": "address"
1740
- }
1741
- ],
1742
- "id": 6139,
1743
- "name": "_deployProxy",
1744
- "nodeType": "Identifier",
1745
- "overloadedDeclarations": [],
1746
- "referencedDeclaration": 6270,
1747
- "src": "1570:12:41",
1748
- "typeDescriptions": {
1749
- "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_bytes_memory_ptr_$_t_address_$returns$_t_address_$",
1750
- "typeString": "function (uint256,address,address,bytes memory,address) returns (address)"
1751
- }
1752
- },
1753
- "id": 6145,
1754
- "isConstant": false,
1755
- "isLValue": false,
1756
- "isPure": false,
1757
- "kind": "functionCall",
1758
- "lValueRequested": false,
1759
- "names": [],
1760
- "nodeType": "FunctionCall",
1761
- "src": "1570:50:41",
1762
- "typeDescriptions": {
1763
- "typeIdentifier": "t_address",
1764
- "typeString": "address"
1765
- }
1766
- },
1767
- "functionReturnParameters": 6119,
1768
- "id": 6146,
1769
- "nodeType": "Return",
1770
- "src": "1563:57:41"
1771
- }
1772
- ]
1773
- },
1774
- "documentation": null,
1775
- "id": 6148,
1776
- "implemented": true,
1777
- "kind": "function",
1778
- "modifiers": [],
1779
- "name": "deploySigned",
1780
- "nodeType": "FunctionDefinition",
1781
- "parameters": {
1782
- "id": 6116,
1783
- "nodeType": "ParameterList",
1784
- "parameters": [
1785
- {
1786
- "constant": false,
1787
- "id": 6107,
1788
- "name": "_salt",
1789
- "nodeType": "VariableDeclaration",
1790
- "scope": 6148,
1791
- "src": "1310:13:41",
1792
- "stateVariable": false,
1793
- "storageLocation": "default",
1794
- "typeDescriptions": {
1795
- "typeIdentifier": "t_uint256",
1796
- "typeString": "uint256"
1797
- },
1798
- "typeName": {
1799
- "id": 6106,
1800
- "name": "uint256",
1801
- "nodeType": "ElementaryTypeName",
1802
- "src": "1310:7:41",
1803
- "typeDescriptions": {
1804
- "typeIdentifier": "t_uint256",
1805
- "typeString": "uint256"
1806
- }
1807
- },
1808
- "value": null,
1809
- "visibility": "internal"
1810
- },
1811
- {
1812
- "constant": false,
1813
- "id": 6109,
1814
- "name": "_logic",
1815
- "nodeType": "VariableDeclaration",
1816
- "scope": 6148,
1817
- "src": "1325:14:41",
1818
- "stateVariable": false,
1819
- "storageLocation": "default",
1820
- "typeDescriptions": {
1821
- "typeIdentifier": "t_address",
1822
- "typeString": "address"
1823
- },
1824
- "typeName": {
1825
- "id": 6108,
1826
- "name": "address",
1827
- "nodeType": "ElementaryTypeName",
1828
- "src": "1325:7:41",
1829
- "stateMutability": "nonpayable",
1830
- "typeDescriptions": {
1831
- "typeIdentifier": "t_address",
1832
- "typeString": "address"
1833
- }
1834
- },
1835
- "value": null,
1836
- "visibility": "internal"
1837
- },
1838
- {
1839
- "constant": false,
1840
- "id": 6111,
1841
- "name": "_admin",
1842
- "nodeType": "VariableDeclaration",
1843
- "scope": 6148,
1844
- "src": "1341:14:41",
1845
- "stateVariable": false,
1846
- "storageLocation": "default",
1847
- "typeDescriptions": {
1848
- "typeIdentifier": "t_address",
1849
- "typeString": "address"
1850
- },
1851
- "typeName": {
1852
- "id": 6110,
1853
- "name": "address",
1854
- "nodeType": "ElementaryTypeName",
1855
- "src": "1341:7:41",
1856
- "stateMutability": "nonpayable",
1857
- "typeDescriptions": {
1858
- "typeIdentifier": "t_address",
1859
- "typeString": "address"
1860
- }
1861
- },
1862
- "value": null,
1863
- "visibility": "internal"
1864
- },
1865
- {
1866
- "constant": false,
1867
- "id": 6113,
1868
- "name": "_data",
1869
- "nodeType": "VariableDeclaration",
1870
- "scope": 6148,
1871
- "src": "1357:18:41",
1872
- "stateVariable": false,
1873
- "storageLocation": "memory",
1874
- "typeDescriptions": {
1875
- "typeIdentifier": "t_bytes_memory_ptr",
1876
- "typeString": "bytes"
1877
- },
1878
- "typeName": {
1879
- "id": 6112,
1880
- "name": "bytes",
1881
- "nodeType": "ElementaryTypeName",
1882
- "src": "1357:5:41",
1883
- "typeDescriptions": {
1884
- "typeIdentifier": "t_bytes_storage_ptr",
1885
- "typeString": "bytes"
1886
- }
1887
- },
1888
- "value": null,
1889
- "visibility": "internal"
1890
- },
1891
- {
1892
- "constant": false,
1893
- "id": 6115,
1894
- "name": "_signature",
1895
- "nodeType": "VariableDeclaration",
1896
- "scope": 6148,
1897
- "src": "1377:23:41",
1898
- "stateVariable": false,
1899
- "storageLocation": "memory",
1900
- "typeDescriptions": {
1901
- "typeIdentifier": "t_bytes_memory_ptr",
1902
- "typeString": "bytes"
1903
- },
1904
- "typeName": {
1905
- "id": 6114,
1906
- "name": "bytes",
1907
- "nodeType": "ElementaryTypeName",
1908
- "src": "1377:5:41",
1909
- "typeDescriptions": {
1910
- "typeIdentifier": "t_bytes_storage_ptr",
1911
- "typeString": "bytes"
1912
- }
1913
- },
1914
- "value": null,
1915
- "visibility": "internal"
1916
- }
1917
- ],
1918
- "src": "1309:92:41"
1919
- },
1920
- "returnParameters": {
1921
- "id": 6119,
1922
- "nodeType": "ParameterList",
1923
- "parameters": [
1924
- {
1925
- "constant": false,
1926
- "id": 6118,
1927
- "name": "",
1928
- "nodeType": "VariableDeclaration",
1929
- "scope": 6148,
1930
- "src": "1418:7:41",
1931
- "stateVariable": false,
1932
- "storageLocation": "default",
1933
- "typeDescriptions": {
1934
- "typeIdentifier": "t_address",
1935
- "typeString": "address"
1936
- },
1937
- "typeName": {
1938
- "id": 6117,
1939
- "name": "address",
1940
- "nodeType": "ElementaryTypeName",
1941
- "src": "1418:7:41",
1942
- "stateMutability": "nonpayable",
1943
- "typeDescriptions": {
1944
- "typeIdentifier": "t_address",
1945
- "typeString": "address"
1946
- }
1947
- },
1948
- "value": null,
1949
- "visibility": "internal"
1950
- }
1951
- ],
1952
- "src": "1417:9:41"
1953
- },
1954
- "scope": 6321,
1955
- "src": "1288:337:41",
1956
- "stateMutability": "nonpayable",
1957
- "superFunction": null,
1958
- "visibility": "public"
1959
- },
1960
- {
1961
- "body": {
1962
- "id": 6188,
1963
- "nodeType": "Block",
1964
- "src": "1721:407:41",
1965
- "statements": [
1966
- {
1967
- "assignments": [
1968
- 6158
1969
- ],
1970
- "declarations": [
1971
- {
1972
- "constant": false,
1973
- "id": 6158,
1974
- "name": "salt",
1975
- "nodeType": "VariableDeclaration",
1976
- "scope": 6188,
1977
- "src": "1877:12:41",
1978
- "stateVariable": false,
1979
- "storageLocation": "default",
1980
- "typeDescriptions": {
1981
- "typeIdentifier": "t_bytes32",
1982
- "typeString": "bytes32"
1983
- },
1984
- "typeName": {
1985
- "id": 6157,
1986
- "name": "bytes32",
1987
- "nodeType": "ElementaryTypeName",
1988
- "src": "1877:7:41",
1989
- "typeDescriptions": {
1990
- "typeIdentifier": "t_bytes32",
1991
- "typeString": "bytes32"
1992
- }
1993
- },
1994
- "value": null,
1995
- "visibility": "internal"
1996
- }
1997
- ],
1998
- "id": 6163,
1999
- "initialValue": {
2000
- "argumentTypes": null,
2001
- "arguments": [
2002
- {
2003
- "argumentTypes": null,
2004
- "id": 6160,
2005
- "name": "_salt",
2006
- "nodeType": "Identifier",
2007
- "overloadedDeclarations": [],
2008
- "referencedDeclaration": 6150,
2009
- "src": "1901:5:41",
2010
- "typeDescriptions": {
2011
- "typeIdentifier": "t_uint256",
2012
- "typeString": "uint256"
2013
- }
2014
- },
2015
- {
2016
- "argumentTypes": null,
2017
- "id": 6161,
2018
- "name": "_sender",
2019
- "nodeType": "Identifier",
2020
- "overloadedDeclarations": [],
2021
- "referencedDeclaration": 6152,
2022
- "src": "1908:7:41",
2023
- "typeDescriptions": {
2024
- "typeIdentifier": "t_address",
2025
- "typeString": "address"
2026
- }
2027
- }
2028
- ],
2029
- "expression": {
2030
- "argumentTypes": [
2031
- {
2032
- "typeIdentifier": "t_uint256",
2033
- "typeString": "uint256"
2034
- },
2035
- {
2036
- "typeIdentifier": "t_address",
2037
- "typeString": "address"
2038
- }
2039
- ],
2040
- "id": 6159,
2041
- "name": "_getSalt",
2042
- "nodeType": "Identifier",
2043
- "overloadedDeclarations": [],
2044
- "referencedDeclaration": 6320,
2045
- "src": "1892:8:41",
2046
- "typeDescriptions": {
2047
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_address_$returns$_t_bytes32_$",
2048
- "typeString": "function (uint256,address) pure returns (bytes32)"
2049
- }
2050
- },
2051
- "id": 6162,
2052
- "isConstant": false,
2053
- "isLValue": false,
2054
- "isPure": false,
2055
- "kind": "functionCall",
2056
- "lValueRequested": false,
2057
- "names": [],
2058
- "nodeType": "FunctionCall",
2059
- "src": "1892:24:41",
2060
- "typeDescriptions": {
2061
- "typeIdentifier": "t_bytes32",
2062
- "typeString": "bytes32"
2063
- }
2064
- },
2065
- "nodeType": "VariableDeclarationStatement",
2066
- "src": "1877:39:41"
2067
- },
2068
- {
2069
- "assignments": [
2070
- 6165
2071
- ],
2072
- "declarations": [
2073
- {
2074
- "constant": false,
2075
- "id": 6165,
2076
- "name": "rawAddress",
2077
- "nodeType": "VariableDeclaration",
2078
- "scope": 6188,
2079
- "src": "1922:18:41",
2080
- "stateVariable": false,
2081
- "storageLocation": "default",
2082
- "typeDescriptions": {
2083
- "typeIdentifier": "t_bytes32",
2084
- "typeString": "bytes32"
2085
- },
2086
- "typeName": {
2087
- "id": 6164,
2088
- "name": "bytes32",
2089
- "nodeType": "ElementaryTypeName",
2090
- "src": "1922:7:41",
2091
- "typeDescriptions": {
2092
- "typeIdentifier": "t_bytes32",
2093
- "typeString": "bytes32"
2094
- }
2095
- },
2096
- "value": null,
2097
- "visibility": "internal"
2098
- }
2099
- ],
2100
- "id": 6179,
2101
- "initialValue": {
2102
- "argumentTypes": null,
2103
- "arguments": [
2104
- {
2105
- "argumentTypes": null,
2106
- "arguments": [
2107
- {
2108
- "argumentTypes": null,
2109
- "arguments": [
2110
- {
2111
- "argumentTypes": null,
2112
- "hexValue": "30786666",
2113
- "id": 6170,
2114
- "isConstant": false,
2115
- "isLValue": false,
2116
- "isPure": true,
2117
- "kind": "number",
2118
- "lValueRequested": false,
2119
- "nodeType": "Literal",
2120
- "src": "1993:4:41",
2121
- "subdenomination": null,
2122
- "typeDescriptions": {
2123
- "typeIdentifier": "t_rational_255_by_1",
2124
- "typeString": "int_const 255"
2125
- },
2126
- "value": "0xff"
2127
- }
2128
- ],
2129
- "expression": {
2130
- "argumentTypes": [
2131
- {
2132
- "typeIdentifier": "t_rational_255_by_1",
2133
- "typeString": "int_const 255"
2134
- }
2135
- ],
2136
- "id": 6169,
2137
- "isConstant": false,
2138
- "isLValue": false,
2139
- "isPure": true,
2140
- "lValueRequested": false,
2141
- "nodeType": "ElementaryTypeNameExpression",
2142
- "src": "1986:6:41",
2143
- "typeDescriptions": {
2144
- "typeIdentifier": "t_type$_t_bytes1_$",
2145
- "typeString": "type(bytes1)"
2146
- },
2147
- "typeName": "bytes1"
2148
- },
2149
- "id": 6171,
2150
- "isConstant": false,
2151
- "isLValue": false,
2152
- "isPure": true,
2153
- "kind": "typeConversion",
2154
- "lValueRequested": false,
2155
- "names": [],
2156
- "nodeType": "FunctionCall",
2157
- "src": "1986:12:41",
2158
- "typeDescriptions": {
2159
- "typeIdentifier": "t_bytes1",
2160
- "typeString": "bytes1"
2161
- }
2162
- },
2163
- {
2164
- "argumentTypes": null,
2165
- "arguments": [
2166
- {
2167
- "argumentTypes": null,
2168
- "id": 6173,
2169
- "name": "this",
2170
- "nodeType": "Identifier",
2171
- "overloadedDeclarations": [],
2172
- "referencedDeclaration": 6745,
2173
- "src": "2016:4:41",
2174
- "typeDescriptions": {
2175
- "typeIdentifier": "t_contract$_ProxyFactory_$6321",
2176
- "typeString": "contract ProxyFactory"
2177
- }
2178
- }
2179
- ],
2180
- "expression": {
2181
- "argumentTypes": [
2182
- {
2183
- "typeIdentifier": "t_contract$_ProxyFactory_$6321",
2184
- "typeString": "contract ProxyFactory"
2185
- }
2186
- ],
2187
- "id": 6172,
2188
- "isConstant": false,
2189
- "isLValue": false,
2190
- "isPure": true,
2191
- "lValueRequested": false,
2192
- "nodeType": "ElementaryTypeNameExpression",
2193
- "src": "2008:7:41",
2194
- "typeDescriptions": {
2195
- "typeIdentifier": "t_type$_t_address_$",
2196
- "typeString": "type(address)"
2197
- },
2198
- "typeName": "address"
2199
- },
2200
- "id": 6174,
2201
- "isConstant": false,
2202
- "isLValue": false,
2203
- "isPure": false,
2204
- "kind": "typeConversion",
2205
- "lValueRequested": false,
2206
- "names": [],
2207
- "nodeType": "FunctionCall",
2208
- "src": "2008:13:41",
2209
- "typeDescriptions": {
2210
- "typeIdentifier": "t_address",
2211
- "typeString": "address"
2212
- }
2213
- },
2214
- {
2215
- "argumentTypes": null,
2216
- "id": 6175,
2217
- "name": "salt",
2218
- "nodeType": "Identifier",
2219
- "overloadedDeclarations": [],
2220
- "referencedDeclaration": 6158,
2221
- "src": "2031:4:41",
2222
- "typeDescriptions": {
2223
- "typeIdentifier": "t_bytes32",
2224
- "typeString": "bytes32"
2225
- }
2226
- },
2227
- {
2228
- "argumentTypes": null,
2229
- "id": 6176,
2230
- "name": "contractCodeHash",
2231
- "nodeType": "Identifier",
2232
- "overloadedDeclarations": [],
2233
- "referencedDeclaration": 6029,
2234
- "src": "2045:16:41",
2235
- "typeDescriptions": {
2236
- "typeIdentifier": "t_bytes32",
2237
- "typeString": "bytes32"
2238
- }
2239
- }
2240
- ],
2241
- "expression": {
2242
- "argumentTypes": [
2243
- {
2244
- "typeIdentifier": "t_bytes1",
2245
- "typeString": "bytes1"
2246
- },
2247
- {
2248
- "typeIdentifier": "t_address",
2249
- "typeString": "address"
2250
- },
2251
- {
2252
- "typeIdentifier": "t_bytes32",
2253
- "typeString": "bytes32"
2254
- },
2255
- {
2256
- "typeIdentifier": "t_bytes32",
2257
- "typeString": "bytes32"
2258
- }
2259
- ],
2260
- "expression": {
2261
- "argumentTypes": null,
2262
- "id": 6167,
2263
- "name": "abi",
2264
- "nodeType": "Identifier",
2265
- "overloadedDeclarations": [],
2266
- "referencedDeclaration": 6450,
2267
- "src": "1960:3:41",
2268
- "typeDescriptions": {
2269
- "typeIdentifier": "t_magic_abi",
2270
- "typeString": "abi"
2271
- }
2272
- },
2273
- "id": 6168,
2274
- "isConstant": false,
2275
- "isLValue": false,
2276
- "isPure": true,
2277
- "lValueRequested": false,
2278
- "memberName": "encodePacked",
2279
- "nodeType": "MemberAccess",
2280
- "referencedDeclaration": null,
2281
- "src": "1960:16:41",
2282
- "typeDescriptions": {
2283
- "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
2284
- "typeString": "function () pure returns (bytes memory)"
2285
- }
2286
- },
2287
- "id": 6177,
2288
- "isConstant": false,
2289
- "isLValue": false,
2290
- "isPure": false,
2291
- "kind": "functionCall",
2292
- "lValueRequested": false,
2293
- "names": [],
2294
- "nodeType": "FunctionCall",
2295
- "src": "1960:109:41",
2296
- "typeDescriptions": {
2297
- "typeIdentifier": "t_bytes_memory_ptr",
2298
- "typeString": "bytes memory"
2299
- }
2300
- }
2301
- ],
2302
- "expression": {
2303
- "argumentTypes": [
2304
- {
2305
- "typeIdentifier": "t_bytes_memory_ptr",
2306
- "typeString": "bytes memory"
2307
- }
2308
- ],
2309
- "id": 6166,
2310
- "name": "keccak256",
2311
- "nodeType": "Identifier",
2312
- "overloadedDeclarations": [],
2313
- "referencedDeclaration": 6457,
2314
- "src": "1943:9:41",
2315
- "typeDescriptions": {
2316
- "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
2317
- "typeString": "function (bytes memory) pure returns (bytes32)"
2318
- }
2319
- },
2320
- "id": 6178,
2321
- "isConstant": false,
2322
- "isLValue": false,
2323
- "isPure": false,
2324
- "kind": "functionCall",
2325
- "lValueRequested": false,
2326
- "names": [],
2327
- "nodeType": "FunctionCall",
2328
- "src": "1943:132:41",
2329
- "typeDescriptions": {
2330
- "typeIdentifier": "t_bytes32",
2331
- "typeString": "bytes32"
2332
- }
2333
- },
2334
- "nodeType": "VariableDeclarationStatement",
2335
- "src": "1922:153:41"
2336
- },
2337
- {
2338
- "expression": {
2339
- "argumentTypes": null,
2340
- "arguments": [
2341
- {
2342
- "argumentTypes": null,
2343
- "arguments": [
2344
- {
2345
- "argumentTypes": null,
2346
- "commonType": {
2347
- "typeIdentifier": "t_bytes32",
2348
- "typeString": "bytes32"
2349
- },
2350
- "id": 6184,
2351
- "isConstant": false,
2352
- "isLValue": false,
2353
- "isPure": false,
2354
- "lValueRequested": false,
2355
- "leftExpression": {
2356
- "argumentTypes": null,
2357
- "id": 6182,
2358
- "name": "rawAddress",
2359
- "nodeType": "Identifier",
2360
- "overloadedDeclarations": [],
2361
- "referencedDeclaration": 6165,
2362
- "src": "2105:10:41",
2363
- "typeDescriptions": {
2364
- "typeIdentifier": "t_bytes32",
2365
- "typeString": "bytes32"
2366
- }
2367
- },
2368
- "nodeType": "BinaryOperation",
2369
- "operator": "<<",
2370
- "rightExpression": {
2371
- "argumentTypes": null,
2372
- "hexValue": "3936",
2373
- "id": 6183,
2374
- "isConstant": false,
2375
- "isLValue": false,
2376
- "isPure": true,
2377
- "kind": "number",
2378
- "lValueRequested": false,
2379
- "nodeType": "Literal",
2380
- "src": "2119:2:41",
2381
- "subdenomination": null,
2382
- "typeDescriptions": {
2383
- "typeIdentifier": "t_rational_96_by_1",
2384
- "typeString": "int_const 96"
2385
- },
2386
- "value": "96"
2387
- },
2388
- "src": "2105:16:41",
2389
- "typeDescriptions": {
2390
- "typeIdentifier": "t_bytes32",
2391
- "typeString": "bytes32"
2392
- }
2393
- }
2394
- ],
2395
- "expression": {
2396
- "argumentTypes": [
2397
- {
2398
- "typeIdentifier": "t_bytes32",
2399
- "typeString": "bytes32"
2400
- }
2401
- ],
2402
- "id": 6181,
2403
- "isConstant": false,
2404
- "isLValue": false,
2405
- "isPure": true,
2406
- "lValueRequested": false,
2407
- "nodeType": "ElementaryTypeNameExpression",
2408
- "src": "2097:7:41",
2409
- "typeDescriptions": {
2410
- "typeIdentifier": "t_type$_t_bytes20_$",
2411
- "typeString": "type(bytes20)"
2412
- },
2413
- "typeName": "bytes20"
2414
- },
2415
- "id": 6185,
2416
- "isConstant": false,
2417
- "isLValue": false,
2418
- "isPure": false,
2419
- "kind": "typeConversion",
2420
- "lValueRequested": false,
2421
- "names": [],
2422
- "nodeType": "FunctionCall",
2423
- "src": "2097:25:41",
2424
- "typeDescriptions": {
2425
- "typeIdentifier": "t_bytes20",
2426
- "typeString": "bytes20"
2427
- }
2428
- }
2429
- ],
2430
- "expression": {
2431
- "argumentTypes": [
2432
- {
2433
- "typeIdentifier": "t_bytes20",
2434
- "typeString": "bytes20"
2435
- }
2436
- ],
2437
- "id": 6180,
2438
- "isConstant": false,
2439
- "isLValue": false,
2440
- "isPure": true,
2441
- "lValueRequested": false,
2442
- "nodeType": "ElementaryTypeNameExpression",
2443
- "src": "2089:7:41",
2444
- "typeDescriptions": {
2445
- "typeIdentifier": "t_type$_t_address_$",
2446
- "typeString": "type(address)"
2447
- },
2448
- "typeName": "address"
2449
- },
2450
- "id": 6186,
2451
- "isConstant": false,
2452
- "isLValue": false,
2453
- "isPure": false,
2454
- "kind": "typeConversion",
2455
- "lValueRequested": false,
2456
- "names": [],
2457
- "nodeType": "FunctionCall",
2458
- "src": "2089:34:41",
2459
- "typeDescriptions": {
2460
- "typeIdentifier": "t_address_payable",
2461
- "typeString": "address payable"
2462
- }
2463
- },
2464
- "functionReturnParameters": 6156,
2465
- "id": 6187,
2466
- "nodeType": "Return",
2467
- "src": "2082:41:41"
2468
- }
2469
- ]
2470
- },
2471
- "documentation": null,
2472
- "id": 6189,
2473
- "implemented": true,
2474
- "kind": "function",
2475
- "modifiers": [],
2476
- "name": "getDeploymentAddress",
2477
- "nodeType": "FunctionDefinition",
2478
- "parameters": {
2479
- "id": 6153,
2480
- "nodeType": "ParameterList",
2481
- "parameters": [
2482
- {
2483
- "constant": false,
2484
- "id": 6150,
2485
- "name": "_salt",
2486
- "nodeType": "VariableDeclaration",
2487
- "scope": 6189,
2488
- "src": "1659:13:41",
2489
- "stateVariable": false,
2490
- "storageLocation": "default",
2491
- "typeDescriptions": {
2492
- "typeIdentifier": "t_uint256",
2493
- "typeString": "uint256"
2494
- },
2495
- "typeName": {
2496
- "id": 6149,
2497
- "name": "uint256",
2498
- "nodeType": "ElementaryTypeName",
2499
- "src": "1659:7:41",
2500
- "typeDescriptions": {
2501
- "typeIdentifier": "t_uint256",
2502
- "typeString": "uint256"
2503
- }
2504
- },
2505
- "value": null,
2506
- "visibility": "internal"
2507
- },
2508
- {
2509
- "constant": false,
2510
- "id": 6152,
2511
- "name": "_sender",
2512
- "nodeType": "VariableDeclaration",
2513
- "scope": 6189,
2514
- "src": "1674:15:41",
2515
- "stateVariable": false,
2516
- "storageLocation": "default",
2517
- "typeDescriptions": {
2518
- "typeIdentifier": "t_address",
2519
- "typeString": "address"
2520
- },
2521
- "typeName": {
2522
- "id": 6151,
2523
- "name": "address",
2524
- "nodeType": "ElementaryTypeName",
2525
- "src": "1674:7:41",
2526
- "stateMutability": "nonpayable",
2527
- "typeDescriptions": {
2528
- "typeIdentifier": "t_address",
2529
- "typeString": "address"
2530
- }
2531
- },
2532
- "value": null,
2533
- "visibility": "internal"
2534
- }
2535
- ],
2536
- "src": "1658:32:41"
2537
- },
2538
- "returnParameters": {
2539
- "id": 6156,
2540
- "nodeType": "ParameterList",
2541
- "parameters": [
2542
- {
2543
- "constant": false,
2544
- "id": 6155,
2545
- "name": "",
2546
- "nodeType": "VariableDeclaration",
2547
- "scope": 6189,
2548
- "src": "1712:7:41",
2549
- "stateVariable": false,
2550
- "storageLocation": "default",
2551
- "typeDescriptions": {
2552
- "typeIdentifier": "t_address",
2553
- "typeString": "address"
2554
- },
2555
- "typeName": {
2556
- "id": 6154,
2557
- "name": "address",
2558
- "nodeType": "ElementaryTypeName",
2559
- "src": "1712:7:41",
2560
- "stateMutability": "nonpayable",
2561
- "typeDescriptions": {
2562
- "typeIdentifier": "t_address",
2563
- "typeString": "address"
2564
- }
2565
- },
2566
- "value": null,
2567
- "visibility": "internal"
2568
- }
2569
- ],
2570
- "src": "1711:9:41"
2571
- },
2572
- "scope": 6321,
2573
- "src": "1629:499:41",
2574
- "stateMutability": "view",
2575
- "superFunction": null,
2576
- "visibility": "public"
2577
- },
2578
- {
2579
- "body": {
2580
- "id": 6228,
2581
- "nodeType": "Block",
2582
- "src": "2273:267:41",
2583
- "statements": [
2584
- {
2585
- "assignments": [
2586
- 6205
2587
- ],
2588
- "declarations": [
2589
- {
2590
- "constant": false,
2591
- "id": 6205,
2592
- "name": "msgHash",
2593
- "nodeType": "VariableDeclaration",
2594
- "scope": 6228,
2595
- "src": "2279:15:41",
2596
- "stateVariable": false,
2597
- "storageLocation": "default",
2598
- "typeDescriptions": {
2599
- "typeIdentifier": "t_bytes32",
2600
- "typeString": "bytes32"
2601
- },
2602
- "typeName": {
2603
- "id": 6204,
2604
- "name": "bytes32",
2605
- "nodeType": "ElementaryTypeName",
2606
- "src": "2279:7:41",
2607
- "typeDescriptions": {
2608
- "typeIdentifier": "t_bytes32",
2609
- "typeString": "bytes32"
2610
- }
2611
- },
2612
- "value": null,
2613
- "visibility": "internal"
2614
- }
2615
- ],
2616
- "id": 6221,
2617
- "initialValue": {
2618
- "argumentTypes": null,
2619
- "arguments": [
2620
- {
2621
- "argumentTypes": null,
2622
- "arguments": [
2623
- {
2624
- "argumentTypes": null,
2625
- "arguments": [
2626
- {
2627
- "argumentTypes": null,
2628
- "id": 6211,
2629
- "name": "_salt",
2630
- "nodeType": "Identifier",
2631
- "overloadedDeclarations": [],
2632
- "referencedDeclaration": 6191,
2633
- "src": "2400:5:41",
2634
- "typeDescriptions": {
2635
- "typeIdentifier": "t_uint256",
2636
- "typeString": "uint256"
2637
- }
2638
- },
2639
- {
2640
- "argumentTypes": null,
2641
- "id": 6212,
2642
- "name": "_logic",
2643
- "nodeType": "Identifier",
2644
- "overloadedDeclarations": [],
2645
- "referencedDeclaration": 6193,
2646
- "src": "2407:6:41",
2647
- "typeDescriptions": {
2648
- "typeIdentifier": "t_address",
2649
- "typeString": "address"
2650
- }
2651
- },
2652
- {
2653
- "argumentTypes": null,
2654
- "id": 6213,
2655
- "name": "_admin",
2656
- "nodeType": "Identifier",
2657
- "overloadedDeclarations": [],
2658
- "referencedDeclaration": 6195,
2659
- "src": "2415:6:41",
2660
- "typeDescriptions": {
2661
- "typeIdentifier": "t_address",
2662
- "typeString": "address"
2663
- }
2664
- },
2665
- {
2666
- "argumentTypes": null,
2667
- "id": 6214,
2668
- "name": "_data",
2669
- "nodeType": "Identifier",
2670
- "overloadedDeclarations": [],
2671
- "referencedDeclaration": 6197,
2672
- "src": "2423:5:41",
2673
- "typeDescriptions": {
2674
- "typeIdentifier": "t_bytes_memory_ptr",
2675
- "typeString": "bytes memory"
2676
- }
2677
- },
2678
- {
2679
- "argumentTypes": null,
2680
- "arguments": [
2681
- {
2682
- "argumentTypes": null,
2683
- "id": 6216,
2684
- "name": "this",
2685
- "nodeType": "Identifier",
2686
- "overloadedDeclarations": [],
2687
- "referencedDeclaration": 6745,
2688
- "src": "2438:4:41",
2689
- "typeDescriptions": {
2690
- "typeIdentifier": "t_contract$_ProxyFactory_$6321",
2691
- "typeString": "contract ProxyFactory"
2692
- }
2693
- }
2694
- ],
2695
- "expression": {
2696
- "argumentTypes": [
2697
- {
2698
- "typeIdentifier": "t_contract$_ProxyFactory_$6321",
2699
- "typeString": "contract ProxyFactory"
2700
- }
2701
- ],
2702
- "id": 6215,
2703
- "isConstant": false,
2704
- "isLValue": false,
2705
- "isPure": true,
2706
- "lValueRequested": false,
2707
- "nodeType": "ElementaryTypeNameExpression",
2708
- "src": "2430:7:41",
2709
- "typeDescriptions": {
2710
- "typeIdentifier": "t_type$_t_address_$",
2711
- "typeString": "type(address)"
2712
- },
2713
- "typeName": "address"
2714
- },
2715
- "id": 6217,
2716
- "isConstant": false,
2717
- "isLValue": false,
2718
- "isPure": false,
2719
- "kind": "typeConversion",
2720
- "lValueRequested": false,
2721
- "names": [],
2722
- "nodeType": "FunctionCall",
2723
- "src": "2430:13:41",
2724
- "typeDescriptions": {
2725
- "typeIdentifier": "t_address",
2726
- "typeString": "address"
2727
- }
2728
- }
2729
- ],
2730
- "expression": {
2731
- "argumentTypes": [
2732
- {
2733
- "typeIdentifier": "t_uint256",
2734
- "typeString": "uint256"
2735
- },
2736
- {
2737
- "typeIdentifier": "t_address",
2738
- "typeString": "address"
2739
- },
2740
- {
2741
- "typeIdentifier": "t_address",
2742
- "typeString": "address"
2743
- },
2744
- {
2745
- "typeIdentifier": "t_bytes_memory_ptr",
2746
- "typeString": "bytes memory"
2747
- },
2748
- {
2749
- "typeIdentifier": "t_address",
2750
- "typeString": "address"
2751
- }
2752
- ],
2753
- "expression": {
2754
- "argumentTypes": null,
2755
- "id": 6209,
2756
- "name": "abi",
2757
- "nodeType": "Identifier",
2758
- "overloadedDeclarations": [],
2759
- "referencedDeclaration": 6450,
2760
- "src": "2372:3:41",
2761
- "typeDescriptions": {
2762
- "typeIdentifier": "t_magic_abi",
2763
- "typeString": "abi"
2764
- }
2765
- },
2766
- "id": 6210,
2767
- "isConstant": false,
2768
- "isLValue": false,
2769
- "isPure": true,
2770
- "lValueRequested": false,
2771
- "memberName": "encodePacked",
2772
- "nodeType": "MemberAccess",
2773
- "referencedDeclaration": null,
2774
- "src": "2372:16:41",
2775
- "typeDescriptions": {
2776
- "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
2777
- "typeString": "function () pure returns (bytes memory)"
2778
- }
2779
- },
2780
- "id": 6218,
2781
- "isConstant": false,
2782
- "isLValue": false,
2783
- "isPure": false,
2784
- "kind": "functionCall",
2785
- "lValueRequested": false,
2786
- "names": [],
2787
- "nodeType": "FunctionCall",
2788
- "src": "2372:81:41",
2789
- "typeDescriptions": {
2790
- "typeIdentifier": "t_bytes_memory_ptr",
2791
- "typeString": "bytes memory"
2792
- }
2793
- }
2794
- ],
2795
- "expression": {
2796
- "argumentTypes": [
2797
- {
2798
- "typeIdentifier": "t_bytes_memory_ptr",
2799
- "typeString": "bytes memory"
2800
- }
2801
- ],
2802
- "id": 6208,
2803
- "name": "keccak256",
2804
- "nodeType": "Identifier",
2805
- "overloadedDeclarations": [],
2806
- "referencedDeclaration": 6457,
2807
- "src": "2353:9:41",
2808
- "typeDescriptions": {
2809
- "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
2810
- "typeString": "function (bytes memory) pure returns (bytes32)"
2811
- }
2812
- },
2813
- "id": 6219,
2814
- "isConstant": false,
2815
- "isLValue": false,
2816
- "isPure": false,
2817
- "kind": "functionCall",
2818
- "lValueRequested": false,
2819
- "names": [],
2820
- "nodeType": "FunctionCall",
2821
- "src": "2353:108:41",
2822
- "typeDescriptions": {
2823
- "typeIdentifier": "t_bytes32",
2824
- "typeString": "bytes32"
2825
- }
2826
- }
2827
- ],
2828
- "expression": {
2829
- "argumentTypes": [
2830
- {
2831
- "typeIdentifier": "t_bytes32",
2832
- "typeString": "bytes32"
2833
- }
2834
- ],
2835
- "expression": {
2836
- "argumentTypes": null,
2837
- "id": 6206,
2838
- "name": "OpenZeppelinUpgradesECDSA",
2839
- "nodeType": "Identifier",
2840
- "overloadedDeclarations": [],
2841
- "referencedDeclaration": 874,
2842
- "src": "2297:25:41",
2843
- "typeDescriptions": {
2844
- "typeIdentifier": "t_type$_t_contract$_OpenZeppelinUpgradesECDSA_$874_$",
2845
- "typeString": "type(library OpenZeppelinUpgradesECDSA)"
2846
- }
2847
- },
2848
- "id": 6207,
2849
- "isConstant": false,
2850
- "isLValue": false,
2851
- "isPure": false,
2852
- "lValueRequested": false,
2853
- "memberName": "toEthSignedMessageHash",
2854
- "nodeType": "MemberAccess",
2855
- "referencedDeclaration": 873,
2856
- "src": "2297:48:41",
2857
- "typeDescriptions": {
2858
- "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$",
2859
- "typeString": "function (bytes32) pure returns (bytes32)"
2860
- }
2861
- },
2862
- "id": 6220,
2863
- "isConstant": false,
2864
- "isLValue": false,
2865
- "isPure": false,
2866
- "kind": "functionCall",
2867
- "lValueRequested": false,
2868
- "names": [],
2869
- "nodeType": "FunctionCall",
2870
- "src": "2297:170:41",
2871
- "typeDescriptions": {
2872
- "typeIdentifier": "t_bytes32",
2873
- "typeString": "bytes32"
2874
- }
2875
- },
2876
- "nodeType": "VariableDeclarationStatement",
2877
- "src": "2279:188:41"
2878
- },
2879
- {
2880
- "expression": {
2881
- "argumentTypes": null,
2882
- "arguments": [
2883
- {
2884
- "argumentTypes": null,
2885
- "id": 6224,
2886
- "name": "msgHash",
2887
- "nodeType": "Identifier",
2888
- "overloadedDeclarations": [],
2889
- "referencedDeclaration": 6205,
2890
- "src": "2515:7:41",
2891
- "typeDescriptions": {
2892
- "typeIdentifier": "t_bytes32",
2893
- "typeString": "bytes32"
2894
- }
2895
- },
2896
- {
2897
- "argumentTypes": null,
2898
- "id": 6225,
2899
- "name": "_signature",
2900
- "nodeType": "Identifier",
2901
- "overloadedDeclarations": [],
2902
- "referencedDeclaration": 6199,
2903
- "src": "2524:10:41",
2904
- "typeDescriptions": {
2905
- "typeIdentifier": "t_bytes_memory_ptr",
2906
- "typeString": "bytes memory"
2907
- }
2908
- }
2909
- ],
2910
- "expression": {
2911
- "argumentTypes": [
2912
- {
2913
- "typeIdentifier": "t_bytes32",
2914
- "typeString": "bytes32"
2915
- },
2916
- {
2917
- "typeIdentifier": "t_bytes_memory_ptr",
2918
- "typeString": "bytes memory"
2919
- }
2920
- ],
2921
- "expression": {
2922
- "argumentTypes": null,
2923
- "id": 6222,
2924
- "name": "OpenZeppelinUpgradesECDSA",
2925
- "nodeType": "Identifier",
2926
- "overloadedDeclarations": [],
2927
- "referencedDeclaration": 874,
2928
- "src": "2481:25:41",
2929
- "typeDescriptions": {
2930
- "typeIdentifier": "t_type$_t_contract$_OpenZeppelinUpgradesECDSA_$874_$",
2931
- "typeString": "type(library OpenZeppelinUpgradesECDSA)"
2932
- }
2933
- },
2934
- "id": 6223,
2935
- "isConstant": false,
2936
- "isLValue": false,
2937
- "isPure": false,
2938
- "lValueRequested": false,
2939
- "memberName": "recover",
2940
- "nodeType": "MemberAccess",
2941
- "referencedDeclaration": 857,
2942
- "src": "2481:33:41",
2943
- "typeDescriptions": {
2944
- "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$",
2945
- "typeString": "function (bytes32,bytes memory) pure returns (address)"
2946
- }
2947
- },
2948
- "id": 6226,
2949
- "isConstant": false,
2950
- "isLValue": false,
2951
- "isPure": false,
2952
- "kind": "functionCall",
2953
- "lValueRequested": false,
2954
- "names": [],
2955
- "nodeType": "FunctionCall",
2956
- "src": "2481:54:41",
2957
- "typeDescriptions": {
2958
- "typeIdentifier": "t_address",
2959
- "typeString": "address"
2960
- }
2961
- },
2962
- "functionReturnParameters": 6203,
2963
- "id": 6227,
2964
- "nodeType": "Return",
2965
- "src": "2474:61:41"
2966
- }
2967
- ]
2968
- },
2969
- "documentation": null,
2970
- "id": 6229,
2971
- "implemented": true,
2972
- "kind": "function",
2973
- "modifiers": [],
2974
- "name": "getSigner",
2975
- "nodeType": "FunctionDefinition",
2976
- "parameters": {
2977
- "id": 6200,
2978
- "nodeType": "ParameterList",
2979
- "parameters": [
2980
- {
2981
- "constant": false,
2982
- "id": 6191,
2983
- "name": "_salt",
2984
- "nodeType": "VariableDeclaration",
2985
- "scope": 6229,
2986
- "src": "2151:13:41",
2987
- "stateVariable": false,
2988
- "storageLocation": "default",
2989
- "typeDescriptions": {
2990
- "typeIdentifier": "t_uint256",
2991
- "typeString": "uint256"
2992
- },
2993
- "typeName": {
2994
- "id": 6190,
2995
- "name": "uint256",
2996
- "nodeType": "ElementaryTypeName",
2997
- "src": "2151:7:41",
2998
- "typeDescriptions": {
2999
- "typeIdentifier": "t_uint256",
3000
- "typeString": "uint256"
3001
- }
3002
- },
3003
- "value": null,
3004
- "visibility": "internal"
3005
- },
3006
- {
3007
- "constant": false,
3008
- "id": 6193,
3009
- "name": "_logic",
3010
- "nodeType": "VariableDeclaration",
3011
- "scope": 6229,
3012
- "src": "2166:14:41",
3013
- "stateVariable": false,
3014
- "storageLocation": "default",
3015
- "typeDescriptions": {
3016
- "typeIdentifier": "t_address",
3017
- "typeString": "address"
3018
- },
3019
- "typeName": {
3020
- "id": 6192,
3021
- "name": "address",
3022
- "nodeType": "ElementaryTypeName",
3023
- "src": "2166:7:41",
3024
- "stateMutability": "nonpayable",
3025
- "typeDescriptions": {
3026
- "typeIdentifier": "t_address",
3027
- "typeString": "address"
3028
- }
3029
- },
3030
- "value": null,
3031
- "visibility": "internal"
3032
- },
3033
- {
3034
- "constant": false,
3035
- "id": 6195,
3036
- "name": "_admin",
3037
- "nodeType": "VariableDeclaration",
3038
- "scope": 6229,
3039
- "src": "2182:14:41",
3040
- "stateVariable": false,
3041
- "storageLocation": "default",
3042
- "typeDescriptions": {
3043
- "typeIdentifier": "t_address",
3044
- "typeString": "address"
3045
- },
3046
- "typeName": {
3047
- "id": 6194,
3048
- "name": "address",
3049
- "nodeType": "ElementaryTypeName",
3050
- "src": "2182:7:41",
3051
- "stateMutability": "nonpayable",
3052
- "typeDescriptions": {
3053
- "typeIdentifier": "t_address",
3054
- "typeString": "address"
3055
- }
3056
- },
3057
- "value": null,
3058
- "visibility": "internal"
3059
- },
3060
- {
3061
- "constant": false,
3062
- "id": 6197,
3063
- "name": "_data",
3064
- "nodeType": "VariableDeclaration",
3065
- "scope": 6229,
3066
- "src": "2198:18:41",
3067
- "stateVariable": false,
3068
- "storageLocation": "memory",
3069
- "typeDescriptions": {
3070
- "typeIdentifier": "t_bytes_memory_ptr",
3071
- "typeString": "bytes"
3072
- },
3073
- "typeName": {
3074
- "id": 6196,
3075
- "name": "bytes",
3076
- "nodeType": "ElementaryTypeName",
3077
- "src": "2198:5:41",
3078
- "typeDescriptions": {
3079
- "typeIdentifier": "t_bytes_storage_ptr",
3080
- "typeString": "bytes"
3081
- }
3082
- },
3083
- "value": null,
3084
- "visibility": "internal"
3085
- },
3086
- {
3087
- "constant": false,
3088
- "id": 6199,
3089
- "name": "_signature",
3090
- "nodeType": "VariableDeclaration",
3091
- "scope": 6229,
3092
- "src": "2218:23:41",
3093
- "stateVariable": false,
3094
- "storageLocation": "memory",
3095
- "typeDescriptions": {
3096
- "typeIdentifier": "t_bytes_memory_ptr",
3097
- "typeString": "bytes"
3098
- },
3099
- "typeName": {
3100
- "id": 6198,
3101
- "name": "bytes",
3102
- "nodeType": "ElementaryTypeName",
3103
- "src": "2218:5:41",
3104
- "typeDescriptions": {
3105
- "typeIdentifier": "t_bytes_storage_ptr",
3106
- "typeString": "bytes"
3107
- }
3108
- },
3109
- "value": null,
3110
- "visibility": "internal"
3111
- }
3112
- ],
3113
- "src": "2150:92:41"
3114
- },
3115
- "returnParameters": {
3116
- "id": 6203,
3117
- "nodeType": "ParameterList",
3118
- "parameters": [
3119
- {
3120
- "constant": false,
3121
- "id": 6202,
3122
- "name": "",
3123
- "nodeType": "VariableDeclaration",
3124
- "scope": 6229,
3125
- "src": "2264:7:41",
3126
- "stateVariable": false,
3127
- "storageLocation": "default",
3128
- "typeDescriptions": {
3129
- "typeIdentifier": "t_address",
3130
- "typeString": "address"
3131
- },
3132
- "typeName": {
3133
- "id": 6201,
3134
- "name": "address",
3135
- "nodeType": "ElementaryTypeName",
3136
- "src": "2264:7:41",
3137
- "stateMutability": "nonpayable",
3138
- "typeDescriptions": {
3139
- "typeIdentifier": "t_address",
3140
- "typeString": "address"
3141
- }
3142
- },
3143
- "value": null,
3144
- "visibility": "internal"
3145
- }
3146
- ],
3147
- "src": "2263:9:41"
3148
- },
3149
- "scope": 6321,
3150
- "src": "2132:408:41",
3151
- "stateMutability": "view",
3152
- "superFunction": null,
3153
- "visibility": "public"
3154
- },
3155
- {
3156
- "body": {
3157
- "id": 6269,
3158
- "nodeType": "Block",
3159
- "src": "2677:196:41",
3160
- "statements": [
3161
- {
3162
- "assignments": [
3163
- 6245
3164
- ],
3165
- "declarations": [
3166
- {
3167
- "constant": false,
3168
- "id": 6245,
3169
- "name": "proxy",
3170
- "nodeType": "VariableDeclaration",
3171
- "scope": 6269,
3172
- "src": "2683:43:41",
3173
- "stateVariable": false,
3174
- "storageLocation": "default",
3175
- "typeDescriptions": {
3176
- "typeIdentifier": "t_contract$_InitializableAdminUpgradeabilityProxy_$5800",
3177
- "typeString": "contract InitializableAdminUpgradeabilityProxy"
3178
- },
3179
- "typeName": {
3180
- "contractScope": null,
3181
- "id": 6244,
3182
- "name": "InitializableAdminUpgradeabilityProxy",
3183
- "nodeType": "UserDefinedTypeName",
3184
- "referencedDeclaration": 5800,
3185
- "src": "2683:37:41",
3186
- "typeDescriptions": {
3187
- "typeIdentifier": "t_contract$_InitializableAdminUpgradeabilityProxy_$5800",
3188
- "typeString": "contract InitializableAdminUpgradeabilityProxy"
3189
- }
3190
- },
3191
- "value": null,
3192
- "visibility": "internal"
3193
- }
3194
- ],
3195
- "id": 6250,
3196
- "initialValue": {
3197
- "argumentTypes": null,
3198
- "arguments": [
3199
- {
3200
- "argumentTypes": null,
3201
- "id": 6247,
3202
- "name": "_salt",
3203
- "nodeType": "Identifier",
3204
- "overloadedDeclarations": [],
3205
- "referencedDeclaration": 6231,
3206
- "src": "2742:5:41",
3207
- "typeDescriptions": {
3208
- "typeIdentifier": "t_uint256",
3209
- "typeString": "uint256"
3210
- }
3211
- },
3212
- {
3213
- "argumentTypes": null,
3214
- "id": 6248,
3215
- "name": "_sender",
3216
- "nodeType": "Identifier",
3217
- "overloadedDeclarations": [],
3218
- "referencedDeclaration": 6239,
3219
- "src": "2749:7:41",
3220
- "typeDescriptions": {
3221
- "typeIdentifier": "t_address",
3222
- "typeString": "address"
3223
- }
3224
- }
3225
- ],
3226
- "expression": {
3227
- "argumentTypes": [
3228
- {
3229
- "typeIdentifier": "t_uint256",
3230
- "typeString": "uint256"
3231
- },
3232
- {
3233
- "typeIdentifier": "t_address",
3234
- "typeString": "address"
3235
- }
3236
- ],
3237
- "id": 6246,
3238
- "name": "_createProxy",
3239
- "nodeType": "Identifier",
3240
- "overloadedDeclarations": [],
3241
- "referencedDeclaration": 6302,
3242
- "src": "2729:12:41",
3243
- "typeDescriptions": {
3244
- "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$_t_contract$_InitializableAdminUpgradeabilityProxy_$5800_$",
3245
- "typeString": "function (uint256,address) returns (contract InitializableAdminUpgradeabilityProxy)"
3246
- }
3247
- },
3248
- "id": 6249,
3249
- "isConstant": false,
3250
- "isLValue": false,
3251
- "isPure": false,
3252
- "kind": "functionCall",
3253
- "lValueRequested": false,
3254
- "names": [],
3255
- "nodeType": "FunctionCall",
3256
- "src": "2729:28:41",
3257
- "typeDescriptions": {
3258
- "typeIdentifier": "t_contract$_InitializableAdminUpgradeabilityProxy_$5800",
3259
- "typeString": "contract InitializableAdminUpgradeabilityProxy"
3260
- }
3261
- },
3262
- "nodeType": "VariableDeclarationStatement",
3263
- "src": "2683:74:41"
3264
- },
3265
- {
3266
- "eventCall": {
3267
- "argumentTypes": null,
3268
- "arguments": [
3269
- {
3270
- "argumentTypes": null,
3271
- "arguments": [
3272
- {
3273
- "argumentTypes": null,
3274
- "id": 6253,
3275
- "name": "proxy",
3276
- "nodeType": "Identifier",
3277
- "overloadedDeclarations": [],
3278
- "referencedDeclaration": 6245,
3279
- "src": "2789:5:41",
3280
- "typeDescriptions": {
3281
- "typeIdentifier": "t_contract$_InitializableAdminUpgradeabilityProxy_$5800",
3282
- "typeString": "contract InitializableAdminUpgradeabilityProxy"
3283
- }
3284
- }
3285
- ],
3286
- "expression": {
3287
- "argumentTypes": [
3288
- {
3289
- "typeIdentifier": "t_contract$_InitializableAdminUpgradeabilityProxy_$5800",
3290
- "typeString": "contract InitializableAdminUpgradeabilityProxy"
3291
- }
3292
- ],
3293
- "id": 6252,
3294
- "isConstant": false,
3295
- "isLValue": false,
3296
- "isPure": true,
3297
- "lValueRequested": false,
3298
- "nodeType": "ElementaryTypeNameExpression",
3299
- "src": "2781:7:41",
3300
- "typeDescriptions": {
3301
- "typeIdentifier": "t_type$_t_address_$",
3302
- "typeString": "type(address)"
3303
- },
3304
- "typeName": "address"
3305
- },
3306
- "id": 6254,
3307
- "isConstant": false,
3308
- "isLValue": false,
3309
- "isPure": false,
3310
- "kind": "typeConversion",
3311
- "lValueRequested": false,
3312
- "names": [],
3313
- "nodeType": "FunctionCall",
3314
- "src": "2781:14:41",
3315
- "typeDescriptions": {
3316
- "typeIdentifier": "t_address_payable",
3317
- "typeString": "address payable"
3318
- }
3319
- }
3320
- ],
3321
- "expression": {
3322
- "argumentTypes": [
3323
- {
3324
- "typeIdentifier": "t_address_payable",
3325
- "typeString": "address payable"
3326
- }
3327
- ],
3328
- "id": 6251,
3329
- "name": "ProxyCreated",
3330
- "nodeType": "Identifier",
3331
- "overloadedDeclarations": [],
3332
- "referencedDeclaration": 6027,
3333
- "src": "2768:12:41",
3334
- "typeDescriptions": {
3335
- "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
3336
- "typeString": "function (address)"
3337
- }
3338
- },
3339
- "id": 6255,
3340
- "isConstant": false,
3341
- "isLValue": false,
3342
- "isPure": false,
3343
- "kind": "functionCall",
3344
- "lValueRequested": false,
3345
- "names": [],
3346
- "nodeType": "FunctionCall",
3347
- "src": "2768:28:41",
3348
- "typeDescriptions": {
3349
- "typeIdentifier": "t_tuple$__$",
3350
- "typeString": "tuple()"
3351
- }
3352
- },
3353
- "id": 6256,
3354
- "nodeType": "EmitStatement",
3355
- "src": "2763:33:41"
3356
- },
3357
- {
3358
- "expression": {
3359
- "argumentTypes": null,
3360
- "arguments": [
3361
- {
3362
- "argumentTypes": null,
3363
- "id": 6260,
3364
- "name": "_logic",
3365
- "nodeType": "Identifier",
3366
- "overloadedDeclarations": [],
3367
- "referencedDeclaration": 6233,
3368
- "src": "2819:6:41",
3369
- "typeDescriptions": {
3370
- "typeIdentifier": "t_address",
3371
- "typeString": "address"
3372
- }
3373
- },
3374
- {
3375
- "argumentTypes": null,
3376
- "id": 6261,
3377
- "name": "_admin",
3378
- "nodeType": "Identifier",
3379
- "overloadedDeclarations": [],
3380
- "referencedDeclaration": 6235,
3381
- "src": "2827:6:41",
3382
- "typeDescriptions": {
3383
- "typeIdentifier": "t_address",
3384
- "typeString": "address"
3385
- }
3386
- },
3387
- {
3388
- "argumentTypes": null,
3389
- "id": 6262,
3390
- "name": "_data",
3391
- "nodeType": "Identifier",
3392
- "overloadedDeclarations": [],
3393
- "referencedDeclaration": 6237,
3394
- "src": "2835:5:41",
3395
- "typeDescriptions": {
3396
- "typeIdentifier": "t_bytes_memory_ptr",
3397
- "typeString": "bytes memory"
3398
- }
3399
- }
3400
- ],
3401
- "expression": {
3402
- "argumentTypes": [
3403
- {
3404
- "typeIdentifier": "t_address",
3405
- "typeString": "address"
3406
- },
3407
- {
3408
- "typeIdentifier": "t_address",
3409
- "typeString": "address"
3410
- },
3411
- {
3412
- "typeIdentifier": "t_bytes_memory_ptr",
3413
- "typeString": "bytes memory"
3414
- }
3415
- ],
3416
- "expression": {
3417
- "argumentTypes": null,
3418
- "id": 6257,
3419
- "name": "proxy",
3420
- "nodeType": "Identifier",
3421
- "overloadedDeclarations": [],
3422
- "referencedDeclaration": 6245,
3423
- "src": "2802:5:41",
3424
- "typeDescriptions": {
3425
- "typeIdentifier": "t_contract$_InitializableAdminUpgradeabilityProxy_$5800",
3426
- "typeString": "contract InitializableAdminUpgradeabilityProxy"
3427
- }
3428
- },
3429
- "id": 6259,
3430
- "isConstant": false,
3431
- "isLValue": false,
3432
- "isPure": false,
3433
- "lValueRequested": false,
3434
- "memberName": "initialize",
3435
- "nodeType": "MemberAccess",
3436
- "referencedDeclaration": 5799,
3437
- "src": "2802:16:41",
3438
- "typeDescriptions": {
3439
- "typeIdentifier": "t_function_external_payable$_t_address_$_t_address_$_t_bytes_memory_ptr_$returns$__$",
3440
- "typeString": "function (address,address,bytes memory) payable external"
3441
- }
3442
- },
3443
- "id": 6263,
3444
- "isConstant": false,
3445
- "isLValue": false,
3446
- "isPure": false,
3447
- "kind": "functionCall",
3448
- "lValueRequested": false,
3449
- "names": [],
3450
- "nodeType": "FunctionCall",
3451
- "src": "2802:39:41",
3452
- "typeDescriptions": {
3453
- "typeIdentifier": "t_tuple$__$",
3454
- "typeString": "tuple()"
3455
- }
3456
- },
3457
- "id": 6264,
3458
- "nodeType": "ExpressionStatement",
3459
- "src": "2802:39:41"
3460
- },
3461
- {
3462
- "expression": {
3463
- "argumentTypes": null,
3464
- "arguments": [
3465
- {
3466
- "argumentTypes": null,
3467
- "id": 6266,
3468
- "name": "proxy",
3469
- "nodeType": "Identifier",
3470
- "overloadedDeclarations": [],
3471
- "referencedDeclaration": 6245,
3472
- "src": "2862:5:41",
3473
- "typeDescriptions": {
3474
- "typeIdentifier": "t_contract$_InitializableAdminUpgradeabilityProxy_$5800",
3475
- "typeString": "contract InitializableAdminUpgradeabilityProxy"
3476
- }
3477
- }
3478
- ],
3479
- "expression": {
3480
- "argumentTypes": [
3481
- {
3482
- "typeIdentifier": "t_contract$_InitializableAdminUpgradeabilityProxy_$5800",
3483
- "typeString": "contract InitializableAdminUpgradeabilityProxy"
3484
- }
3485
- ],
3486
- "id": 6265,
3487
- "isConstant": false,
3488
- "isLValue": false,
3489
- "isPure": true,
3490
- "lValueRequested": false,
3491
- "nodeType": "ElementaryTypeNameExpression",
3492
- "src": "2854:7:41",
3493
- "typeDescriptions": {
3494
- "typeIdentifier": "t_type$_t_address_$",
3495
- "typeString": "type(address)"
3496
- },
3497
- "typeName": "address"
3498
- },
3499
- "id": 6267,
3500
- "isConstant": false,
3501
- "isLValue": false,
3502
- "isPure": false,
3503
- "kind": "typeConversion",
3504
- "lValueRequested": false,
3505
- "names": [],
3506
- "nodeType": "FunctionCall",
3507
- "src": "2854:14:41",
3508
- "typeDescriptions": {
3509
- "typeIdentifier": "t_address_payable",
3510
- "typeString": "address payable"
3511
- }
3512
- },
3513
- "functionReturnParameters": 6243,
3514
- "id": 6268,
3515
- "nodeType": "Return",
3516
- "src": "2847:21:41"
3517
- }
3518
- ]
3519
- },
3520
- "documentation": null,
3521
- "id": 6270,
3522
- "implemented": true,
3523
- "kind": "function",
3524
- "modifiers": [],
3525
- "name": "_deployProxy",
3526
- "nodeType": "FunctionDefinition",
3527
- "parameters": {
3528
- "id": 6240,
3529
- "nodeType": "ParameterList",
3530
- "parameters": [
3531
- {
3532
- "constant": false,
3533
- "id": 6231,
3534
- "name": "_salt",
3535
- "nodeType": "VariableDeclaration",
3536
- "scope": 6270,
3537
- "src": "2566:13:41",
3538
- "stateVariable": false,
3539
- "storageLocation": "default",
3540
- "typeDescriptions": {
3541
- "typeIdentifier": "t_uint256",
3542
- "typeString": "uint256"
3543
- },
3544
- "typeName": {
3545
- "id": 6230,
3546
- "name": "uint256",
3547
- "nodeType": "ElementaryTypeName",
3548
- "src": "2566:7:41",
3549
- "typeDescriptions": {
3550
- "typeIdentifier": "t_uint256",
3551
- "typeString": "uint256"
3552
- }
3553
- },
3554
- "value": null,
3555
- "visibility": "internal"
3556
- },
3557
- {
3558
- "constant": false,
3559
- "id": 6233,
3560
- "name": "_logic",
3561
- "nodeType": "VariableDeclaration",
3562
- "scope": 6270,
3563
- "src": "2581:14:41",
3564
- "stateVariable": false,
3565
- "storageLocation": "default",
3566
- "typeDescriptions": {
3567
- "typeIdentifier": "t_address",
3568
- "typeString": "address"
3569
- },
3570
- "typeName": {
3571
- "id": 6232,
3572
- "name": "address",
3573
- "nodeType": "ElementaryTypeName",
3574
- "src": "2581:7:41",
3575
- "stateMutability": "nonpayable",
3576
- "typeDescriptions": {
3577
- "typeIdentifier": "t_address",
3578
- "typeString": "address"
3579
- }
3580
- },
3581
- "value": null,
3582
- "visibility": "internal"
3583
- },
3584
- {
3585
- "constant": false,
3586
- "id": 6235,
3587
- "name": "_admin",
3588
- "nodeType": "VariableDeclaration",
3589
- "scope": 6270,
3590
- "src": "2597:14:41",
3591
- "stateVariable": false,
3592
- "storageLocation": "default",
3593
- "typeDescriptions": {
3594
- "typeIdentifier": "t_address",
3595
- "typeString": "address"
3596
- },
3597
- "typeName": {
3598
- "id": 6234,
3599
- "name": "address",
3600
- "nodeType": "ElementaryTypeName",
3601
- "src": "2597:7:41",
3602
- "stateMutability": "nonpayable",
3603
- "typeDescriptions": {
3604
- "typeIdentifier": "t_address",
3605
- "typeString": "address"
3606
- }
3607
- },
3608
- "value": null,
3609
- "visibility": "internal"
3610
- },
3611
- {
3612
- "constant": false,
3613
- "id": 6237,
3614
- "name": "_data",
3615
- "nodeType": "VariableDeclaration",
3616
- "scope": 6270,
3617
- "src": "2613:18:41",
3618
- "stateVariable": false,
3619
- "storageLocation": "memory",
3620
- "typeDescriptions": {
3621
- "typeIdentifier": "t_bytes_memory_ptr",
3622
- "typeString": "bytes"
3623
- },
3624
- "typeName": {
3625
- "id": 6236,
3626
- "name": "bytes",
3627
- "nodeType": "ElementaryTypeName",
3628
- "src": "2613:5:41",
3629
- "typeDescriptions": {
3630
- "typeIdentifier": "t_bytes_storage_ptr",
3631
- "typeString": "bytes"
3632
- }
3633
- },
3634
- "value": null,
3635
- "visibility": "internal"
3636
- },
3637
- {
3638
- "constant": false,
3639
- "id": 6239,
3640
- "name": "_sender",
3641
- "nodeType": "VariableDeclaration",
3642
- "scope": 6270,
3643
- "src": "2633:15:41",
3644
- "stateVariable": false,
3645
- "storageLocation": "default",
3646
- "typeDescriptions": {
3647
- "typeIdentifier": "t_address",
3648
- "typeString": "address"
3649
- },
3650
- "typeName": {
3651
- "id": 6238,
3652
- "name": "address",
3653
- "nodeType": "ElementaryTypeName",
3654
- "src": "2633:7:41",
3655
- "stateMutability": "nonpayable",
3656
- "typeDescriptions": {
3657
- "typeIdentifier": "t_address",
3658
- "typeString": "address"
3659
- }
3660
- },
3661
- "value": null,
3662
- "visibility": "internal"
3663
- }
3664
- ],
3665
- "src": "2565:84:41"
3666
- },
3667
- "returnParameters": {
3668
- "id": 6243,
3669
- "nodeType": "ParameterList",
3670
- "parameters": [
3671
- {
3672
- "constant": false,
3673
- "id": 6242,
3674
- "name": "",
3675
- "nodeType": "VariableDeclaration",
3676
- "scope": 6270,
3677
- "src": "2668:7:41",
3678
- "stateVariable": false,
3679
- "storageLocation": "default",
3680
- "typeDescriptions": {
3681
- "typeIdentifier": "t_address",
3682
- "typeString": "address"
3683
- },
3684
- "typeName": {
3685
- "id": 6241,
3686
- "name": "address",
3687
- "nodeType": "ElementaryTypeName",
3688
- "src": "2668:7:41",
3689
- "stateMutability": "nonpayable",
3690
- "typeDescriptions": {
3691
- "typeIdentifier": "t_address",
3692
- "typeString": "address"
3693
- }
3694
- },
3695
- "value": null,
3696
- "visibility": "internal"
3697
- }
3698
- ],
3699
- "src": "2667:9:41"
3700
- },
3701
- "scope": 6321,
3702
- "src": "2544:329:41",
3703
- "stateMutability": "nonpayable",
3704
- "superFunction": null,
3705
- "visibility": "internal"
3706
- },
3707
- {
3708
- "body": {
3709
- "id": 6301,
3710
- "nodeType": "Block",
3711
- "src": "2988:364:41",
3712
- "statements": [
3713
- {
3714
- "assignments": [
3715
- 6280
3716
- ],
3717
- "declarations": [
3718
- {
3719
- "constant": false,
3720
- "id": 6280,
3721
- "name": "addr",
3722
- "nodeType": "VariableDeclaration",
3723
- "scope": 6301,
3724
- "src": "2994:20:41",
3725
- "stateVariable": false,
3726
- "storageLocation": "default",
3727
- "typeDescriptions": {
3728
- "typeIdentifier": "t_address_payable",
3729
- "typeString": "address payable"
3730
- },
3731
- "typeName": {
3732
- "id": 6279,
3733
- "name": "address",
3734
- "nodeType": "ElementaryTypeName",
3735
- "src": "2994:15:41",
3736
- "stateMutability": "payable",
3737
- "typeDescriptions": {
3738
- "typeIdentifier": "t_address_payable",
3739
- "typeString": "address payable"
3740
- }
3741
- },
3742
- "value": null,
3743
- "visibility": "internal"
3744
- }
3745
- ],
3746
- "id": 6281,
3747
- "initialValue": null,
3748
- "nodeType": "VariableDeclarationStatement",
3749
- "src": "2994:20:41"
3750
- },
3751
- {
3752
- "assignments": [
3753
- 6283
3754
- ],
3755
- "declarations": [
3756
- {
3757
- "constant": false,
3758
- "id": 6283,
3759
- "name": "code",
3760
- "nodeType": "VariableDeclaration",
3761
- "scope": 6301,
3762
- "src": "3020:17:41",
3763
- "stateVariable": false,
3764
- "storageLocation": "memory",
3765
- "typeDescriptions": {
3766
- "typeIdentifier": "t_bytes_memory_ptr",
3767
- "typeString": "bytes"
3768
- },
3769
- "typeName": {
3770
- "id": 6282,
3771
- "name": "bytes",
3772
- "nodeType": "ElementaryTypeName",
3773
- "src": "3020:5:41",
3774
- "typeDescriptions": {
3775
- "typeIdentifier": "t_bytes_storage_ptr",
3776
- "typeString": "bytes"
3777
- }
3778
- },
3779
- "value": null,
3780
- "visibility": "internal"
3781
- }
3782
- ],
3783
- "id": 6288,
3784
- "initialValue": {
3785
- "argumentTypes": null,
3786
- "expression": {
3787
- "argumentTypes": null,
3788
- "arguments": [
3789
- {
3790
- "argumentTypes": null,
3791
- "id": 6285,
3792
- "name": "InitializableAdminUpgradeabilityProxy",
3793
- "nodeType": "Identifier",
3794
- "overloadedDeclarations": [],
3795
- "referencedDeclaration": 5800,
3796
- "src": "3045:37:41",
3797
- "typeDescriptions": {
3798
- "typeIdentifier": "t_type$_t_contract$_InitializableAdminUpgradeabilityProxy_$5800_$",
3799
- "typeString": "type(contract InitializableAdminUpgradeabilityProxy)"
3800
- }
3801
- }
3802
- ],
3803
- "expression": {
3804
- "argumentTypes": [
3805
- {
3806
- "typeIdentifier": "t_type$_t_contract$_InitializableAdminUpgradeabilityProxy_$5800_$",
3807
- "typeString": "type(contract InitializableAdminUpgradeabilityProxy)"
3808
- }
3809
- ],
3810
- "id": 6284,
3811
- "name": "type",
3812
- "nodeType": "Identifier",
3813
- "overloadedDeclarations": [],
3814
- "referencedDeclaration": 6476,
3815
- "src": "3040:4:41",
3816
- "typeDescriptions": {
3817
- "typeIdentifier": "t_function_metatype_pure$_t_address_$returns$__$",
3818
- "typeString": "function (address) pure"
3819
- }
3820
- },
3821
- "id": 6286,
3822
- "isConstant": false,
3823
- "isLValue": false,
3824
- "isPure": false,
3825
- "kind": "functionCall",
3826
- "lValueRequested": false,
3827
- "names": [],
3828
- "nodeType": "FunctionCall",
3829
- "src": "3040:43:41",
3830
- "typeDescriptions": {
3831
- "typeIdentifier": "t_magic_meta_type_t_contract$_InitializableAdminUpgradeabilityProxy_$5800",
3832
- "typeString": "type(contract InitializableAdminUpgradeabilityProxy)"
3833
- }
3834
- },
3835
- "id": 6287,
3836
- "isConstant": false,
3837
- "isLValue": false,
3838
- "isPure": true,
3839
- "lValueRequested": false,
3840
- "memberName": "creationCode",
3841
- "nodeType": "MemberAccess",
3842
- "referencedDeclaration": null,
3843
- "src": "3040:56:41",
3844
- "typeDescriptions": {
3845
- "typeIdentifier": "t_bytes_memory_ptr",
3846
- "typeString": "bytes memory"
3847
- }
3848
- },
3849
- "nodeType": "VariableDeclarationStatement",
3850
- "src": "3020:76:41"
3851
- },
3852
- {
3853
- "assignments": [
3854
- 6290
3855
- ],
3856
- "declarations": [
3857
- {
3858
- "constant": false,
3859
- "id": 6290,
3860
- "name": "salt",
3861
- "nodeType": "VariableDeclaration",
3862
- "scope": 6301,
3863
- "src": "3102:12:41",
3864
- "stateVariable": false,
3865
- "storageLocation": "default",
3866
- "typeDescriptions": {
3867
- "typeIdentifier": "t_bytes32",
3868
- "typeString": "bytes32"
3869
- },
3870
- "typeName": {
3871
- "id": 6289,
3872
- "name": "bytes32",
3873
- "nodeType": "ElementaryTypeName",
3874
- "src": "3102:7:41",
3875
- "typeDescriptions": {
3876
- "typeIdentifier": "t_bytes32",
3877
- "typeString": "bytes32"
3878
- }
3879
- },
3880
- "value": null,
3881
- "visibility": "internal"
3882
- }
3883
- ],
3884
- "id": 6295,
3885
- "initialValue": {
3886
- "argumentTypes": null,
3887
- "arguments": [
3888
- {
3889
- "argumentTypes": null,
3890
- "id": 6292,
3891
- "name": "_salt",
3892
- "nodeType": "Identifier",
3893
- "overloadedDeclarations": [],
3894
- "referencedDeclaration": 6272,
3895
- "src": "3126:5:41",
3896
- "typeDescriptions": {
3897
- "typeIdentifier": "t_uint256",
3898
- "typeString": "uint256"
3899
- }
3900
- },
3901
- {
3902
- "argumentTypes": null,
3903
- "id": 6293,
3904
- "name": "_sender",
3905
- "nodeType": "Identifier",
3906
- "overloadedDeclarations": [],
3907
- "referencedDeclaration": 6274,
3908
- "src": "3133:7:41",
3909
- "typeDescriptions": {
3910
- "typeIdentifier": "t_address",
3911
- "typeString": "address"
3912
- }
3913
- }
3914
- ],
3915
- "expression": {
3916
- "argumentTypes": [
3917
- {
3918
- "typeIdentifier": "t_uint256",
3919
- "typeString": "uint256"
3920
- },
3921
- {
3922
- "typeIdentifier": "t_address",
3923
- "typeString": "address"
3924
- }
3925
- ],
3926
- "id": 6291,
3927
- "name": "_getSalt",
3928
- "nodeType": "Identifier",
3929
- "overloadedDeclarations": [],
3930
- "referencedDeclaration": 6320,
3931
- "src": "3117:8:41",
3932
- "typeDescriptions": {
3933
- "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_address_$returns$_t_bytes32_$",
3934
- "typeString": "function (uint256,address) pure returns (bytes32)"
3935
- }
3936
- },
3937
- "id": 6294,
3938
- "isConstant": false,
3939
- "isLValue": false,
3940
- "isPure": false,
3941
- "kind": "functionCall",
3942
- "lValueRequested": false,
3943
- "names": [],
3944
- "nodeType": "FunctionCall",
3945
- "src": "3117:24:41",
3946
- "typeDescriptions": {
3947
- "typeIdentifier": "t_bytes32",
3948
- "typeString": "bytes32"
3949
- }
3950
- },
3951
- "nodeType": "VariableDeclarationStatement",
3952
- "src": "3102:39:41"
3953
- },
3954
- {
3955
- "externalReferences": [
3956
- {
3957
- "addr": {
3958
- "declaration": 6280,
3959
- "isOffset": false,
3960
- "isSlot": false,
3961
- "src": "3165:4:41",
3962
- "valueSize": 1
3963
- }
3964
- },
3965
- {
3966
- "code": {
3967
- "declaration": 6283,
3968
- "isOffset": false,
3969
- "isSlot": false,
3970
- "src": "3207:4:41",
3971
- "valueSize": 1
3972
- }
3973
- },
3974
- {
3975
- "code": {
3976
- "declaration": 6283,
3977
- "isOffset": false,
3978
- "isSlot": false,
3979
- "src": "3188:4:41",
3980
- "valueSize": 1
3981
- }
3982
- },
3983
- {
3984
- "salt": {
3985
- "declaration": 6290,
3986
- "isOffset": false,
3987
- "isSlot": false,
3988
- "src": "3214:4:41",
3989
- "valueSize": 1
3990
- }
3991
- },
3992
- {
3993
- "addr": {
3994
- "declaration": 6280,
3995
- "isOffset": false,
3996
- "isSlot": false,
3997
- "src": "3248:4:41",
3998
- "valueSize": 1
3999
- }
4000
- }
4001
- ],
4002
- "id": 6296,
4003
- "nodeType": "InlineAssembly",
4004
- "operations": "{\n addr := create2(0, add(code, 0x20), mload(code), salt)\n if iszero(extcodesize(addr))\n {\n revert(0, 0)\n }\n}",
4005
- "src": "3148:155:41"
4006
- },
4007
- {
4008
- "expression": {
4009
- "argumentTypes": null,
4010
- "arguments": [
4011
- {
4012
- "argumentTypes": null,
4013
- "id": 6298,
4014
- "name": "addr",
4015
- "nodeType": "Identifier",
4016
- "overloadedDeclarations": [],
4017
- "referencedDeclaration": 6280,
4018
- "src": "3342:4:41",
4019
- "typeDescriptions": {
4020
- "typeIdentifier": "t_address_payable",
4021
- "typeString": "address payable"
4022
- }
4023
- }
4024
- ],
4025
- "expression": {
4026
- "argumentTypes": [
4027
- {
4028
- "typeIdentifier": "t_address_payable",
4029
- "typeString": "address payable"
4030
- }
4031
- ],
4032
- "id": 6297,
4033
- "name": "InitializableAdminUpgradeabilityProxy",
4034
- "nodeType": "Identifier",
4035
- "overloadedDeclarations": [],
4036
- "referencedDeclaration": 5800,
4037
- "src": "3304:37:41",
4038
- "typeDescriptions": {
4039
- "typeIdentifier": "t_type$_t_contract$_InitializableAdminUpgradeabilityProxy_$5800_$",
4040
- "typeString": "type(contract InitializableAdminUpgradeabilityProxy)"
4041
- }
4042
- },
4043
- "id": 6299,
4044
- "isConstant": false,
4045
- "isLValue": false,
4046
- "isPure": false,
4047
- "kind": "typeConversion",
4048
- "lValueRequested": false,
4049
- "names": [],
4050
- "nodeType": "FunctionCall",
4051
- "src": "3304:43:41",
4052
- "typeDescriptions": {
4053
- "typeIdentifier": "t_contract$_InitializableAdminUpgradeabilityProxy_$5800",
4054
- "typeString": "contract InitializableAdminUpgradeabilityProxy"
4055
- }
4056
- },
4057
- "functionReturnParameters": 6278,
4058
- "id": 6300,
4059
- "nodeType": "Return",
4060
- "src": "3297:50:41"
4061
- }
4062
- ]
4063
- },
4064
- "documentation": null,
4065
- "id": 6302,
4066
- "implemented": true,
4067
- "kind": "function",
4068
- "modifiers": [],
4069
- "name": "_createProxy",
4070
- "nodeType": "FunctionDefinition",
4071
- "parameters": {
4072
- "id": 6275,
4073
- "nodeType": "ParameterList",
4074
- "parameters": [
4075
- {
4076
- "constant": false,
4077
- "id": 6272,
4078
- "name": "_salt",
4079
- "nodeType": "VariableDeclaration",
4080
- "scope": 6302,
4081
- "src": "2899:13:41",
4082
- "stateVariable": false,
4083
- "storageLocation": "default",
4084
- "typeDescriptions": {
4085
- "typeIdentifier": "t_uint256",
4086
- "typeString": "uint256"
4087
- },
4088
- "typeName": {
4089
- "id": 6271,
4090
- "name": "uint256",
4091
- "nodeType": "ElementaryTypeName",
4092
- "src": "2899:7:41",
4093
- "typeDescriptions": {
4094
- "typeIdentifier": "t_uint256",
4095
- "typeString": "uint256"
4096
- }
4097
- },
4098
- "value": null,
4099
- "visibility": "internal"
4100
- },
4101
- {
4102
- "constant": false,
4103
- "id": 6274,
4104
- "name": "_sender",
4105
- "nodeType": "VariableDeclaration",
4106
- "scope": 6302,
4107
- "src": "2914:15:41",
4108
- "stateVariable": false,
4109
- "storageLocation": "default",
4110
- "typeDescriptions": {
4111
- "typeIdentifier": "t_address",
4112
- "typeString": "address"
4113
- },
4114
- "typeName": {
4115
- "id": 6273,
4116
- "name": "address",
4117
- "nodeType": "ElementaryTypeName",
4118
- "src": "2914:7:41",
4119
- "stateMutability": "nonpayable",
4120
- "typeDescriptions": {
4121
- "typeIdentifier": "t_address",
4122
- "typeString": "address"
4123
- }
4124
- },
4125
- "value": null,
4126
- "visibility": "internal"
4127
- }
4128
- ],
4129
- "src": "2898:32:41"
4130
- },
4131
- "returnParameters": {
4132
- "id": 6278,
4133
- "nodeType": "ParameterList",
4134
- "parameters": [
4135
- {
4136
- "constant": false,
4137
- "id": 6277,
4138
- "name": "",
4139
- "nodeType": "VariableDeclaration",
4140
- "scope": 6302,
4141
- "src": "2949:37:41",
4142
- "stateVariable": false,
4143
- "storageLocation": "default",
4144
- "typeDescriptions": {
4145
- "typeIdentifier": "t_contract$_InitializableAdminUpgradeabilityProxy_$5800",
4146
- "typeString": "contract InitializableAdminUpgradeabilityProxy"
4147
- },
4148
- "typeName": {
4149
- "contractScope": null,
4150
- "id": 6276,
4151
- "name": "InitializableAdminUpgradeabilityProxy",
4152
- "nodeType": "UserDefinedTypeName",
4153
- "referencedDeclaration": 5800,
4154
- "src": "2949:37:41",
4155
- "typeDescriptions": {
4156
- "typeIdentifier": "t_contract$_InitializableAdminUpgradeabilityProxy_$5800",
4157
- "typeString": "contract InitializableAdminUpgradeabilityProxy"
4158
- }
4159
- },
4160
- "value": null,
4161
- "visibility": "internal"
4162
- }
4163
- ],
4164
- "src": "2948:39:41"
4165
- },
4166
- "scope": 6321,
4167
- "src": "2877:475:41",
4168
- "stateMutability": "nonpayable",
4169
- "superFunction": null,
4170
- "visibility": "internal"
4171
- },
4172
- {
4173
- "body": {
4174
- "id": 6319,
4175
- "nodeType": "Block",
4176
- "src": "3438:62:41",
4177
- "statements": [
4178
- {
4179
- "expression": {
4180
- "argumentTypes": null,
4181
- "arguments": [
4182
- {
4183
- "argumentTypes": null,
4184
- "arguments": [
4185
- {
4186
- "argumentTypes": null,
4187
- "id": 6314,
4188
- "name": "_salt",
4189
- "nodeType": "Identifier",
4190
- "overloadedDeclarations": [],
4191
- "referencedDeclaration": 6304,
4192
- "src": "3478:5:41",
4193
- "typeDescriptions": {
4194
- "typeIdentifier": "t_uint256",
4195
- "typeString": "uint256"
4196
- }
4197
- },
4198
- {
4199
- "argumentTypes": null,
4200
- "id": 6315,
4201
- "name": "_sender",
4202
- "nodeType": "Identifier",
4203
- "overloadedDeclarations": [],
4204
- "referencedDeclaration": 6306,
4205
- "src": "3485:7:41",
4206
- "typeDescriptions": {
4207
- "typeIdentifier": "t_address",
4208
- "typeString": "address"
4209
- }
4210
- }
4211
- ],
4212
- "expression": {
4213
- "argumentTypes": [
4214
- {
4215
- "typeIdentifier": "t_uint256",
4216
- "typeString": "uint256"
4217
- },
4218
- {
4219
- "typeIdentifier": "t_address",
4220
- "typeString": "address"
4221
- }
4222
- ],
4223
- "expression": {
4224
- "argumentTypes": null,
4225
- "id": 6312,
4226
- "name": "abi",
4227
- "nodeType": "Identifier",
4228
- "overloadedDeclarations": [],
4229
- "referencedDeclaration": 6450,
4230
- "src": "3461:3:41",
4231
- "typeDescriptions": {
4232
- "typeIdentifier": "t_magic_abi",
4233
- "typeString": "abi"
4234
- }
4235
- },
4236
- "id": 6313,
4237
- "isConstant": false,
4238
- "isLValue": false,
4239
- "isPure": true,
4240
- "lValueRequested": false,
4241
- "memberName": "encodePacked",
4242
- "nodeType": "MemberAccess",
4243
- "referencedDeclaration": null,
4244
- "src": "3461:16:41",
4245
- "typeDescriptions": {
4246
- "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
4247
- "typeString": "function () pure returns (bytes memory)"
4248
- }
4249
- },
4250
- "id": 6316,
4251
- "isConstant": false,
4252
- "isLValue": false,
4253
- "isPure": false,
4254
- "kind": "functionCall",
4255
- "lValueRequested": false,
4256
- "names": [],
4257
- "nodeType": "FunctionCall",
4258
- "src": "3461:32:41",
4259
- "typeDescriptions": {
4260
- "typeIdentifier": "t_bytes_memory_ptr",
4261
- "typeString": "bytes memory"
4262
- }
4263
- }
4264
- ],
4265
- "expression": {
4266
- "argumentTypes": [
4267
- {
4268
- "typeIdentifier": "t_bytes_memory_ptr",
4269
- "typeString": "bytes memory"
4270
- }
4271
- ],
4272
- "id": 6311,
4273
- "name": "keccak256",
4274
- "nodeType": "Identifier",
4275
- "overloadedDeclarations": [],
4276
- "referencedDeclaration": 6457,
4277
- "src": "3451:9:41",
4278
- "typeDescriptions": {
4279
- "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
4280
- "typeString": "function (bytes memory) pure returns (bytes32)"
4281
- }
4282
- },
4283
- "id": 6317,
4284
- "isConstant": false,
4285
- "isLValue": false,
4286
- "isPure": false,
4287
- "kind": "functionCall",
4288
- "lValueRequested": false,
4289
- "names": [],
4290
- "nodeType": "FunctionCall",
4291
- "src": "3451:43:41",
4292
- "typeDescriptions": {
4293
- "typeIdentifier": "t_bytes32",
4294
- "typeString": "bytes32"
4295
- }
4296
- },
4297
- "functionReturnParameters": 6310,
4298
- "id": 6318,
4299
- "nodeType": "Return",
4300
- "src": "3444:50:41"
4301
- }
4302
- ]
4303
- },
4304
- "documentation": null,
4305
- "id": 6320,
4306
- "implemented": true,
4307
- "kind": "function",
4308
- "modifiers": [],
4309
- "name": "_getSalt",
4310
- "nodeType": "FunctionDefinition",
4311
- "parameters": {
4312
- "id": 6307,
4313
- "nodeType": "ParameterList",
4314
- "parameters": [
4315
- {
4316
- "constant": false,
4317
- "id": 6304,
4318
- "name": "_salt",
4319
- "nodeType": "VariableDeclaration",
4320
- "scope": 6320,
4321
- "src": "3374:13:41",
4322
- "stateVariable": false,
4323
- "storageLocation": "default",
4324
- "typeDescriptions": {
4325
- "typeIdentifier": "t_uint256",
4326
- "typeString": "uint256"
4327
- },
4328
- "typeName": {
4329
- "id": 6303,
4330
- "name": "uint256",
4331
- "nodeType": "ElementaryTypeName",
4332
- "src": "3374:7:41",
4333
- "typeDescriptions": {
4334
- "typeIdentifier": "t_uint256",
4335
- "typeString": "uint256"
4336
- }
4337
- },
4338
- "value": null,
4339
- "visibility": "internal"
4340
- },
4341
- {
4342
- "constant": false,
4343
- "id": 6306,
4344
- "name": "_sender",
4345
- "nodeType": "VariableDeclaration",
4346
- "scope": 6320,
4347
- "src": "3389:15:41",
4348
- "stateVariable": false,
4349
- "storageLocation": "default",
4350
- "typeDescriptions": {
4351
- "typeIdentifier": "t_address",
4352
- "typeString": "address"
4353
- },
4354
- "typeName": {
4355
- "id": 6305,
4356
- "name": "address",
4357
- "nodeType": "ElementaryTypeName",
4358
- "src": "3389:7:41",
4359
- "stateMutability": "nonpayable",
4360
- "typeDescriptions": {
4361
- "typeIdentifier": "t_address",
4362
- "typeString": "address"
4363
- }
4364
- },
4365
- "value": null,
4366
- "visibility": "internal"
4367
- }
4368
- ],
4369
- "src": "3373:32:41"
4370
- },
4371
- "returnParameters": {
4372
- "id": 6310,
4373
- "nodeType": "ParameterList",
4374
- "parameters": [
4375
- {
4376
- "constant": false,
4377
- "id": 6309,
4378
- "name": "",
4379
- "nodeType": "VariableDeclaration",
4380
- "scope": 6320,
4381
- "src": "3429:7:41",
4382
- "stateVariable": false,
4383
- "storageLocation": "default",
4384
- "typeDescriptions": {
4385
- "typeIdentifier": "t_bytes32",
4386
- "typeString": "bytes32"
4387
- },
4388
- "typeName": {
4389
- "id": 6308,
4390
- "name": "bytes32",
4391
- "nodeType": "ElementaryTypeName",
4392
- "src": "3429:7:41",
4393
- "typeDescriptions": {
4394
- "typeIdentifier": "t_bytes32",
4395
- "typeString": "bytes32"
4396
- }
4397
- },
4398
- "value": null,
4399
- "visibility": "internal"
4400
- }
4401
- ],
4402
- "src": "3428:9:41"
4403
- },
4404
- "scope": 6321,
4405
- "src": "3356:144:41",
4406
- "stateMutability": "pure",
4407
- "superFunction": null,
4408
- "visibility": "internal"
4409
- }
4410
- ],
4411
- "scope": 6322,
4412
- "src": "116:3386:41"
4413
- }
4414
- ],
4415
- "src": "0:3503:41"
4416
- },
4417
- "bytecode": "0x608060405234801561001057600080fd5b506040518060200161002190610040565b602082018103825280604052508051906020012060008190555061004d565b610d2d80611d4083390190565b611ce48061005c6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063290f8f561461005c578063332d6626146102385780636150864c1461041457806381ae1f5b14610559578063b3eeb5e2146105e7575b600080fd5b6101f6600480360360a081101561007257600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156100d957600080fd5b8201836020820111156100eb57600080fd5b8035906020019184600183028401116401000000008311171561010d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561017057600080fd5b82018360208201111561018257600080fd5b803590602001918460018302840111640100000000831117156101a457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610702565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103d2600480360360a081101561024e57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156102b557600080fd5b8201836020820111156102c757600080fd5b803590602001918460018302840111640100000000831117156102e957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561034c57600080fd5b82018360208201111561035e57600080fd5b8035906020019184600183028401116401000000008311171561038057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610846565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105176004803603608081101561042a57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561049157600080fd5b8201836020820111156104a357600080fd5b803590602001918460018302840111640100000000831117156104c557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610916565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105a56004803603604081101561056f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061092f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106c0600480360360408110156105fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561063a57600080fd5b82018360208201111561064c57600080fd5b8035906020019184600183028401116401000000008311171561066e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610a0c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008061082e8787878730604051602001808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140183805190602001908083835b6020831015156107b55780518252602082019150602081019050602083039250610790565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014019550505050505060405160208183030381529060405280519060200120610bab565b905061083a8184610c03565b91505095945050505050565b6000806108568787878787610702565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156108fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b61090a8787878785610d09565b91505095945050505050565b60006109258585858533610d09565b9050949350505050565b60008061093c8484610ebf565b9050600060ff60f81b308360005460405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401838152602001828152602001945050505050604051602081830303815290604052805190602001209050606081901b60601c9250505092915050565b6000808360601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f09250507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e734982604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600083511115610ba45760008273ffffffffffffffffffffffffffffffffffffffff16846040518082805190602001908083835b602083101515610b2b5780518252602082019150602081019050602083039250610b06565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610b8d576040519150601f19603f3d011682016040523d82523d6000602084013e610b92565b606091505b50509050801515610ba257600080fd5b505b5092915050565b60008160405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050919050565b600060418251141515610c195760009050610d03565b60008060006020850151925060408501519150606085015160001a90507f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c1115610c6d5760009350505050610d03565b601b8160ff1614158015610c855750601c8160ff1614155b15610c965760009350505050610d03565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610cf3573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b600080610d168784610f27565b90507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e734981604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18073ffffffffffffffffffffffffffffffffffffffff1663cf7a1d778787876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610e4c578082015181840152602081019050610e31565b50505050905090810190601f168015610e795780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610e9a57600080fd5b505af1158015610eae573d6000803e3d6000fd5b505050508091505095945050505050565b60008282604051602001808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014019250505060405160208183030381529060405280519060200120905092915050565b600080606060405180602001610f3c90610f7e565b6020820181038252806040525090506000610f578686610ebf565b9050808251602084016000f59250823b1515610f7257600080fd5b82935050505092915050565b610d2d80610f8c8339019056fe608060405234801561001057600080fd5b50610d0d806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f283970146101bb578063cf7a1d771461020c578063d1f5789414610307578063f851a440146103e257610070565b80633659cfe61461007a5780634f1ef286146100cb5780635c60da1b14610164575b610078610439565b005b34801561008657600080fd5b506100c96004803603602081101561009d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610453565b005b610162600480360360408110156100e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561011e57600080fd5b82018360208201111561013057600080fd5b8035906020019184600183028401116401000000008311171561015257600080fd5b90919293919293905050506104a8565b005b34801561017057600080fd5b50610179610580565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b5061020a600480360360208110156101de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105d8565b005b6103056004803603606081101561022257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561027f57600080fd5b82018360208201111561029157600080fd5b803590602001918460018302840111640100000000831117156102b357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610753565b005b6103e06004803603604081101561031d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561035a57600080fd5b82018360208201111561036c57600080fd5b8035906020019184600183028401116401000000008311171561038e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610819565b005b3480156103ee57600080fd5b506103f76109a4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104416109fc565b61045161044c610a94565b610ac5565b565b61045b610aeb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561049c5761049781610b1c565b6104a5565b6104a4610439565b5b50565b6104b0610aeb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610572576104ec83610b1c565b60008373ffffffffffffffffffffffffffffffffffffffff168383604051808383808284378083019250505092505050600060405180830381855af49150503d8060008114610557576040519150601f19603f3d011682016040523d82523d6000602084013e61055c565b606091505b5050905080151561056c57600080fd5b5061057b565b61057a610439565b5b505050565b600061058a610aeb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156105cc576105c5610a94565b90506105d5565b6105d4610439565b5b90565b6105e0610aeb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561074757600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561069b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180610c716036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6106c4610aeb565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161074281610b6b565b610750565b61074f610439565b5b50565b600073ffffffffffffffffffffffffffffffffffffffff16610773610a94565b73ffffffffffffffffffffffffffffffffffffffff1614151561079557600080fd5b61079f8382610819565b600160405180807f656970313936372e70726f78792e61646d696e000000000000000000000000008152506013019050604051809103902060001c0360001b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b14151561080b57fe5b61081482610b6b565b505050565b600073ffffffffffffffffffffffffffffffffffffffff16610839610a94565b73ffffffffffffffffffffffffffffffffffffffff1614151561085b57600080fd5b600160405180807f656970313936372e70726f78792e696d706c656d656e746174696f6e00000000815250601c019050604051809103902060001c0360001b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b1415156108c757fe5b6108d082610b9a565b6000815111156109a05760008273ffffffffffffffffffffffffffffffffffffffff16826040518082805190602001908083835b6020831015156109295780518252602082019150602081019050602083039250610904565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610989576040519150601f19603f3d011682016040523d82523d6000602084013e61098e565b606091505b5050905080151561099e57600080fd5b505b5050565b60006109ae610aeb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156109f0576109e9610aeb565b90506109f9565b6109f8610439565b5b90565b610a04610aeb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180610c3f6032913960400191505060405180910390fd5b610a92610c29565b565b6000807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b9050805491505090565b3660008037600080366000845af43d6000803e8060008114610ae6573d6000f35b3d6000fd5b6000807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b9050805491505090565b610b2581610b9a565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b90508181555050565b610ba381610c2b565b1515610bfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180610ca7603b913960400191505060405180910390fd5b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b90508181555050565b565b600080823b90506000811191505091905056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a165627a7a7230582040dc1aa42759a5afcff393e7e45a4fd76785fa575d84b890318d3c652a4d5e360029a165627a7a72305820d694aebad6666ee89c173713b11980da6d8bf24490b44567873a6ef73d4db6680029608060405234801561001057600080fd5b50610d0d806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f283970146101bb578063cf7a1d771461020c578063d1f5789414610307578063f851a440146103e257610070565b80633659cfe61461007a5780634f1ef286146100cb5780635c60da1b14610164575b610078610439565b005b34801561008657600080fd5b506100c96004803603602081101561009d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610453565b005b610162600480360360408110156100e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561011e57600080fd5b82018360208201111561013057600080fd5b8035906020019184600183028401116401000000008311171561015257600080fd5b90919293919293905050506104a8565b005b34801561017057600080fd5b50610179610580565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b5061020a600480360360208110156101de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105d8565b005b6103056004803603606081101561022257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561027f57600080fd5b82018360208201111561029157600080fd5b803590602001918460018302840111640100000000831117156102b357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610753565b005b6103e06004803603604081101561031d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561035a57600080fd5b82018360208201111561036c57600080fd5b8035906020019184600183028401116401000000008311171561038e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610819565b005b3480156103ee57600080fd5b506103f76109a4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104416109fc565b61045161044c610a94565b610ac5565b565b61045b610aeb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561049c5761049781610b1c565b6104a5565b6104a4610439565b5b50565b6104b0610aeb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610572576104ec83610b1c565b60008373ffffffffffffffffffffffffffffffffffffffff168383604051808383808284378083019250505092505050600060405180830381855af49150503d8060008114610557576040519150601f19603f3d011682016040523d82523d6000602084013e61055c565b606091505b5050905080151561056c57600080fd5b5061057b565b61057a610439565b5b505050565b600061058a610aeb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156105cc576105c5610a94565b90506105d5565b6105d4610439565b5b90565b6105e0610aeb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561074757600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561069b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180610c716036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6106c4610aeb565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161074281610b6b565b610750565b61074f610439565b5b50565b600073ffffffffffffffffffffffffffffffffffffffff16610773610a94565b73ffffffffffffffffffffffffffffffffffffffff1614151561079557600080fd5b61079f8382610819565b600160405180807f656970313936372e70726f78792e61646d696e000000000000000000000000008152506013019050604051809103902060001c0360001b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b14151561080b57fe5b61081482610b6b565b505050565b600073ffffffffffffffffffffffffffffffffffffffff16610839610a94565b73ffffffffffffffffffffffffffffffffffffffff1614151561085b57600080fd5b600160405180807f656970313936372e70726f78792e696d706c656d656e746174696f6e00000000815250601c019050604051809103902060001c0360001b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b1415156108c757fe5b6108d082610b9a565b6000815111156109a05760008273ffffffffffffffffffffffffffffffffffffffff16826040518082805190602001908083835b6020831015156109295780518252602082019150602081019050602083039250610904565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610989576040519150601f19603f3d011682016040523d82523d6000602084013e61098e565b606091505b5050905080151561099e57600080fd5b505b5050565b60006109ae610aeb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156109f0576109e9610aeb565b90506109f9565b6109f8610439565b5b90565b610a04610aeb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180610c3f6032913960400191505060405180910390fd5b610a92610c29565b565b6000807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b9050805491505090565b3660008037600080366000845af43d6000803e8060008114610ae6573d6000f35b3d6000fd5b6000807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b9050805491505090565b610b2581610b9a565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b90508181555050565b610ba381610c2b565b1515610bfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180610ca7603b913960400191505060405180910390fd5b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b90508181555050565b565b600080823b90506000811191505091905056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a165627a7a7230582040dc1aa42759a5afcff393e7e45a4fd76785fa575d84b890318d3c652a4d5e360029",
4418
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063290f8f561461005c578063332d6626146102385780636150864c1461041457806381ae1f5b14610559578063b3eeb5e2146105e7575b600080fd5b6101f6600480360360a081101561007257600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156100d957600080fd5b8201836020820111156100eb57600080fd5b8035906020019184600183028401116401000000008311171561010d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561017057600080fd5b82018360208201111561018257600080fd5b803590602001918460018302840111640100000000831117156101a457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610702565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6103d2600480360360a081101561024e57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001906401000000008111156102b557600080fd5b8201836020820111156102c757600080fd5b803590602001918460018302840111640100000000831117156102e957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561034c57600080fd5b82018360208201111561035e57600080fd5b8035906020019184600183028401116401000000008311171561038057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610846565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105176004803603608081101561042a57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561049157600080fd5b8201836020820111156104a357600080fd5b803590602001918460018302840111640100000000831117156104c557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610916565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105a56004803603604081101561056f57600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061092f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106c0600480360360408110156105fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561063a57600080fd5b82018360208201111561064c57600080fd5b8035906020019184600183028401116401000000008311171561066e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610a0c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b60008061082e8787878730604051602001808681526020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b815260140183805190602001908083835b6020831015156107b55780518252602082019150602081019050602083039250610790565b6001836020036101000a0380198251168184511680821785525050505050509050018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014019550505050505060405160208183030381529060405280519060200120610bab565b905061083a8184610c03565b91505095945050505050565b6000806108568787878787610702565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156108fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f496e76616c6964207369676e617475726500000000000000000000000000000081525060200191505060405180910390fd5b61090a8787878785610d09565b91505095945050505050565b60006109258585858533610d09565b9050949350505050565b60008061093c8484610ebf565b9050600060ff60f81b308360005460405160200180857effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526001018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401838152602001828152602001945050505050604051602081830303815290604052805190602001209050606081901b60601c9250505092915050565b6000808360601b90506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f09250507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e734982604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1600083511115610ba45760008273ffffffffffffffffffffffffffffffffffffffff16846040518082805190602001908083835b602083101515610b2b5780518252602082019150602081019050602083039250610b06565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114610b8d576040519150601f19603f3d011682016040523d82523d6000602084013e610b92565b606091505b50509050801515610ba257600080fd5b505b5092915050565b60008160405160200180807f19457468657265756d205369676e6564204d6573736167653a0a333200000000815250601c01828152602001915050604051602081830303815290604052805190602001209050919050565b600060418251141515610c195760009050610d03565b60008060006020850151925060408501519150606085015160001a90507f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c1115610c6d5760009350505050610d03565b601b8160ff1614158015610c855750601c8160ff1614155b15610c965760009350505050610d03565b60018682858560405160008152602001604052604051808581526020018460ff1660ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610cf3573d6000803e3d6000fd5b5050506020604051035193505050505b92915050565b600080610d168784610f27565b90507efffc2da0b561cae30d9826d37709e9421c4725faebc226cbbb7ef5fc5e734981604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a18073ffffffffffffffffffffffffffffffffffffffff1663cf7a1d778787876040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610e4c578082015181840152602081019050610e31565b50505050905090810190601f168015610e795780820380516001836020036101000a031916815260200191505b50945050505050600060405180830381600087803b158015610e9a57600080fd5b505af1158015610eae573d6000803e3d6000fd5b505050508091505095945050505050565b60008282604051602001808381526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014019250505060405160208183030381529060405280519060200120905092915050565b600080606060405180602001610f3c90610f7e565b6020820181038252806040525090506000610f578686610ebf565b9050808251602084016000f59250823b1515610f7257600080fd5b82935050505092915050565b610d2d80610f8c8339019056fe608060405234801561001057600080fd5b50610d0d806100206000396000f3fe6080604052600436106100705760003560e01c80638f2839701161004e5780638f283970146101bb578063cf7a1d771461020c578063d1f5789414610307578063f851a440146103e257610070565b80633659cfe61461007a5780634f1ef286146100cb5780635c60da1b14610164575b610078610439565b005b34801561008657600080fd5b506100c96004803603602081101561009d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610453565b005b610162600480360360408110156100e157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561011e57600080fd5b82018360208201111561013057600080fd5b8035906020019184600183028401116401000000008311171561015257600080fd5b90919293919293905050506104a8565b005b34801561017057600080fd5b50610179610580565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156101c757600080fd5b5061020a600480360360208110156101de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506105d8565b005b6103056004803603606081101561022257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561027f57600080fd5b82018360208201111561029157600080fd5b803590602001918460018302840111640100000000831117156102b357600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610753565b005b6103e06004803603604081101561031d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019064010000000081111561035a57600080fd5b82018360208201111561036c57600080fd5b8035906020019184600183028401116401000000008311171561038e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610819565b005b3480156103ee57600080fd5b506103f76109a4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104416109fc565b61045161044c610a94565b610ac5565b565b61045b610aeb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561049c5761049781610b1c565b6104a5565b6104a4610439565b5b50565b6104b0610aeb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610572576104ec83610b1c565b60008373ffffffffffffffffffffffffffffffffffffffff168383604051808383808284378083019250505092505050600060405180830381855af49150503d8060008114610557576040519150601f19603f3d011682016040523d82523d6000602084013e61055c565b606091505b5050905080151561056c57600080fd5b5061057b565b61057a610439565b5b505050565b600061058a610aeb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156105cc576105c5610a94565b90506105d5565b6105d4610439565b5b90565b6105e0610aeb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561074757600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561069b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526036815260200180610c716036913960400191505060405180910390fd5b7f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f6106c4610aeb565b82604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019250505060405180910390a161074281610b6b565b610750565b61074f610439565b5b50565b600073ffffffffffffffffffffffffffffffffffffffff16610773610a94565b73ffffffffffffffffffffffffffffffffffffffff1614151561079557600080fd5b61079f8382610819565b600160405180807f656970313936372e70726f78792e61646d696e000000000000000000000000008152506013019050604051809103902060001c0360001b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b14151561080b57fe5b61081482610b6b565b505050565b600073ffffffffffffffffffffffffffffffffffffffff16610839610a94565b73ffffffffffffffffffffffffffffffffffffffff1614151561085b57600080fd5b600160405180807f656970313936372e70726f78792e696d706c656d656e746174696f6e00000000815250601c019050604051809103902060001c0360001b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b1415156108c757fe5b6108d082610b9a565b6000815111156109a05760008273ffffffffffffffffffffffffffffffffffffffff16826040518082805190602001908083835b6020831015156109295780518252602082019150602081019050602083039250610904565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855af49150503d8060008114610989576040519150601f19603f3d011682016040523d82523d6000602084013e61098e565b606091505b5050905080151561099e57600080fd5b505b5050565b60006109ae610aeb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156109f0576109e9610aeb565b90506109f9565b6109f8610439565b5b90565b610a04610aeb565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151515610a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180610c3f6032913960400191505060405180910390fd5b610a92610c29565b565b6000807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b9050805491505090565b3660008037600080366000845af43d6000803e8060008114610ae6573d6000f35b3d6000fd5b6000807fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b9050805491505090565b610b2581610b9a565b8073ffffffffffffffffffffffffffffffffffffffff167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b60405160405180910390a250565b60007fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610360001b90508181555050565b610ba381610c2b565b1515610bfa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180610ca7603b913960400191505060405180910390fd5b60007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b90508181555050565b565b600080823b90506000811191505091905056fe43616e6e6f742063616c6c2066616c6c6261636b2066756e6374696f6e2066726f6d207468652070726f78792061646d696e43616e6e6f74206368616e6765207468652061646d696e206f6620612070726f787920746f20746865207a65726f206164647265737343616e6e6f742073657420612070726f787920696d706c656d656e746174696f6e20746f2061206e6f6e2d636f6e74726163742061646472657373a165627a7a7230582040dc1aa42759a5afcff393e7e45a4fd76785fa575d84b890318d3c652a4d5e360029a165627a7a72305820d694aebad6666ee89c173713b11980da6d8bf24490b44567873a6ef73d4db6680029",
4419
- "compiler": {
4420
- "name": "solc",
4421
- "version": "0.5.3+commit.10d17f24.Emscripten.clang",
4422
- "optimizer": {},
4423
- "evmVersion": "constantinople"
4424
- }
4425
- }