@etherisc/gif-next 0.0.2-edd8f00-238 → 0.0.2-ee01d06-355

Sign up to get free protection for your applications and to get access to all the features.
Files changed (205) hide show
  1. package/README.md +9 -0
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  3. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +2 -2
  5. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +2 -2
  7. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  8. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  9. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  10. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +2 -2
  11. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  12. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  13. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  14. package/artifacts/contracts/instance/Instance.sol/Instance.json +2 -2
  15. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  16. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2 -2
  17. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +1 -1
  18. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +2 -2
  19. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  20. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2 -2
  21. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  22. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +2 -2
  23. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  24. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +2 -2
  25. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  26. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +72 -72
  27. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  28. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  29. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  30. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  31. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  32. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  33. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +2 -2
  34. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  35. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  36. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  37. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  38. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  39. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  40. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  41. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  42. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  43. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  44. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  45. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  46. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
  47. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  48. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +2 -2
  49. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  50. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +2 -2
  51. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  52. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +2 -2
  53. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  54. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  55. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  56. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  57. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  58. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +2 -2
  59. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  60. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +2 -2
  61. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  62. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
  63. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  64. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +2 -2
  65. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  66. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +2 -2
  67. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  68. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +2 -2
  69. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  70. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  71. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  72. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  73. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  74. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  75. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  76. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +2 -2
  77. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  78. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +2 -2
  79. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  80. package/artifacts/contracts/product/PricingService.sol/PricingService.json +2 -2
  81. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  82. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +2 -2
  83. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  84. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  85. package/artifacts/contracts/product/ProductService.sol/ProductService.json +2 -2
  86. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +2 -2
  88. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  89. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  90. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  91. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  92. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  93. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  94. package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
  95. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  96. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +34 -34
  97. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  98. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
  99. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  100. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +2 -2
  101. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  102. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +4 -27
  103. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  104. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +18 -75
  105. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  106. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  107. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +2 -2
  108. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  109. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
  110. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  111. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +1 -1
  112. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +1 -1
  113. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +1 -1
  114. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +1 -1
  115. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +1 -1
  116. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  117. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  118. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +2 -2
  119. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  120. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +2 -2
  121. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  122. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  123. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  124. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +1 -1
  125. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +1 -1
  126. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  127. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  128. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  129. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  130. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  131. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  132. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  133. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  134. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  135. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  136. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  137. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  138. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  139. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  140. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +4 -77
  141. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  142. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +0 -23
  143. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +1 -1
  144. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  145. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  146. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  147. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  148. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  149. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  150. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  151. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  152. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  153. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  154. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  155. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  156. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
  157. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  158. package/artifacts/contracts/staking/Staking.sol/Staking.json +2 -2
  159. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  160. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +4 -27
  161. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  162. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +2 -2
  163. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  164. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
  165. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  166. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +2 -2
  167. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +2 -2
  169. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  170. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +80 -103
  171. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  172. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
  173. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  174. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  175. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  176. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  177. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  178. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  179. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  180. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  181. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  182. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  183. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  184. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  185. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  186. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  187. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  188. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  189. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  190. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  191. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  192. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  193. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  194. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  195. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  196. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  197. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  198. package/contracts/instance/base/ObjectLifecycle.sol +55 -45
  199. package/contracts/registry/RegistryAdmin.sol +3 -1
  200. package/contracts/registry/ReleaseLifecycle.sol +8 -9
  201. package/contracts/registry/ReleaseManager.sol +4 -24
  202. package/contracts/shared/KeyValueStore.sol +1 -1
  203. package/contracts/shared/Lifecycle.sol +16 -10
  204. package/contracts/staking/StakingLifecycle.sol +5 -6
  205. package/package.json +3 -1
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -450,8 +450,8 @@
450
450
  "type": "function"
451
451
  }
452
452
  ],
453
- "bytecode": "0x6115be61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100d95760003560e01c8063b7f3e12c11610096578063da86eb8011610070578063da86eb80146101b1578063e8e7a2b4146101c4578063f2bbb0a8146101e5578063f87bf3731461021057600080fd5b8063b7f3e12c14610175578063bf381be614610188578063c6edc3dd146101a957600080fd5b80633e7964a1146100de578063504a473d146101015780635bcf927a14610122578063658501a6146101455780639ed616cd1461014d578063aea958cf14610162575b600080fd5b6100e6610218565b60405164ffffffffff90911681526020015b60405180910390f35b61011461010f366004610fa0565b610298565b6040519081526020016100f8565b610135610130366004610fcc565b610336565b60405190151581526020016100f8565b610114610366565b61016061015b366004611011565b6103e6565b005b61016061017036600461108a565b6106cf565b6101146101833660046110b6565b610722565b61019b6101963660046110f7565b61088c565b6040516100f8929190611142565b6100e6610a48565b6101606101bf366004611188565b610a85565b6101d76101d23660046111c1565b610b81565b6040516100f89291906111f1565b6101f86101f336600461108a565b610d35565b6040516001600160601b0390911681526020016100f8565b610114610dc2565b604051630319d08b60e21b81526309660180600482015260009073__$71e292c09eace9601b3e21e68a1278917a$__90630c67422c906024015b602060405180830381865af415801561026f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102939190611230565b905090565b600073__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b038416601f6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af415801561030c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610330919061124d565b92915050565b600060ff821660010361034b57506001919050565b60ff8216600a0361035e57506001919050565b506000919050565b604051631488c84560e01b815260216004820152600119602482015260009073__$bf7bc340cbb9229ef1de2c568356e67902$__90631488c845906044015b602060405180830381865af41580156103c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610293919061124d565b604051630a4d29dd60e31b81526001600160601b038516600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af415801561043e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610462919061127b565b156104805760405163019dbc4d60e31b815260040160405180910390fd5b60405163134fc55b60e11b81526001600160601b03851660048201526001600160a01b0386169063269f8ab690602401602060405180830381865afa1580156104cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f1919061127b565b1561051f57604051638bf515e960e01b81526001600160601b03851660048201526024015b60405180910390fd5b61052883610336565b61055957604051632778739960e11b81526001600160601b038516600482015260ff84166024820152604401610516565b6105638483610a85565b61056d84826106cf565b60405163e74d052f60e01b81526001600160601b03851660048201526001600160a01b0387169063e74d052f90602401602060405180830381865afa1580156105ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105de919061127b565b6106065760405163686c563560e11b81526001600160601b0385166004820152602401610516565b6040516305247a1760e51b81526001600160601b03851660048201526000906001600160a01b0388169063a48f42e090602401600060405180830381865afa158015610656573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261067e91908101906113ac565b60400151905060ff808216908516146106c65760405163e3c5e85760e01b81526001600160601b038616600482015260ff808616602483015282166044820152606401610516565b50505050505050565b6106df816106db610366565b1090565b1561071e57816106ed610366565b604051637eed2aab60e01b81526001600160601b039092166004830152602482015260448101829052606401610516565b5050565b60008073__$bf7bc340cbb9229ef1de2c568356e67902$__631488c8456001866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561077f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a3919061147f565b886001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610805919061147f565b61080f919061149c565b6040516001600160e01b031960e085901b168152600481019290925260000b6024820152604401602060405180830381865af4158015610853573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610877919061124d565b90506108838382610e05565b95945050505050565b60408051608081018252600080825260208201819052918101829052606081018290526000856001600160a01b0316636291423a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091391906114c3565b60405163134fc55b60e11b81526001600160601b03871660048201529091506001600160a01b0382169063269f8ab690602401602060405180830381865afa158015610963573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610987919061127b565b6109af5760405163686c563560e11b81526001600160601b0386166004820152602401610516565b6109b98585610a85565b60405163153d412560e31b81526001600160601b03861660048201526001600160a01b0382169063a9ea092890602401608060405180830381865afa158015610a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2a91906114e0565b60408101805164ffffffffff90961690529396939550929350505050565b604051630319d08b60e21b815262f099c0600482015260009073__$71e292c09eace9601b3e21e68a1278917a$__90630c67422c90602401610252565b60405163790a38ad60e01b815264ffffffffff8216600482015273__$71e292c09eace9601b3e21e68a1278917a$__9063790a38ad90602401602060405180830381865af4158015610adb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aff919061127b565b15610b285760405163b7c4528f60e01b81526001600160601b0383166004820152602401610516565b610b3981610b34610218565b610e1a565b1561071e5781610b47610218565b6040516316eec12960e31b81526001600160601b03909216600483015264ffffffffff908116602483015282166044820152606401610516565b60408051608081018252600080825260208201819052918101829052606081018290526000856001600160a01b0316636291423a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0891906114c3565b60405163134fc55b60e11b81526001600160601b03871660048201529091506001600160a01b0382169063269f8ab690602401602060405180830381865afa158015610c58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7c919061127b565b610ca45760405163686c563560e11b81526001600160601b0386166004820152602401610516565b610cae85856106cf565b60405163153d412560e31b81526001600160601b03861660048201526001600160a01b0382169063a9ea092890602401608060405180830381865afa158015610cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1f91906114e0565b6060810180519590529396939550929350505050565b604051632c34efe560e11b81526001600160601b03831660048201526024810182905260009073__$3bac17678db7ae928afa209f2f44deec9c$__90635869dfca90604401602060405180830381865af4158015610d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbb9190611555565b9392505050565b604051631488c84560e01b815260056004820152600119602482015260009073__$bf7bc340cbb9229ef1de2c568356e67902$__90631488c845906044016103a5565b6000610dbb8383670de0b6b3a7640000610e9f565b6040516383ffcdef60e01b815264ffffffffff80841660048301528216602482015260009073__$71e292c09eace9601b3e21e68a1278917a$__906383ffcdef90604401602060405180830381865af4158015610e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbb919061127b565b6000808060001985870985870292508281108382030391505080600003610ed957838281610ecf57610ecf611572565b0492505050610dbb565b808411610f205760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610516565b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b6001600160601b0381168114610f9d57600080fd5b50565b600060208284031215610fb257600080fd5b8135610dbb81610f88565b60ff81168114610f9d57600080fd5b600060208284031215610fde57600080fd5b8135610dbb81610fbd565b6001600160a01b0381168114610f9d57600080fd5b64ffffffffff81168114610f9d57600080fd5b60008060008060008060c0878903121561102a57600080fd5b863561103581610fe9565b9550602087013561104581610fe9565b9450604087013561105581610f88565b9350606087013561106581610fbd565b9250608087013561107581610ffe565b8092505060a087013590509295509295509295565b6000806040838503121561109d57600080fd5b82356110a881610f88565b946020939093013593505050565b6000806000606084860312156110cb57600080fd5b83356110d681610fe9565b925060208401356110e681610fe9565b929592945050506040919091013590565b60008060006060848603121561110c57600080fd5b833561111781610fe9565b9250602084013561112781610f88565b9150604084013561113781610ffe565b809150509250925092565b64ffffffffff8316815260a08101610dbb602083018460ff81511682526020810151602083015264ffffffffff6040820151166040830152606081015160608301525050565b6000806040838503121561119b57600080fd5b82356111a681610f88565b915060208301356111b681610ffe565b809150509250929050565b6000806000606084860312156111d657600080fd5b83356111e181610fe9565b925060208401356110e681610f88565b82815260a08101610dbb602083018460ff81511682526020810151602083015264ffffffffff6040820151166040830152606081015160608301525050565b60006020828403121561124257600080fd5b8151610dbb81610ffe565b60006020828403121561125f57600080fd5b5051919050565b8051801515811461127657600080fd5b919050565b60006020828403121561128d57600080fd5b610dbb82611266565b634e487b7160e01b600052604160045260246000fd5b60405160e0810167ffffffffffffffff811182821017156112cf576112cf611296565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156112fe576112fe611296565b604052919050565b805161127681610f88565b805161127681610fbd565b805161127681610fe9565b600082601f83011261133857600080fd5b815167ffffffffffffffff81111561135257611352611296565b6020611366601f8301601f191682016112d5565b828152858284870101111561137a57600080fd5b60005b8381101561139857858101830151828201840152820161137d565b506000928101909101919091529392505050565b6000602082840312156113be57600080fd5b815167ffffffffffffffff808211156113d657600080fd5b9083019060e082860312156113ea57600080fd5b6113f26112ac565b6113fb83611306565b815261140960208401611306565b602082015261141a60408401611311565b604082015261142b60608401611266565b606082015261143c6080840161131c565b608082015261144d60a0840161131c565b60a082015260c08301518281111561146457600080fd5b61147087828601611327565b60c08301525095945050505050565b60006020828403121561149157600080fd5b8151610dbb81610fbd565b60ff828116828216039081111561033057634e487b7160e01b600052601160045260246000fd5b6000602082840312156114d557600080fd5b8151610dbb81610fe9565b6000608082840312156114f257600080fd5b6040516080810181811067ffffffffffffffff8211171561151557611515611296565b604052825161152381610fbd565b815260208381015190820152604083015161153d81610ffe565b60408201526060928301519281019290925250919050565b60006020828403121561156757600080fd5b8151610dbb81610f88565b634e487b7160e01b600052601260045260246000fdfea26469706673582212207b17ab86f74e5c4f686dd8254d37966b9ed41620023ac152c260529f2f53e29664736f6c63430008140033",
454
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100d95760003560e01c8063b7f3e12c11610096578063da86eb8011610070578063da86eb80146101b1578063e8e7a2b4146101c4578063f2bbb0a8146101e5578063f87bf3731461021057600080fd5b8063b7f3e12c14610175578063bf381be614610188578063c6edc3dd146101a957600080fd5b80633e7964a1146100de578063504a473d146101015780635bcf927a14610122578063658501a6146101455780639ed616cd1461014d578063aea958cf14610162575b600080fd5b6100e6610218565b60405164ffffffffff90911681526020015b60405180910390f35b61011461010f366004610fa0565b610298565b6040519081526020016100f8565b610135610130366004610fcc565b610336565b60405190151581526020016100f8565b610114610366565b61016061015b366004611011565b6103e6565b005b61016061017036600461108a565b6106cf565b6101146101833660046110b6565b610722565b61019b6101963660046110f7565b61088c565b6040516100f8929190611142565b6100e6610a48565b6101606101bf366004611188565b610a85565b6101d76101d23660046111c1565b610b81565b6040516100f89291906111f1565b6101f86101f336600461108a565b610d35565b6040516001600160601b0390911681526020016100f8565b610114610dc2565b604051630319d08b60e21b81526309660180600482015260009073__$71e292c09eace9601b3e21e68a1278917a$__90630c67422c906024015b602060405180830381865af415801561026f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102939190611230565b905090565b600073__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b038416601f6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af415801561030c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610330919061124d565b92915050565b600060ff821660010361034b57506001919050565b60ff8216600a0361035e57506001919050565b506000919050565b604051631488c84560e01b815260216004820152600119602482015260009073__$bf7bc340cbb9229ef1de2c568356e67902$__90631488c845906044015b602060405180830381865af41580156103c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610293919061124d565b604051630a4d29dd60e31b81526001600160601b038516600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af415801561043e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610462919061127b565b156104805760405163019dbc4d60e31b815260040160405180910390fd5b60405163134fc55b60e11b81526001600160601b03851660048201526001600160a01b0386169063269f8ab690602401602060405180830381865afa1580156104cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f1919061127b565b1561051f57604051638bf515e960e01b81526001600160601b03851660048201526024015b60405180910390fd5b61052883610336565b61055957604051632778739960e11b81526001600160601b038516600482015260ff84166024820152604401610516565b6105638483610a85565b61056d84826106cf565b60405163e74d052f60e01b81526001600160601b03851660048201526001600160a01b0387169063e74d052f90602401602060405180830381865afa1580156105ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105de919061127b565b6106065760405163686c563560e11b81526001600160601b0385166004820152602401610516565b6040516305247a1760e51b81526001600160601b03851660048201526000906001600160a01b0388169063a48f42e090602401600060405180830381865afa158015610656573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261067e91908101906113ac565b60400151905060ff808216908516146106c65760405163e3c5e85760e01b81526001600160601b038616600482015260ff808616602483015282166044820152606401610516565b50505050505050565b6106df816106db610366565b1090565b1561071e57816106ed610366565b604051637eed2aab60e01b81526001600160601b039092166004830152602482015260448101829052606401610516565b5050565b60008073__$bf7bc340cbb9229ef1de2c568356e67902$__631488c8456001866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561077f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a3919061147f565b886001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610805919061147f565b61080f919061149c565b6040516001600160e01b031960e085901b168152600481019290925260000b6024820152604401602060405180830381865af4158015610853573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610877919061124d565b90506108838382610e05565b95945050505050565b60408051608081018252600080825260208201819052918101829052606081018290526000856001600160a01b0316636291423a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091391906114c3565b60405163134fc55b60e11b81526001600160601b03871660048201529091506001600160a01b0382169063269f8ab690602401602060405180830381865afa158015610963573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610987919061127b565b6109af5760405163686c563560e11b81526001600160601b0386166004820152602401610516565b6109b98585610a85565b60405163153d412560e31b81526001600160601b03861660048201526001600160a01b0382169063a9ea092890602401608060405180830381865afa158015610a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2a91906114e0565b60408101805164ffffffffff90961690529396939550929350505050565b604051630319d08b60e21b815262f099c0600482015260009073__$71e292c09eace9601b3e21e68a1278917a$__90630c67422c90602401610252565b60405163790a38ad60e01b815264ffffffffff8216600482015273__$71e292c09eace9601b3e21e68a1278917a$__9063790a38ad90602401602060405180830381865af4158015610adb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aff919061127b565b15610b285760405163b7c4528f60e01b81526001600160601b0383166004820152602401610516565b610b3981610b34610218565b610e1a565b1561071e5781610b47610218565b6040516316eec12960e31b81526001600160601b03909216600483015264ffffffffff908116602483015282166044820152606401610516565b60408051608081018252600080825260208201819052918101829052606081018290526000856001600160a01b0316636291423a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0891906114c3565b60405163134fc55b60e11b81526001600160601b03871660048201529091506001600160a01b0382169063269f8ab690602401602060405180830381865afa158015610c58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7c919061127b565b610ca45760405163686c563560e11b81526001600160601b0386166004820152602401610516565b610cae85856106cf565b60405163153d412560e31b81526001600160601b03861660048201526001600160a01b0382169063a9ea092890602401608060405180830381865afa158015610cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1f91906114e0565b6060810180519590529396939550929350505050565b604051632c34efe560e11b81526001600160601b03831660048201526024810182905260009073__$3bac17678db7ae928afa209f2f44deec9c$__90635869dfca90604401602060405180830381865af4158015610d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbb9190611555565b9392505050565b604051631488c84560e01b815260056004820152600119602482015260009073__$bf7bc340cbb9229ef1de2c568356e67902$__90631488c845906044016103a5565b6000610dbb8383670de0b6b3a7640000610e9f565b6040516383ffcdef60e01b815264ffffffffff80841660048301528216602482015260009073__$71e292c09eace9601b3e21e68a1278917a$__906383ffcdef90604401602060405180830381865af4158015610e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbb919061127b565b6000808060001985870985870292508281108382030391505080600003610ed957838281610ecf57610ecf611572565b0492505050610dbb565b808411610f205760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610516565b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b6001600160601b0381168114610f9d57600080fd5b50565b600060208284031215610fb257600080fd5b8135610dbb81610f88565b60ff81168114610f9d57600080fd5b600060208284031215610fde57600080fd5b8135610dbb81610fbd565b6001600160a01b0381168114610f9d57600080fd5b64ffffffffff81168114610f9d57600080fd5b60008060008060008060c0878903121561102a57600080fd5b863561103581610fe9565b9550602087013561104581610fe9565b9450604087013561105581610f88565b9350606087013561106581610fbd565b9250608087013561107581610ffe565b8092505060a087013590509295509295509295565b6000806040838503121561109d57600080fd5b82356110a881610f88565b946020939093013593505050565b6000806000606084860312156110cb57600080fd5b83356110d681610fe9565b925060208401356110e681610fe9565b929592945050506040919091013590565b60008060006060848603121561110c57600080fd5b833561111781610fe9565b9250602084013561112781610f88565b9150604084013561113781610ffe565b809150509250925092565b64ffffffffff8316815260a08101610dbb602083018460ff81511682526020810151602083015264ffffffffff6040820151166040830152606081015160608301525050565b6000806040838503121561119b57600080fd5b82356111a681610f88565b915060208301356111b681610ffe565b809150509250929050565b6000806000606084860312156111d657600080fd5b83356111e181610fe9565b925060208401356110e681610f88565b82815260a08101610dbb602083018460ff81511682526020810151602083015264ffffffffff6040820151166040830152606081015160608301525050565b60006020828403121561124257600080fd5b8151610dbb81610ffe565b60006020828403121561125f57600080fd5b5051919050565b8051801515811461127657600080fd5b919050565b60006020828403121561128d57600080fd5b610dbb82611266565b634e487b7160e01b600052604160045260246000fd5b60405160e0810167ffffffffffffffff811182821017156112cf576112cf611296565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156112fe576112fe611296565b604052919050565b805161127681610f88565b805161127681610fbd565b805161127681610fe9565b600082601f83011261133857600080fd5b815167ffffffffffffffff81111561135257611352611296565b6020611366601f8301601f191682016112d5565b828152858284870101111561137a57600080fd5b60005b8381101561139857858101830151828201840152820161137d565b506000928101909101919091529392505050565b6000602082840312156113be57600080fd5b815167ffffffffffffffff808211156113d657600080fd5b9083019060e082860312156113ea57600080fd5b6113f26112ac565b6113fb83611306565b815261140960208401611306565b602082015261141a60408401611311565b604082015261142b60608401611266565b606082015261143c6080840161131c565b608082015261144d60a0840161131c565b60a082015260c08301518281111561146457600080fd5b61147087828601611327565b60c08301525095945050505050565b60006020828403121561149157600080fd5b8151610dbb81610fbd565b60ff828116828216039081111561033057634e487b7160e01b600052601160045260246000fd5b6000602082840312156114d557600080fd5b8151610dbb81610fe9565b6000608082840312156114f257600080fd5b6040516080810181811067ffffffffffffffff8211171561151557611515611296565b604052825161152381610fbd565b815260208381015190820152604083015161153d81610ffe565b60408201526060928301519281019290925250919050565b60006020828403121561156757600080fd5b8151610dbb81610f88565b634e487b7160e01b600052601260045260246000fdfea26469706673582212207b17ab86f74e5c4f686dd8254d37966b9ed41620023ac152c260529f2f53e29664736f6c63430008140033",
453
+ "bytecode": "0x6115be61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100d95760003560e01c8063b7f3e12c11610096578063da86eb8011610070578063da86eb80146101b1578063e8e7a2b4146101c4578063f2bbb0a8146101e5578063f87bf3731461021057600080fd5b8063b7f3e12c14610175578063bf381be614610188578063c6edc3dd146101a957600080fd5b80633e7964a1146100de578063504a473d146101015780635bcf927a14610122578063658501a6146101455780639ed616cd1461014d578063aea958cf14610162575b600080fd5b6100e6610218565b60405164ffffffffff90911681526020015b60405180910390f35b61011461010f366004610fa0565b610298565b6040519081526020016100f8565b610135610130366004610fcc565b610336565b60405190151581526020016100f8565b610114610366565b61016061015b366004611011565b6103e6565b005b61016061017036600461108a565b6106cf565b6101146101833660046110b6565b610722565b61019b6101963660046110f7565b61088c565b6040516100f8929190611142565b6100e6610a48565b6101606101bf366004611188565b610a85565b6101d76101d23660046111c1565b610b81565b6040516100f89291906111f1565b6101f86101f336600461108a565b610d35565b6040516001600160601b0390911681526020016100f8565b610114610dc2565b604051630319d08b60e21b81526309660180600482015260009073__$71e292c09eace9601b3e21e68a1278917a$__90630c67422c906024015b602060405180830381865af415801561026f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102939190611230565b905090565b600073__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b038416601f6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af415801561030c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610330919061124d565b92915050565b600060ff821660010361034b57506001919050565b60ff8216600a0361035e57506001919050565b506000919050565b604051631488c84560e01b815260216004820152600119602482015260009073__$bf7bc340cbb9229ef1de2c568356e67902$__90631488c845906044015b602060405180830381865af41580156103c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610293919061124d565b604051630a4d29dd60e31b81526001600160601b038516600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af415801561043e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610462919061127b565b156104805760405163019dbc4d60e31b815260040160405180910390fd5b60405163134fc55b60e11b81526001600160601b03851660048201526001600160a01b0386169063269f8ab690602401602060405180830381865afa1580156104cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f1919061127b565b1561051f57604051638bf515e960e01b81526001600160601b03851660048201526024015b60405180910390fd5b61052883610336565b61055957604051632778739960e11b81526001600160601b038516600482015260ff84166024820152604401610516565b6105638483610a85565b61056d84826106cf565b60405163e74d052f60e01b81526001600160601b03851660048201526001600160a01b0387169063e74d052f90602401602060405180830381865afa1580156105ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105de919061127b565b6106065760405163686c563560e11b81526001600160601b0385166004820152602401610516565b6040516305247a1760e51b81526001600160601b03851660048201526000906001600160a01b0388169063a48f42e090602401600060405180830381865afa158015610656573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261067e91908101906113ac565b60400151905060ff808216908516146106c65760405163e3c5e85760e01b81526001600160601b038616600482015260ff808616602483015282166044820152606401610516565b50505050505050565b6106df816106db610366565b1090565b1561071e57816106ed610366565b604051637eed2aab60e01b81526001600160601b039092166004830152602482015260448101829052606401610516565b5050565b60008073__$bf7bc340cbb9229ef1de2c568356e67902$__631488c8456001866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561077f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a3919061147f565b886001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610805919061147f565b61080f919061149c565b6040516001600160e01b031960e085901b168152600481019290925260000b6024820152604401602060405180830381865af4158015610853573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610877919061124d565b90506108838382610e05565b95945050505050565b60408051608081018252600080825260208201819052918101829052606081018290526000856001600160a01b0316636291423a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091391906114c3565b60405163134fc55b60e11b81526001600160601b03871660048201529091506001600160a01b0382169063269f8ab690602401602060405180830381865afa158015610963573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610987919061127b565b6109af5760405163686c563560e11b81526001600160601b0386166004820152602401610516565b6109b98585610a85565b60405163153d412560e31b81526001600160601b03861660048201526001600160a01b0382169063a9ea092890602401608060405180830381865afa158015610a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2a91906114e0565b60408101805164ffffffffff90961690529396939550929350505050565b604051630319d08b60e21b815262f099c0600482015260009073__$71e292c09eace9601b3e21e68a1278917a$__90630c67422c90602401610252565b60405163790a38ad60e01b815264ffffffffff8216600482015273__$71e292c09eace9601b3e21e68a1278917a$__9063790a38ad90602401602060405180830381865af4158015610adb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aff919061127b565b15610b285760405163b7c4528f60e01b81526001600160601b0383166004820152602401610516565b610b3981610b34610218565b610e1a565b1561071e5781610b47610218565b6040516316eec12960e31b81526001600160601b03909216600483015264ffffffffff908116602483015282166044820152606401610516565b60408051608081018252600080825260208201819052918101829052606081018290526000856001600160a01b0316636291423a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0891906114c3565b60405163134fc55b60e11b81526001600160601b03871660048201529091506001600160a01b0382169063269f8ab690602401602060405180830381865afa158015610c58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7c919061127b565b610ca45760405163686c563560e11b81526001600160601b0386166004820152602401610516565b610cae85856106cf565b60405163153d412560e31b81526001600160601b03861660048201526001600160a01b0382169063a9ea092890602401608060405180830381865afa158015610cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1f91906114e0565b6060810180519590529396939550929350505050565b604051632c34efe560e11b81526001600160601b03831660048201526024810182905260009073__$3bac17678db7ae928afa209f2f44deec9c$__90635869dfca90604401602060405180830381865af4158015610d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbb9190611555565b9392505050565b604051631488c84560e01b815260056004820152600119602482015260009073__$bf7bc340cbb9229ef1de2c568356e67902$__90631488c845906044016103a5565b6000610dbb8383670de0b6b3a7640000610e9f565b6040516383ffcdef60e01b815264ffffffffff80841660048301528216602482015260009073__$71e292c09eace9601b3e21e68a1278917a$__906383ffcdef90604401602060405180830381865af4158015610e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbb919061127b565b6000808060001985870985870292508281108382030391505080600003610ed957838281610ecf57610ecf611572565b0492505050610dbb565b808411610f205760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610516565b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b6001600160601b0381168114610f9d57600080fd5b50565b600060208284031215610fb257600080fd5b8135610dbb81610f88565b60ff81168114610f9d57600080fd5b600060208284031215610fde57600080fd5b8135610dbb81610fbd565b6001600160a01b0381168114610f9d57600080fd5b64ffffffffff81168114610f9d57600080fd5b60008060008060008060c0878903121561102a57600080fd5b863561103581610fe9565b9550602087013561104581610fe9565b9450604087013561105581610f88565b9350606087013561106581610fbd565b9250608087013561107581610ffe565b8092505060a087013590509295509295509295565b6000806040838503121561109d57600080fd5b82356110a881610f88565b946020939093013593505050565b6000806000606084860312156110cb57600080fd5b83356110d681610fe9565b925060208401356110e681610fe9565b929592945050506040919091013590565b60008060006060848603121561110c57600080fd5b833561111781610fe9565b9250602084013561112781610f88565b9150604084013561113781610ffe565b809150509250925092565b64ffffffffff8316815260a08101610dbb602083018460ff81511682526020810151602083015264ffffffffff6040820151166040830152606081015160608301525050565b6000806040838503121561119b57600080fd5b82356111a681610f88565b915060208301356111b681610ffe565b809150509250929050565b6000806000606084860312156111d657600080fd5b83356111e181610fe9565b925060208401356110e681610f88565b82815260a08101610dbb602083018460ff81511682526020810151602083015264ffffffffff6040820151166040830152606081015160608301525050565b60006020828403121561124257600080fd5b8151610dbb81610ffe565b60006020828403121561125f57600080fd5b5051919050565b8051801515811461127657600080fd5b919050565b60006020828403121561128d57600080fd5b610dbb82611266565b634e487b7160e01b600052604160045260246000fd5b60405160e0810167ffffffffffffffff811182821017156112cf576112cf611296565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156112fe576112fe611296565b604052919050565b805161127681610f88565b805161127681610fbd565b805161127681610fe9565b600082601f83011261133857600080fd5b815167ffffffffffffffff81111561135257611352611296565b6020611366601f8301601f191682016112d5565b828152858284870101111561137a57600080fd5b60005b8381101561139857858101830151828201840152820161137d565b506000928101909101919091529392505050565b6000602082840312156113be57600080fd5b815167ffffffffffffffff808211156113d657600080fd5b9083019060e082860312156113ea57600080fd5b6113f26112ac565b6113fb83611306565b815261140960208401611306565b602082015261141a60408401611311565b604082015261142b60608401611266565b606082015261143c6080840161131c565b608082015261144d60a0840161131c565b60a082015260c08301518281111561146457600080fd5b61147087828601611327565b60c08301525095945050505050565b60006020828403121561149157600080fd5b8151610dbb81610fbd565b60ff828116828216039081111561033057634e487b7160e01b600052601160045260246000fd5b6000602082840312156114d557600080fd5b8151610dbb81610fe9565b6000608082840312156114f257600080fd5b6040516080810181811067ffffffffffffffff8211171561151557611515611296565b604052825161152381610fbd565b815260208381015190820152604083015161153d81610ffe565b60408201526060928301519281019290925250919050565b60006020828403121561156757600080fd5b8151610dbb81610f88565b634e487b7160e01b600052601260045260246000fdfea2646970667358221220a2c09fa1a1b0a5b46bdfc1b43727d98e92767c8ddaaa43685fca076b5bb835ed64736f6c63430008140033",
454
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100d95760003560e01c8063b7f3e12c11610096578063da86eb8011610070578063da86eb80146101b1578063e8e7a2b4146101c4578063f2bbb0a8146101e5578063f87bf3731461021057600080fd5b8063b7f3e12c14610175578063bf381be614610188578063c6edc3dd146101a957600080fd5b80633e7964a1146100de578063504a473d146101015780635bcf927a14610122578063658501a6146101455780639ed616cd1461014d578063aea958cf14610162575b600080fd5b6100e6610218565b60405164ffffffffff90911681526020015b60405180910390f35b61011461010f366004610fa0565b610298565b6040519081526020016100f8565b610135610130366004610fcc565b610336565b60405190151581526020016100f8565b610114610366565b61016061015b366004611011565b6103e6565b005b61016061017036600461108a565b6106cf565b6101146101833660046110b6565b610722565b61019b6101963660046110f7565b61088c565b6040516100f8929190611142565b6100e6610a48565b6101606101bf366004611188565b610a85565b6101d76101d23660046111c1565b610b81565b6040516100f89291906111f1565b6101f86101f336600461108a565b610d35565b6040516001600160601b0390911681526020016100f8565b610114610dc2565b604051630319d08b60e21b81526309660180600482015260009073__$71e292c09eace9601b3e21e68a1278917a$__90630c67422c906024015b602060405180830381865af415801561026f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102939190611230565b905090565b600073__$94a2c899be079b00d952d0d84fffaa5c34$__633889a4c86001600160601b038416601f6040516001600160e01b031960e085901b1681526001600160601b03909216600483015260ff166024820152604401602060405180830381865af415801561030c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610330919061124d565b92915050565b600060ff821660010361034b57506001919050565b60ff8216600a0361035e57506001919050565b506000919050565b604051631488c84560e01b815260216004820152600119602482015260009073__$bf7bc340cbb9229ef1de2c568356e67902$__90631488c845906044015b602060405180830381865af41580156103c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610293919061124d565b604051630a4d29dd60e31b81526001600160601b038516600482015273__$94a2c899be079b00d952d0d84fffaa5c34$__906352694ee890602401602060405180830381865af415801561043e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610462919061127b565b156104805760405163019dbc4d60e31b815260040160405180910390fd5b60405163134fc55b60e11b81526001600160601b03851660048201526001600160a01b0386169063269f8ab690602401602060405180830381865afa1580156104cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f1919061127b565b1561051f57604051638bf515e960e01b81526001600160601b03851660048201526024015b60405180910390fd5b61052883610336565b61055957604051632778739960e11b81526001600160601b038516600482015260ff84166024820152604401610516565b6105638483610a85565b61056d84826106cf565b60405163e74d052f60e01b81526001600160601b03851660048201526001600160a01b0387169063e74d052f90602401602060405180830381865afa1580156105ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105de919061127b565b6106065760405163686c563560e11b81526001600160601b0385166004820152602401610516565b6040516305247a1760e51b81526001600160601b03851660048201526000906001600160a01b0388169063a48f42e090602401600060405180830381865afa158015610656573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261067e91908101906113ac565b60400151905060ff808216908516146106c65760405163e3c5e85760e01b81526001600160601b038616600482015260ff808616602483015282166044820152606401610516565b50505050505050565b6106df816106db610366565b1090565b1561071e57816106ed610366565b604051637eed2aab60e01b81526001600160601b039092166004830152602482015260448101829052606401610516565b5050565b60008073__$bf7bc340cbb9229ef1de2c568356e67902$__631488c8456001866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561077f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a3919061147f565b886001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610805919061147f565b61080f919061149c565b6040516001600160e01b031960e085901b168152600481019290925260000b6024820152604401602060405180830381865af4158015610853573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610877919061124d565b90506108838382610e05565b95945050505050565b60408051608081018252600080825260208201819052918101829052606081018290526000856001600160a01b0316636291423a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108ef573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091391906114c3565b60405163134fc55b60e11b81526001600160601b03871660048201529091506001600160a01b0382169063269f8ab690602401602060405180830381865afa158015610963573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610987919061127b565b6109af5760405163686c563560e11b81526001600160601b0386166004820152602401610516565b6109b98585610a85565b60405163153d412560e31b81526001600160601b03861660048201526001600160a01b0382169063a9ea092890602401608060405180830381865afa158015610a06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a2a91906114e0565b60408101805164ffffffffff90961690529396939550929350505050565b604051630319d08b60e21b815262f099c0600482015260009073__$71e292c09eace9601b3e21e68a1278917a$__90630c67422c90602401610252565b60405163790a38ad60e01b815264ffffffffff8216600482015273__$71e292c09eace9601b3e21e68a1278917a$__9063790a38ad90602401602060405180830381865af4158015610adb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aff919061127b565b15610b285760405163b7c4528f60e01b81526001600160601b0383166004820152602401610516565b610b3981610b34610218565b610e1a565b1561071e5781610b47610218565b6040516316eec12960e31b81526001600160601b03909216600483015264ffffffffff908116602483015282166044820152606401610516565b60408051608081018252600080825260208201819052918101829052606081018290526000856001600160a01b0316636291423a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610be4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0891906114c3565b60405163134fc55b60e11b81526001600160601b03871660048201529091506001600160a01b0382169063269f8ab690602401602060405180830381865afa158015610c58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7c919061127b565b610ca45760405163686c563560e11b81526001600160601b0386166004820152602401610516565b610cae85856106cf565b60405163153d412560e31b81526001600160601b03861660048201526001600160a01b0382169063a9ea092890602401608060405180830381865afa158015610cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1f91906114e0565b6060810180519590529396939550929350505050565b604051632c34efe560e11b81526001600160601b03831660048201526024810182905260009073__$3bac17678db7ae928afa209f2f44deec9c$__90635869dfca90604401602060405180830381865af4158015610d97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbb9190611555565b9392505050565b604051631488c84560e01b815260056004820152600119602482015260009073__$bf7bc340cbb9229ef1de2c568356e67902$__90631488c845906044016103a5565b6000610dbb8383670de0b6b3a7640000610e9f565b6040516383ffcdef60e01b815264ffffffffff80841660048301528216602482015260009073__$71e292c09eace9601b3e21e68a1278917a$__906383ffcdef90604401602060405180830381865af4158015610e7b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dbb919061127b565b6000808060001985870985870292508281108382030391505080600003610ed957838281610ecf57610ecf611572565b0492505050610dbb565b808411610f205760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610516565b600084868809600260036001881981018916988990049182028318808302840302808302840302808302840302808302840302808302840302918202909203026000889003889004909101858311909403939093029303949094049190911702949350505050565b6001600160601b0381168114610f9d57600080fd5b50565b600060208284031215610fb257600080fd5b8135610dbb81610f88565b60ff81168114610f9d57600080fd5b600060208284031215610fde57600080fd5b8135610dbb81610fbd565b6001600160a01b0381168114610f9d57600080fd5b64ffffffffff81168114610f9d57600080fd5b60008060008060008060c0878903121561102a57600080fd5b863561103581610fe9565b9550602087013561104581610fe9565b9450604087013561105581610f88565b9350606087013561106581610fbd565b9250608087013561107581610ffe565b8092505060a087013590509295509295509295565b6000806040838503121561109d57600080fd5b82356110a881610f88565b946020939093013593505050565b6000806000606084860312156110cb57600080fd5b83356110d681610fe9565b925060208401356110e681610fe9565b929592945050506040919091013590565b60008060006060848603121561110c57600080fd5b833561111781610fe9565b9250602084013561112781610f88565b9150604084013561113781610ffe565b809150509250925092565b64ffffffffff8316815260a08101610dbb602083018460ff81511682526020810151602083015264ffffffffff6040820151166040830152606081015160608301525050565b6000806040838503121561119b57600080fd5b82356111a681610f88565b915060208301356111b681610ffe565b809150509250929050565b6000806000606084860312156111d657600080fd5b83356111e181610fe9565b925060208401356110e681610f88565b82815260a08101610dbb602083018460ff81511682526020810151602083015264ffffffffff6040820151166040830152606081015160608301525050565b60006020828403121561124257600080fd5b8151610dbb81610ffe565b60006020828403121561125f57600080fd5b5051919050565b8051801515811461127657600080fd5b919050565b60006020828403121561128d57600080fd5b610dbb82611266565b634e487b7160e01b600052604160045260246000fd5b60405160e0810167ffffffffffffffff811182821017156112cf576112cf611296565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156112fe576112fe611296565b604052919050565b805161127681610f88565b805161127681610fbd565b805161127681610fe9565b600082601f83011261133857600080fd5b815167ffffffffffffffff81111561135257611352611296565b6020611366601f8301601f191682016112d5565b828152858284870101111561137a57600080fd5b60005b8381101561139857858101830151828201840152820161137d565b506000928101909101919091529392505050565b6000602082840312156113be57600080fd5b815167ffffffffffffffff808211156113d657600080fd5b9083019060e082860312156113ea57600080fd5b6113f26112ac565b6113fb83611306565b815261140960208401611306565b602082015261141a60408401611311565b604082015261142b60608401611266565b606082015261143c6080840161131c565b608082015261144d60a0840161131c565b60a082015260c08301518281111561146457600080fd5b61147087828601611327565b60c08301525095945050505050565b60006020828403121561149157600080fd5b8151610dbb81610fbd565b60ff828116828216039081111561033057634e487b7160e01b600052601160045260246000fd5b6000602082840312156114d557600080fd5b8151610dbb81610fe9565b6000608082840312156114f257600080fd5b6040516080810181811067ffffffffffffffff8211171561151557611515611296565b604052825161152381610fbd565b815260208381015190820152604083015161153d81610ffe565b60408201526060928301519281019290925250919050565b60006020828403121561156757600080fd5b8151610dbb81610f88565b634e487b7160e01b600052601260045260246000fdfea2646970667358221220a2c09fa1a1b0a5b46bdfc1b43727d98e92767c8ddaaa43685fca076b5bb835ed64736f6c63430008140033",
455
455
  "linkReferences": {
456
456
  "contracts/type/Amount.sol": {
457
457
  "AmountLib": [
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/0f06c2950e1562d6947350101a7677fe.json"
3
+ "buildInfo": "../../../build-info/665aa47e829777998336a90751e114b3.json"
4
4
  }
@@ -1,12 +1,15 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {ObjectType, COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
5
- import {StateId, INITIAL, ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../../type/StateId.sol";
4
+ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
+
6
+ import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
7
+ import {ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../../type/StateId.sol";
6
8
  import {Lifecycle} from "../../shared/Lifecycle.sol";
7
9
 
8
10
  contract ObjectLifecycle is
9
- Lifecycle
11
+ Lifecycle,
12
+ Initializable
10
13
  {
11
14
  function _initializeLifecycle() internal onlyInitializing
12
15
  {
@@ -14,83 +17,90 @@ contract ObjectLifecycle is
14
17
  }
15
18
 
16
19
  function _setupLifecycle()
17
- private
20
+ internal
21
+ override
18
22
  {
19
23
  _setupBundleLifecycle();
20
24
  _setupComponentLifecycle();
21
25
  _setupPolicyLifecycle();
22
- _setupClaimAndPayoutLifecycle();
26
+ _setupClaimLifecycle();
27
+ _setupPayoutLifecycle();
23
28
  _setupRiskLifecycle();
24
29
  _setupRequestLifecycle();
30
+
31
+ // setup dummy lifecycles to manage with key value store
25
32
  _setUpPoolLifecycle();
26
33
  _setUpProductLifecycle();
27
34
  _setUpDistributionLifecycle();
28
35
  }
29
36
 
30
37
  function _setupComponentLifecycle() private {
31
- _initialState[COMPONENT()] = ACTIVE();
32
- _isValidTransition[COMPONENT()][ACTIVE()][PAUSED()] = true;
33
- _isValidTransition[COMPONENT()][PAUSED()][ACTIVE()] = true;
34
- _isValidTransition[COMPONENT()][PAUSED()][ARCHIVED()] = true;
38
+ setInitialState(COMPONENT(), ACTIVE());
39
+ setStateTransition(COMPONENT(), ACTIVE(), PAUSED());
40
+ setStateTransition(COMPONENT(), PAUSED(), ACTIVE());
41
+ setStateTransition(COMPONENT(), PAUSED(), ARCHIVED());
35
42
  }
36
43
 
37
44
  function _setupBundleLifecycle() private {
38
- _initialState[BUNDLE()] = ACTIVE();
39
- _isValidTransition[BUNDLE()][ACTIVE()][PAUSED()] = true;
40
- _isValidTransition[BUNDLE()][ACTIVE()][CLOSED()] = true;
41
- _isValidTransition[BUNDLE()][PAUSED()][ACTIVE()] = true;
42
- _isValidTransition[BUNDLE()][PAUSED()][CLOSED()] = true;
45
+ setInitialState(BUNDLE(), ACTIVE());
46
+ setStateTransition(BUNDLE(), ACTIVE(), PAUSED());
47
+ setStateTransition(BUNDLE(), ACTIVE(), CLOSED());
48
+ setStateTransition(BUNDLE(), PAUSED(), ACTIVE());
49
+ setStateTransition(BUNDLE(), PAUSED(), CLOSED());
43
50
  }
44
51
 
45
52
  function _setupPolicyLifecycle() private {
46
- _initialState[POLICY()] = APPLIED();
47
- _isValidTransition[POLICY()][APPLIED()][REVOKED()] = true;
48
- _isValidTransition[POLICY()][APPLIED()][DECLINED()] = true;
49
- _isValidTransition[POLICY()][APPLIED()][COLLATERALIZED()] = true;
50
- _isValidTransition[POLICY()][APPLIED()][ACTIVE()] = true;
51
- _isValidTransition[POLICY()][COLLATERALIZED()][ACTIVE()] = true;
52
- _isValidTransition[POLICY()][ACTIVE()][CLOSED()] = true;
53
+ setInitialState(POLICY(), APPLIED());
54
+ setStateTransition(POLICY(), APPLIED(), REVOKED());
55
+ setStateTransition(POLICY(), APPLIED(), DECLINED());
56
+ setStateTransition(POLICY(), APPLIED(), COLLATERALIZED());
57
+ setStateTransition(POLICY(), APPLIED(), ACTIVE());
58
+ setStateTransition(POLICY(), COLLATERALIZED(), ACTIVE());
59
+ setStateTransition(POLICY(), ACTIVE(), CLOSED());
53
60
  }
54
61
 
55
- function _setupClaimAndPayoutLifecycle() private {
56
- _initialState[CLAIM()] = SUBMITTED();
57
- _isValidTransition[CLAIM()][SUBMITTED()][CONFIRMED()] = true;
58
- _isValidTransition[CLAIM()][SUBMITTED()][DECLINED()] = true;
59
- _isValidTransition[CLAIM()][CONFIRMED()][CLOSED()] = true;
62
+ function _setupClaimLifecycle() private {
63
+ setInitialState(CLAIM(), SUBMITTED());
64
+ setStateTransition(CLAIM(), SUBMITTED(), CONFIRMED());
65
+ setStateTransition(CLAIM(), SUBMITTED(), DECLINED());
66
+ setStateTransition(CLAIM(), CONFIRMED(), CLOSED());
67
+ }
60
68
 
61
- _initialState[PAYOUT()] = EXPECTED();
62
- _isValidTransition[PAYOUT()][EXPECTED()][PAID()] = true;
69
+ function _setupPayoutLifecycle() private {
70
+ setInitialState(PAYOUT(), EXPECTED());
71
+ setStateTransition(PAYOUT(), EXPECTED(), PAID());
63
72
  }
64
73
 
65
74
  function _setupRiskLifecycle() private {
66
- _initialState[RISK()] = ACTIVE();
67
- _isValidTransition[RISK()][ACTIVE()][PAUSED()] = true;
68
- _isValidTransition[RISK()][PAUSED()][ACTIVE()] = true;
69
- _isValidTransition[RISK()][PAUSED()][ARCHIVED()] = true;
75
+ setInitialState(RISK(), ACTIVE());
76
+ setStateTransition(RISK(), ACTIVE(), PAUSED());
77
+ setStateTransition(RISK(), PAUSED(), ACTIVE());
78
+ setStateTransition(RISK(), PAUSED(), ARCHIVED());
70
79
  }
71
80
 
72
81
  function _setupRequestLifecycle() private {
73
- _initialState[REQUEST()] = ACTIVE();
74
- _isValidTransition[REQUEST()][ACTIVE()][FULFILLED()] = true;
75
- _isValidTransition[REQUEST()][ACTIVE()][FAILED()] = true;
76
- _isValidTransition[REQUEST()][FAILED()][FULFILLED()] = true;
77
- _isValidTransition[REQUEST()][ACTIVE()][CANCELLED()] = true;
82
+ setInitialState(REQUEST(), ACTIVE());
83
+ setStateTransition(REQUEST(), ACTIVE(), FULFILLED());
84
+ setStateTransition(REQUEST(), ACTIVE(), FAILED());
85
+ setStateTransition(REQUEST(), FAILED(), FULFILLED());
86
+ setStateTransition(REQUEST(), ACTIVE(), CANCELLED());
78
87
  }
79
88
 
80
- // TODO why this is needed when _setupComponentLifecycle() exists ?!!
89
+ // dummy lifecycle only
81
90
  function _setUpPoolLifecycle() private {
82
- _initialState[POOL()] = ACTIVE();
91
+ setInitialState(POOL(), ACTIVE());
83
92
  }
84
93
 
94
+ // dummy lifecycle only
85
95
  function _setUpProductLifecycle() private {
86
- _initialState[PRODUCT()] = ACTIVE();
96
+ setInitialState(PRODUCT(), ACTIVE());
87
97
  }
88
98
 
99
+ // dummy lifecycles only
89
100
  function _setUpDistributionLifecycle() private {
90
- _initialState[DISTRIBUTION()] = ACTIVE();
91
- _initialState[DISTRIBUTOR()] = ACTIVE();
92
- _initialState[DISTRIBUTOR_TYPE()] = ACTIVE();
93
- _initialState[REFERRAL()] = ACTIVE();
101
+ setInitialState(DISTRIBUTION(), ACTIVE());
102
+ setInitialState(DISTRIBUTOR(), ACTIVE());
103
+ setInitialState(DISTRIBUTOR_TYPE(), ACTIVE());
104
+ setInitialState(REFERRAL(), ACTIVE());
94
105
  }
95
-
96
106
  }
@@ -224,9 +224,11 @@ contract RegistryAdmin is
224
224
 
225
225
  // for ReleaseManager
226
226
  Function[] memory functions;
227
- functions = new Function[](2);
227
+ functions = new Function[](4);
228
228
  functions[0] = toFunction(ReleaseManager.createNextRelease.selector, "createNextRelease");
229
229
  functions[1] = toFunction(ReleaseManager.activateNextRelease.selector, "activateNextRelease");
230
+ functions[2] = toFunction(ReleaseManager.pauseRelease.selector, "pauseRelease");
231
+ functions[3] = toFunction(ReleaseManager.unpauseRelease.selector, "unpauseRelease");
230
232
  _authorizeTargetFunctions(_releaseManager, GIF_ADMIN_ROLE(), functions);
231
233
 
232
234
  // for Staking
@@ -13,16 +13,15 @@ contract ReleaseLifecycle is
13
13
  }
14
14
 
15
15
  function _setupLifecycle()
16
- private
16
+ internal
17
+ override
17
18
  {
18
- _initialState[RELEASE()] = SCHEDULED();
19
+ setInitialState(RELEASE(), SCHEDULED());
19
20
 
20
- _isValidTransition[RELEASE()][SCHEDULED()][DEPLOYING()] = true;
21
- _isValidTransition[RELEASE()][DEPLOYING()][DEPLOYING()] = true;
22
- _isValidTransition[RELEASE()][DEPLOYING()][ACTIVE()] = true;
23
- _isValidTransition[RELEASE()][ACTIVE()][PAUSED()] = true;
24
- _isValidTransition[RELEASE()][PAUSED()][ACTIVE()] = true;
25
- _isValidTransition[RELEASE()][PAUSED()][CLOSED()] = true;
26
- //_isValidTransition[RELEASE()][ACTIVE()][FREE()] = true;
21
+ setStateTransition(RELEASE(), SCHEDULED(), DEPLOYING());
22
+ setStateTransition(RELEASE(), DEPLOYING(), DEPLOYING());
23
+ setStateTransition(RELEASE(), DEPLOYING(), ACTIVE());
24
+ setStateTransition(RELEASE(), ACTIVE(), PAUSED());
25
+ setStateTransition(RELEASE(), PAUSED(), ACTIVE());
27
26
  }
28
27
  }
@@ -47,7 +47,6 @@ contract ReleaseManager is
47
47
  event LogReleaseActivation(VersionPart version);
48
48
  event LogReleaseDisabled(VersionPart version);
49
49
  event LogReleaseEnabled(VersionPart version);
50
- event LogReleaseClosed(VersionPart version);
51
50
 
52
51
  // constructor
53
52
  error ErrorReleaseManagerNotRegistry(Registry registry);
@@ -348,23 +347,6 @@ contract ReleaseManager is
348
347
 
349
348
  emit LogReleaseEnabled(version);
350
349
  }
351
- /// @dev permanently disable release
352
- function closeRelease(VersionPart version)
353
- external
354
- restricted // GIF_ADMIN_ROLE
355
- {
356
- StateId state = _state[version];
357
- StateId newState = CLOSED();
358
-
359
- // verify release in state PAUSED
360
- if (!isValidTransition(RELEASE(), state, newState)) {
361
- revert ErrorReleaseManagerReleaseActivationDisallowed(version, state);
362
- }
363
-
364
- _state[version] = newState;
365
-
366
- emit LogReleaseClosed(version);
367
- }
368
350
 
369
351
  //--- view functions ----------------------------------------------------//
370
352
 
@@ -382,7 +364,7 @@ contract ReleaseManager is
382
364
  }
383
365
 
384
366
  function isActiveRelease(VersionPart version) public view returns(bool) {
385
- return _releaseInfo[version].activatedAt.gtz();
367
+ return _state[version] == ACTIVE();
386
368
  }
387
369
 
388
370
  function getReleaseInfo(VersionPart version) external view returns(IRegistry.ReleaseInfo memory) {
@@ -409,12 +391,10 @@ contract ReleaseManager is
409
391
  return _servicesToRegister - _registeredServices;
410
392
  }
411
393
 
412
- // TODO cleanup
413
- function getReleaseAccessManager(VersionPart version) external view returns(AccessManagerExtendedWithDisableInitializeable) {
414
- // return _releaseAccessManager[version];
394
+ function getReleaseAccessManager(VersionPart version) external view returns(address) {
395
+ return _releaseAccessManager[version];
415
396
  }
416
397
 
417
- // TODO token registry knows nothing about adfmin, only registry
418
398
  function getRegistryAdmin() external view returns (address) {
419
399
  return address(_admin);
420
400
  }
@@ -511,7 +491,7 @@ contract ReleaseManager is
511
491
  return false;
512
492
  }
513
493
  // TODO try catch and return false in case of revert
514
- // a just panic
494
+ // or just panic
515
495
  // check if contract returns a zero nft id for its own address
516
496
  if (IRegistry(registryAddress).getNftId(registryAddress).eqz()) {
517
497
  return false;
@@ -11,7 +11,7 @@ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
11
11
  import {Lifecycle} from "./Lifecycle.sol";
12
12
  import {IKeyValueStore} from "./IKeyValueStore.sol";
13
13
 
14
- contract KeyValueStore is
14
+ abstract contract KeyValueStore is
15
15
  Lifecycle,
16
16
  IKeyValueStore
17
17
  {
@@ -1,25 +1,31 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
5
-
6
- import {NftId} from "../type/NftId.sol";
7
- import {ObjectType, COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT} from "../type/ObjectType.sol";
8
- import {StateId, ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../type/StateId.sol";
4
+ import {ObjectType} from "../type/ObjectType.sol";
5
+ import {StateId, zeroStateId} from "../type/StateId.sol";
9
6
  import {ILifecycle} from "./ILifecycle.sol";
10
7
 
11
8
  abstract contract Lifecycle is
12
- Initializable,
13
9
  ILifecycle
14
10
  {
15
- // TODO make private
16
11
  mapping(ObjectType objectType => StateId initialState)
17
- internal _initialState;
12
+ private _initialState;
18
13
 
19
14
  mapping(ObjectType objectType => mapping(StateId stateFrom => mapping(StateId stateTo => bool isValid)))
20
- internal _isValidTransition;
15
+ private _isValidTransition;
16
+
17
+ /// @dev child class must implement and CALL setup func at deployment/initializaton time
18
+ function _setupLifecycle() internal virtual;
21
19
 
22
- //function _initializeLifecycle() internal virtual;
20
+ function setInitialState(ObjectType ttype, StateId state) internal virtual {
21
+ assert(_initialState[ttype] == zeroStateId());
22
+ _initialState[ttype] = state;
23
+ }
24
+
25
+ function setStateTransition(ObjectType ttype, StateId oldState, StateId newState) internal virtual {
26
+ assert(_isValidTransition[ttype][oldState][newState] == false);
27
+ _isValidTransition[ttype][oldState][newState] = true;
28
+ }
23
29
 
24
30
  function hasLifecycle(
25
31
  ObjectType objectType