@etherisc/gif-next 0.0.2-d96b9e1-825 → 0.0.2-da06f3b-803

Sign up to get free protection for your applications and to get access to all the features.
Files changed (418) hide show
  1. package/README.md +255 -8
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
  3. package/artifacts/contracts/components/Component.sol/Component.json +656 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +849 -0
  6. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
  7. package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → components/IComponent.sol/IComponent.json} +244 -241
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +648 -0
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +429 -72
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +533 -64
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +603 -76
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +711 -67
  18. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +4 -0
  19. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +66 -0
  20. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +4 -0
  21. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +24 -0
  22. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +4 -0
  23. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +42 -0
  24. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +2 -2
  26. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +2 -2
  28. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +2 -2
  30. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +2 -2
  32. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  34. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  35. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  36. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  37. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  38. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  39. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  40. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  41. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  42. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  43. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
  44. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  45. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
  46. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  47. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +2 -2
  48. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  49. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +2 -2
  50. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  51. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +764 -0
  52. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  53. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +185 -0
  54. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  55. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1137 -1023
  56. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  57. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +592 -0
  58. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  59. package/artifacts/contracts/instance/Instance.sol/Instance.json +2001 -1098
  60. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  61. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +1081 -0
  62. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1381 -0
  64. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  65. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1050 -0
  66. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +473 -0
  68. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  69. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +261 -0
  70. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
  71. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +603 -0
  72. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  73. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +45 -127
  74. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  75. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  76. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +55 -245
  77. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  78. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +6 -6
  79. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  80. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +228 -0
  81. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  82. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  83. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  84. package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IDistribution.sol/IDistribution.json} +2 -2
  85. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  86. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  87. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  88. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  89. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  90. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/ISetup.sol/ISetup.json} +2 -2
  91. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  92. package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
  93. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  94. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1102 -0
  95. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  96. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +449 -0
  97. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  98. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +772 -0
  99. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  100. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +437 -0
  101. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  102. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +715 -0
  103. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  104. package/artifacts/contracts/instance/{base/IService.sol/IService.json → service/IDistributionService.sol/IDistributionService.json} +202 -61
  105. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  106. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +766 -0
  107. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  108. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +198 -80
  109. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  110. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +204 -150
  111. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  112. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1227 -0
  113. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  114. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +505 -0
  115. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  116. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +423 -88
  117. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  118. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +437 -0
  119. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  120. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +398 -215
  121. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +437 -0
  123. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  124. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +186 -12
  125. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  126. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +474 -36
  127. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  128. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +981 -0
  129. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  130. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
  131. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  132. package/artifacts/contracts/registry/Registry.sol/Registry.json +481 -108
  133. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  134. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  135. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  136. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1200 -0
  137. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +464 -0
  139. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  140. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +547 -0
  141. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  142. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +394 -0
  143. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  144. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  145. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  146. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  147. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  148. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +127 -0
  149. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  150. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +112 -37
  151. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  152. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → shared/IService.sol/IService.json} +169 -117
  153. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  154. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -14
  155. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  156. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +171 -0
  157. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  158. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +362 -0
  159. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  160. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +193 -32
  161. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  162. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/Service.sol/Service.json} +221 -71
  163. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  164. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  165. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  166. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  167. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  168. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -14
  169. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  170. package/artifacts/contracts/test/TestFee.sol/TestFee.json +10 -10
  171. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  172. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +207 -31
  173. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  174. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +44 -10
  175. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  176. package/artifacts/contracts/test/TestService.sol/TestService.json +292 -63
  177. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  178. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +91 -53
  179. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  180. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +12 -12
  181. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  182. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +103 -23
  183. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +4 -0
  184. package/artifacts/contracts/test/Usdc.sol/USDC.json +376 -0
  185. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  186. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +2 -2
  187. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  188. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
  189. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  190. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +2 -2
  191. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  192. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  193. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  194. package/artifacts/contracts/types/Fee.sol/FeeLib.json +52 -13
  195. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  196. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +31 -17
  197. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  198. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +4 -4
  199. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  200. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
  201. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  202. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  203. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  204. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  205. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  206. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +123 -0
  207. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  208. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  209. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
  210. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +156 -0
  211. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  212. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  213. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  214. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +15 -2
  215. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
  216. package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
  217. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
  218. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +479 -0
  219. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  220. package/artifacts/contracts/types/Version.sol/VersionLib.json +40 -2
  221. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  222. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
  223. package/contracts/components/Component.sol +216 -0
  224. package/contracts/components/Distribution.sol +153 -0
  225. package/contracts/components/IComponent.sol +43 -0
  226. package/contracts/components/IDistributionComponent.sol +47 -0
  227. package/contracts/components/IPoolComponent.sol +13 -19
  228. package/contracts/components/IProductComponent.sol +29 -9
  229. package/contracts/components/Pool.sol +105 -71
  230. package/contracts/components/Product.sol +189 -40
  231. package/contracts/experiment/cloning/Cloner.sol +47 -0
  232. package/contracts/instance/BundleManager.sol +125 -0
  233. package/contracts/instance/Cloneable.sol +46 -0
  234. package/contracts/instance/IInstance.sol +65 -45
  235. package/contracts/instance/IInstanceService.sol +42 -0
  236. package/contracts/instance/Instance.sol +254 -53
  237. package/contracts/instance/InstanceAccessManager.sol +414 -0
  238. package/contracts/instance/InstanceReader.sol +293 -0
  239. package/contracts/instance/InstanceService.sol +473 -0
  240. package/contracts/instance/InstanceServiceManager.sol +54 -0
  241. package/contracts/instance/ObjectManager.sol +84 -0
  242. package/contracts/instance/base/ComponentService.sol +134 -0
  243. package/contracts/instance/base/IKeyValueStore.sol +13 -13
  244. package/contracts/instance/base/ILifecycle.sol +3 -3
  245. package/contracts/instance/base/KeyValueStore.sol +61 -36
  246. package/contracts/instance/base/Lifecycle.sol +16 -11
  247. package/contracts/instance/module/IAccess.sol +48 -0
  248. package/contracts/instance/module/IBundle.sol +20 -0
  249. package/contracts/instance/module/IDistribution.sol +39 -0
  250. package/contracts/instance/module/IPolicy.sol +45 -0
  251. package/contracts/instance/module/IRisk.sol +11 -0
  252. package/contracts/instance/module/ISetup.sol +46 -0
  253. package/contracts/instance/module/ITreasury.sol +23 -0
  254. package/contracts/instance/service/BundleService.sol +293 -0
  255. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  256. package/contracts/instance/service/DistributionService.sol +106 -0
  257. package/contracts/instance/service/DistributionServiceManager.sol +51 -0
  258. package/contracts/instance/service/IBundleService.sol +44 -0
  259. package/contracts/instance/service/IDistributionService.sol +12 -0
  260. package/contracts/instance/service/IPolicyService.sol +94 -0
  261. package/contracts/instance/service/IPoolService.sol +8 -18
  262. package/contracts/instance/service/IProductService.sol +21 -39
  263. package/contracts/instance/service/PolicyService.sol +538 -0
  264. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  265. package/contracts/instance/service/PoolService.sol +78 -91
  266. package/contracts/instance/service/PoolServiceManager.sol +51 -0
  267. package/contracts/instance/service/ProductService.sol +168 -289
  268. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  269. package/contracts/registry/ChainNft.sol +79 -36
  270. package/contracts/registry/IRegistry.sol +67 -24
  271. package/contracts/registry/IRegistryService.sol +65 -0
  272. package/contracts/registry/ITransferInterceptor.sol +6 -0
  273. package/contracts/registry/Registry.sol +363 -287
  274. package/contracts/registry/RegistryAccessManager.sol +216 -0
  275. package/contracts/registry/RegistryService.sol +262 -0
  276. package/contracts/registry/RegistryServiceManager.sol +62 -0
  277. package/contracts/registry/ReleaseManager.sol +332 -0
  278. package/contracts/registry/TokenRegistry.sol +112 -0
  279. package/contracts/shared/ContractDeployerLib.sol +72 -0
  280. package/contracts/shared/ERC165.sol +6 -2
  281. package/contracts/shared/INftOwnable.sol +22 -0
  282. package/contracts/shared/IRegisterable.sol +8 -17
  283. package/contracts/shared/IService.sol +16 -0
  284. package/contracts/shared/IVersionable.sol +55 -11
  285. package/contracts/shared/NftOwnable.sol +139 -0
  286. package/contracts/shared/ProxyManager.sol +94 -0
  287. package/contracts/shared/Registerable.sol +59 -59
  288. package/contracts/shared/Service.sol +60 -0
  289. package/contracts/shared/TokenHandler.sol +27 -0
  290. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  291. package/contracts/shared/Versionable.sol +113 -55
  292. package/contracts/test/TestFee.sol +2 -2
  293. package/contracts/test/TestRegisterable.sol +5 -6
  294. package/contracts/test/TestRoleId.sol +2 -2
  295. package/contracts/test/TestService.sol +7 -14
  296. package/contracts/test/Usdc.sol +26 -0
  297. package/contracts/types/DistributorType.sol +55 -0
  298. package/contracts/types/Fee.sol +10 -5
  299. package/contracts/types/Key32.sol +8 -3
  300. package/contracts/types/NftIdSet.sol +26 -24
  301. package/contracts/types/NumberId.sol +52 -0
  302. package/contracts/types/ObjectType.sol +51 -14
  303. package/contracts/types/Referral.sol +85 -0
  304. package/contracts/types/RiskId.sol +43 -0
  305. package/contracts/types/RoleId.sol +68 -11
  306. package/contracts/types/StateId.sol +5 -1
  307. package/contracts/types/Timestamp.sol +7 -3
  308. package/contracts/types/UFixed.sol +144 -25
  309. package/contracts/types/Version.sol +13 -1
  310. package/package.json +9 -5
  311. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  312. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  313. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  314. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -174
  315. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  316. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  317. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  318. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  319. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  320. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -63
  321. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  322. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  323. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  324. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  325. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
  326. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  327. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  328. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  329. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  330. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  331. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  332. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -296
  333. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  334. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  335. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -296
  336. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  337. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  338. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  339. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  340. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  341. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  342. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  343. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -188
  344. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  345. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  346. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  347. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -188
  348. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  349. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  350. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -261
  351. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  352. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -261
  353. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  354. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  355. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  356. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
  357. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  358. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
  359. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  360. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  361. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
  362. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  363. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
  364. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  365. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  366. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -533
  367. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  368. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  369. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  370. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -533
  371. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  372. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -491
  373. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  374. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  375. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  376. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
  377. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  378. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  379. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  380. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
  381. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  382. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
  383. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  384. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -453
  385. package/contracts/components/BaseComponent.sol +0 -88
  386. package/contracts/components/IBaseComponent.sol +0 -19
  387. package/contracts/experiment/statemachine/README.md +0 -112
  388. package/contracts/instance/IInstanceLinked.sol +0 -8
  389. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  390. package/contracts/instance/base/IInstanceBase.sol +0 -14
  391. package/contracts/instance/base/IService.sol +0 -15
  392. package/contracts/instance/base/InstanceBase.sol +0 -80
  393. package/contracts/instance/base/ModuleBase.sol +0 -52
  394. package/contracts/instance/base/ServiceBase.sol +0 -37
  395. package/contracts/instance/module/access/Access.sol +0 -149
  396. package/contracts/instance/module/access/IAccess.sol +0 -53
  397. package/contracts/instance/module/bundle/BundleModule.sol +0 -136
  398. package/contracts/instance/module/bundle/IBundle.sol +0 -58
  399. package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
  400. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  401. package/contracts/instance/module/component/ComponentModule.sol +0 -95
  402. package/contracts/instance/module/component/IComponent.sol +0 -53
  403. package/contracts/instance/module/policy/IPolicy.sol +0 -60
  404. package/contracts/instance/module/policy/PolicyModule.sol +0 -76
  405. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  406. package/contracts/instance/module/pool/PoolModule.sol +0 -87
  407. package/contracts/instance/module/risk/IRisk.sol +0 -10
  408. package/contracts/instance/module/risk/RiskModule.sol +0 -8
  409. package/contracts/instance/module/treasury/ITreasury.sol +0 -103
  410. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  411. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -152
  412. package/contracts/instance/service/ComponentOwnerService.sol +0 -170
  413. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  414. package/contracts/registry/IChainNft.sol +0 -21
  415. package/contracts/registry/IRegistryLinked.sol +0 -8
  416. package/contracts/shared/IOwnable.sol +0 -6
  417. package/contracts/test/TestPool.sol +0 -22
  418. package/contracts/test/TestProduct.sol +0 -44
@@ -8,6 +8,92 @@
8
8
  "stateMutability": "nonpayable",
9
9
  "type": "constructor"
10
10
  },
11
+ {
12
+ "inputs": [
13
+ {
14
+ "internalType": "address",
15
+ "name": "spender",
16
+ "type": "address"
17
+ },
18
+ {
19
+ "internalType": "uint256",
20
+ "name": "allowance",
21
+ "type": "uint256"
22
+ },
23
+ {
24
+ "internalType": "uint256",
25
+ "name": "needed",
26
+ "type": "uint256"
27
+ }
28
+ ],
29
+ "name": "ERC20InsufficientAllowance",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [
34
+ {
35
+ "internalType": "address",
36
+ "name": "sender",
37
+ "type": "address"
38
+ },
39
+ {
40
+ "internalType": "uint256",
41
+ "name": "balance",
42
+ "type": "uint256"
43
+ },
44
+ {
45
+ "internalType": "uint256",
46
+ "name": "needed",
47
+ "type": "uint256"
48
+ }
49
+ ],
50
+ "name": "ERC20InsufficientBalance",
51
+ "type": "error"
52
+ },
53
+ {
54
+ "inputs": [
55
+ {
56
+ "internalType": "address",
57
+ "name": "approver",
58
+ "type": "address"
59
+ }
60
+ ],
61
+ "name": "ERC20InvalidApprover",
62
+ "type": "error"
63
+ },
64
+ {
65
+ "inputs": [
66
+ {
67
+ "internalType": "address",
68
+ "name": "receiver",
69
+ "type": "address"
70
+ }
71
+ ],
72
+ "name": "ERC20InvalidReceiver",
73
+ "type": "error"
74
+ },
75
+ {
76
+ "inputs": [
77
+ {
78
+ "internalType": "address",
79
+ "name": "sender",
80
+ "type": "address"
81
+ }
82
+ ],
83
+ "name": "ERC20InvalidSender",
84
+ "type": "error"
85
+ },
86
+ {
87
+ "inputs": [
88
+ {
89
+ "internalType": "address",
90
+ "name": "spender",
91
+ "type": "address"
92
+ }
93
+ ],
94
+ "name": "ERC20InvalidSpender",
95
+ "type": "error"
96
+ },
11
97
  {
12
98
  "anonymous": false,
13
99
  "inputs": [
@@ -143,7 +229,7 @@
143
229
  },
144
230
  {
145
231
  "internalType": "uint256",
146
- "name": "amount",
232
+ "name": "value",
147
233
  "type": "uint256"
148
234
  }
149
235
  ],
@@ -190,54 +276,6 @@
190
276
  "stateMutability": "pure",
191
277
  "type": "function"
192
278
  },
193
- {
194
- "inputs": [
195
- {
196
- "internalType": "address",
197
- "name": "spender",
198
- "type": "address"
199
- },
200
- {
201
- "internalType": "uint256",
202
- "name": "subtractedValue",
203
- "type": "uint256"
204
- }
205
- ],
206
- "name": "decreaseAllowance",
207
- "outputs": [
208
- {
209
- "internalType": "bool",
210
- "name": "",
211
- "type": "bool"
212
- }
213
- ],
214
- "stateMutability": "nonpayable",
215
- "type": "function"
216
- },
217
- {
218
- "inputs": [
219
- {
220
- "internalType": "address",
221
- "name": "spender",
222
- "type": "address"
223
- },
224
- {
225
- "internalType": "uint256",
226
- "name": "addedValue",
227
- "type": "uint256"
228
- }
229
- ],
230
- "name": "increaseAllowance",
231
- "outputs": [
232
- {
233
- "internalType": "bool",
234
- "name": "",
235
- "type": "bool"
236
- }
237
- ],
238
- "stateMutability": "nonpayable",
239
- "type": "function"
240
- },
241
279
  {
242
280
  "inputs": [],
243
281
  "name": "name",
@@ -286,7 +324,7 @@
286
324
  },
287
325
  {
288
326
  "internalType": "uint256",
289
- "name": "amount",
327
+ "name": "value",
290
328
  "type": "uint256"
291
329
  }
292
330
  ],
@@ -315,7 +353,7 @@
315
353
  },
316
354
  {
317
355
  "internalType": "uint256",
318
- "name": "amount",
356
+ "name": "value",
319
357
  "type": "uint256"
320
358
  }
321
359
  ],
@@ -331,8 +369,8 @@
331
369
  "type": "function"
332
370
  }
333
371
  ],
334
- "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600b81526020017f55534443202d20546573740000000000000000000000000000000000000000008152506040518060400160405280600481526020017f555344430000000000000000000000000000000000000000000000000000000081525081600390816200008f9190620004e4565b508060049081620000a19190620004e4565b505050620000e5620000b8620000eb60201b60201c565b6006600a620000c891906200075b565b633b9aca00620000d99190620007ac565b620000f360201b60201c565b620008e3565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000165576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200015c9062000858565b60405180910390fd5b62000179600083836200026060201b60201c565b80600260008282546200018d91906200087a565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620002409190620008c6565b60405180910390a36200025c600083836200026560201b60201c565b5050565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002ec57607f821691505b602082108103620003025762000301620002a4565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200036c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200032d565b6200037886836200032d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003c5620003bf620003b98462000390565b6200039a565b62000390565b9050919050565b6000819050919050565b620003e183620003a4565b620003f9620003f082620003cc565b8484546200033a565b825550505050565b600090565b6200041062000401565b6200041d818484620003d6565b505050565b5b8181101562000445576200043960008262000406565b60018101905062000423565b5050565b601f82111562000494576200045e8162000308565b62000469846200031d565b8101602085101562000479578190505b6200049162000488856200031d565b83018262000422565b50505b505050565b600082821c905092915050565b6000620004b96000198460080262000499565b1980831691505092915050565b6000620004d48383620004a6565b9150826002028217905092915050565b620004ef826200026a565b67ffffffffffffffff8111156200050b576200050a62000275565b5b620005178254620002d3565b6200052482828562000449565b600060209050601f8311600181146200055c576000841562000547578287015190505b620005538582620004c6565b865550620005c3565b601f1984166200056c8662000308565b60005b8281101562000596578489015182556001820191506020850194506020810190506200056f565b86831015620005b65784890151620005b2601f891682620004a6565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200065957808604811115620006315762000630620005cb565b5b6001851615620006415780820291505b80810290506200065185620005fa565b945062000611565b94509492505050565b60008262000674576001905062000747565b8162000684576000905062000747565b81600181146200069d5760028114620006a857620006de565b600191505062000747565b60ff841115620006bd57620006bc620005cb565b5b8360020a915084821115620006d757620006d6620005cb565b5b5062000747565b5060208310610133831016604e8410600b8410161715620007185782820a905083811115620007125762000711620005cb565b5b62000747565b62000727848484600162000607565b92509050818404811115620007415762000740620005cb565b5b81810290505b9392505050565b600060ff82169050919050565b6000620007688262000390565b915062000775836200074e565b9250620007a47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000662565b905092915050565b6000620007b98262000390565b9150620007c68362000390565b9250828202620007d68162000390565b91508282048414831517620007f057620007ef620005cb565b5b5092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000840601f83620007f7565b91506200084d8262000808565b602082019050919050565b60006020820190508181036000830152620008738162000831565b9050919050565b6000620008878262000390565b9150620008948362000390565b9250828201905080821115620008af57620008ae620005cb565b5b92915050565b620008c08162000390565b82525050565b6000602082019050620008dd6000830184620008b5565b92915050565b61154a80620008f36000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80633950935111610097578063a457c2d711610066578063a457c2d71461028c578063a9059cbb146102bc578063dd62ed3e146102ec578063f76f8d781461031c576100f5565b806339509351146101f057806370a082311461022057806395d89b4114610250578063a3f4df7e1461026e576100f5565b806323b872dd116100d357806323b872dd146101665780632e0f2625146101965780632ff2e9dc146101b4578063313ce567146101d2576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b61010261033a565b60405161010f9190610c67565b60405180910390f35b610132600480360381019061012d9190610d22565b6103cc565b60405161013f9190610d7d565b60405180910390f35b6101506103ef565b60405161015d9190610da7565b60405180910390f35b610180600480360381019061017b9190610dc2565b6103f9565b60405161018d9190610d7d565b60405180910390f35b61019e610428565b6040516101ab9190610e31565b60405180910390f35b6101bc61042d565b6040516101c99190610da7565b60405180910390f35b6101da61044d565b6040516101e79190610e31565b60405180910390f35b61020a60048036038101906102059190610d22565b610456565b6040516102179190610d7d565b60405180910390f35b61023a60048036038101906102359190610e4c565b61048d565b6040516102479190610da7565b60405180910390f35b6102586104d5565b6040516102659190610c67565b60405180910390f35b610276610567565b6040516102839190610c67565b60405180910390f35b6102a660048036038101906102a19190610d22565b6105a0565b6040516102b39190610d7d565b60405180910390f35b6102d660048036038101906102d19190610d22565b610617565b6040516102e39190610d7d565b60405180910390f35b61030660048036038101906103019190610e79565b61063a565b6040516103139190610da7565b60405180910390f35b6103246106c1565b6040516103319190610c67565b60405180910390f35b60606003805461034990610ee8565b80601f016020809104026020016040519081016040528092919081815260200182805461037590610ee8565b80156103c25780601f10610397576101008083540402835291602001916103c2565b820191906000526020600020905b8154815290600101906020018083116103a557829003601f168201915b5050505050905090565b6000806103d76106fa565b90506103e4818585610702565b600191505092915050565b6000600254905090565b6000806104046106fa565b90506104118582856108cb565b61041c858585610957565b60019150509392505050565b600681565b6006600a61043b919061107b565b633b9aca0061044a91906110c6565b81565b60006006905090565b6000806104616106fa565b9050610482818585610473858961063a565b61047d9190611108565b610702565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546104e490610ee8565b80601f016020809104026020016040519081016040528092919081815260200182805461051090610ee8565b801561055d5780601f106105325761010080835404028352916020019161055d565b820191906000526020600020905b81548152906001019060200180831161054057829003601f168201915b5050505050905090565b6040518060400160405280600b81526020017f55534443202d205465737400000000000000000000000000000000000000000081525081565b6000806105ab6106fa565b905060006105b9828661063a565b9050838110156105fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f5906111ae565b60405180910390fd5b61060b8286868403610702565b60019250505092915050565b6000806106226106fa565b905061062f818585610957565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6040518060400160405280600481526020017f555344430000000000000000000000000000000000000000000000000000000081525081565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076890611240565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d7906112d2565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108be9190610da7565b60405180910390a3505050565b60006108d7848461063a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109515781811015610943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093a9061133e565b60405180910390fd5b6109508484848403610702565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bd906113d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2c90611462565b60405180910390fd5b610a40838383610bcd565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abd906114f4565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610bb49190610da7565b60405180910390a3610bc7848484610bd2565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610c11578082015181840152602081019050610bf6565b60008484015250505050565b6000601f19601f8301169050919050565b6000610c3982610bd7565b610c438185610be2565b9350610c53818560208601610bf3565b610c5c81610c1d565b840191505092915050565b60006020820190508181036000830152610c818184610c2e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cb982610c8e565b9050919050565b610cc981610cae565b8114610cd457600080fd5b50565b600081359050610ce681610cc0565b92915050565b6000819050919050565b610cff81610cec565b8114610d0a57600080fd5b50565b600081359050610d1c81610cf6565b92915050565b60008060408385031215610d3957610d38610c89565b5b6000610d4785828601610cd7565b9250506020610d5885828601610d0d565b9150509250929050565b60008115159050919050565b610d7781610d62565b82525050565b6000602082019050610d926000830184610d6e565b92915050565b610da181610cec565b82525050565b6000602082019050610dbc6000830184610d98565b92915050565b600080600060608486031215610ddb57610dda610c89565b5b6000610de986828701610cd7565b9350506020610dfa86828701610cd7565b9250506040610e0b86828701610d0d565b9150509250925092565b600060ff82169050919050565b610e2b81610e15565b82525050565b6000602082019050610e466000830184610e22565b92915050565b600060208284031215610e6257610e61610c89565b5b6000610e7084828501610cd7565b91505092915050565b60008060408385031215610e9057610e8f610c89565b5b6000610e9e85828601610cd7565b9250506020610eaf85828601610cd7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610f0057607f821691505b602082108103610f1357610f12610eb9565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115610f9f57808604811115610f7b57610f7a610f19565b5b6001851615610f8a5780820291505b8081029050610f9885610f48565b9450610f5f565b94509492505050565b600082610fb85760019050611074565b81610fc65760009050611074565b8160018114610fdc5760028114610fe657611015565b6001915050611074565b60ff841115610ff857610ff7610f19565b5b8360020a91508482111561100f5761100e610f19565b5b50611074565b5060208310610133831016604e8410600b841016171561104a5782820a90508381111561104557611044610f19565b5b611074565b6110578484846001610f55565b9250905081840481111561106e5761106d610f19565b5b81810290505b9392505050565b600061108682610cec565b915061109183610e15565b92506110be7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610fa8565b905092915050565b60006110d182610cec565b91506110dc83610cec565b92508282026110ea81610cec565b9150828204841483151761110157611100610f19565b5b5092915050565b600061111382610cec565b915061111e83610cec565b925082820190508082111561113657611135610f19565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611198602583610be2565b91506111a38261113c565b604082019050919050565b600060208201905081810360008301526111c78161118b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061122a602483610be2565b9150611235826111ce565b604082019050919050565b600060208201905081810360008301526112598161121d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006112bc602283610be2565b91506112c782611260565b604082019050919050565b600060208201905081810360008301526112eb816112af565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611328601d83610be2565b9150611333826112f2565b602082019050919050565b600060208201905081810360008301526113578161131b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006113ba602583610be2565b91506113c58261135e565b604082019050919050565b600060208201905081810360008301526113e9816113ad565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061144c602383610be2565b9150611457826113f0565b604082019050919050565b6000602082019050818103600083015261147b8161143f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006114de602683610be2565b91506114e982611482565b604082019050919050565b6000602082019050818103600083015261150d816114d1565b905091905056fea26469706673582212207e5d249e6d2ee2ea2aa725b7a07902b2d8ce2ff2cc07e23c5607b13fe8dcc70964736f6c63430008140033",
335
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80633950935111610097578063a457c2d711610066578063a457c2d71461028c578063a9059cbb146102bc578063dd62ed3e146102ec578063f76f8d781461031c576100f5565b806339509351146101f057806370a082311461022057806395d89b4114610250578063a3f4df7e1461026e576100f5565b806323b872dd116100d357806323b872dd146101665780632e0f2625146101965780632ff2e9dc146101b4578063313ce567146101d2576100f5565b806306fdde03146100fa578063095ea7b31461011857806318160ddd14610148575b600080fd5b61010261033a565b60405161010f9190610c67565b60405180910390f35b610132600480360381019061012d9190610d22565b6103cc565b60405161013f9190610d7d565b60405180910390f35b6101506103ef565b60405161015d9190610da7565b60405180910390f35b610180600480360381019061017b9190610dc2565b6103f9565b60405161018d9190610d7d565b60405180910390f35b61019e610428565b6040516101ab9190610e31565b60405180910390f35b6101bc61042d565b6040516101c99190610da7565b60405180910390f35b6101da61044d565b6040516101e79190610e31565b60405180910390f35b61020a60048036038101906102059190610d22565b610456565b6040516102179190610d7d565b60405180910390f35b61023a60048036038101906102359190610e4c565b61048d565b6040516102479190610da7565b60405180910390f35b6102586104d5565b6040516102659190610c67565b60405180910390f35b610276610567565b6040516102839190610c67565b60405180910390f35b6102a660048036038101906102a19190610d22565b6105a0565b6040516102b39190610d7d565b60405180910390f35b6102d660048036038101906102d19190610d22565b610617565b6040516102e39190610d7d565b60405180910390f35b61030660048036038101906103019190610e79565b61063a565b6040516103139190610da7565b60405180910390f35b6103246106c1565b6040516103319190610c67565b60405180910390f35b60606003805461034990610ee8565b80601f016020809104026020016040519081016040528092919081815260200182805461037590610ee8565b80156103c25780601f10610397576101008083540402835291602001916103c2565b820191906000526020600020905b8154815290600101906020018083116103a557829003601f168201915b5050505050905090565b6000806103d76106fa565b90506103e4818585610702565b600191505092915050565b6000600254905090565b6000806104046106fa565b90506104118582856108cb565b61041c858585610957565b60019150509392505050565b600681565b6006600a61043b919061107b565b633b9aca0061044a91906110c6565b81565b60006006905090565b6000806104616106fa565b9050610482818585610473858961063a565b61047d9190611108565b610702565b600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600480546104e490610ee8565b80601f016020809104026020016040519081016040528092919081815260200182805461051090610ee8565b801561055d5780601f106105325761010080835404028352916020019161055d565b820191906000526020600020905b81548152906001019060200180831161054057829003601f168201915b5050505050905090565b6040518060400160405280600b81526020017f55534443202d205465737400000000000000000000000000000000000000000081525081565b6000806105ab6106fa565b905060006105b9828661063a565b9050838110156105fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f5906111ae565b60405180910390fd5b61060b8286868403610702565b60019250505092915050565b6000806106226106fa565b905061062f818585610957565b600191505092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6040518060400160405280600481526020017f555344430000000000000000000000000000000000000000000000000000000081525081565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076890611240565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036107e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d7906112d2565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516108be9190610da7565b60405180910390a3505050565b60006108d7848461063a565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146109515781811015610943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093a9061133e565b60405180910390fd5b6109508484848403610702565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036109c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109bd906113d0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2c90611462565b60405180910390fd5b610a40838383610bcd565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610ac6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abd906114f4565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610bb49190610da7565b60405180910390a3610bc7848484610bd2565b50505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610c11578082015181840152602081019050610bf6565b60008484015250505050565b6000601f19601f8301169050919050565b6000610c3982610bd7565b610c438185610be2565b9350610c53818560208601610bf3565b610c5c81610c1d565b840191505092915050565b60006020820190508181036000830152610c818184610c2e565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610cb982610c8e565b9050919050565b610cc981610cae565b8114610cd457600080fd5b50565b600081359050610ce681610cc0565b92915050565b6000819050919050565b610cff81610cec565b8114610d0a57600080fd5b50565b600081359050610d1c81610cf6565b92915050565b60008060408385031215610d3957610d38610c89565b5b6000610d4785828601610cd7565b9250506020610d5885828601610d0d565b9150509250929050565b60008115159050919050565b610d7781610d62565b82525050565b6000602082019050610d926000830184610d6e565b92915050565b610da181610cec565b82525050565b6000602082019050610dbc6000830184610d98565b92915050565b600080600060608486031215610ddb57610dda610c89565b5b6000610de986828701610cd7565b9350506020610dfa86828701610cd7565b9250506040610e0b86828701610d0d565b9150509250925092565b600060ff82169050919050565b610e2b81610e15565b82525050565b6000602082019050610e466000830184610e22565b92915050565b600060208284031215610e6257610e61610c89565b5b6000610e7084828501610cd7565b91505092915050565b60008060408385031215610e9057610e8f610c89565b5b6000610e9e85828601610cd7565b9250506020610eaf85828601610cd7565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680610f0057607f821691505b602082108103610f1357610f12610eb9565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115610f9f57808604811115610f7b57610f7a610f19565b5b6001851615610f8a5780820291505b8081029050610f9885610f48565b9450610f5f565b94509492505050565b600082610fb85760019050611074565b81610fc65760009050611074565b8160018114610fdc5760028114610fe657611015565b6001915050611074565b60ff841115610ff857610ff7610f19565b5b8360020a91508482111561100f5761100e610f19565b5b50611074565b5060208310610133831016604e8410600b841016171561104a5782820a90508381111561104557611044610f19565b5b611074565b6110578484846001610f55565b9250905081840481111561106e5761106d610f19565b5b81810290505b9392505050565b600061108682610cec565b915061109183610e15565b92506110be7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484610fa8565b905092915050565b60006110d182610cec565b91506110dc83610cec565b92508282026110ea81610cec565b9150828204841483151761110157611100610f19565b5b5092915050565b600061111382610cec565b915061111e83610cec565b925082820190508082111561113657611135610f19565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000611198602583610be2565b91506111a38261113c565b604082019050919050565b600060208201905081810360008301526111c78161118b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061122a602483610be2565b9150611235826111ce565b604082019050919050565b600060208201905081810360008301526112598161121d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006112bc602283610be2565b91506112c782611260565b604082019050919050565b600060208201905081810360008301526112eb816112af565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000611328601d83610be2565b9150611333826112f2565b602082019050919050565b600060208201905081810360008301526113578161131b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006113ba602583610be2565b91506113c58261135e565b604082019050919050565b600060208201905081810360008301526113e9816113ad565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061144c602383610be2565b9150611457826113f0565b604082019050919050565b6000602082019050818103600083015261147b8161143f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006114de602683610be2565b91506114e982611482565b604082019050919050565b6000602082019050818103600083015261150d816114d1565b905091905056fea26469706673582212207e5d249e6d2ee2ea2aa725b7a07902b2d8ce2ff2cc07e23c5607b13fe8dcc70964736f6c63430008140033",
372
+ "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280600b81526020016a1554d110c80b4815195cdd60aa1b815250604051806040016040528060048152602001635553444360e01b8152508160039081620000649190620002d2565b506004620000738282620002d2565b505050620000ae6200008a620000b460201b60201c565b620000986006600a620004b3565b620000a890633b9aca00620004cb565b620000b8565b620004fb565b3390565b6001600160a01b038216620000e85760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b620000f660008383620000fa565b5050565b6001600160a01b038316620001295780600260008282546200011d9190620004e5565b909155506200019d9050565b6001600160a01b038316600090815260208190526040902054818110156200017e5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000df565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216620001bb57600280548290039055620001da565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200022091815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200025857607f821691505b6020821081036200027957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002cd57600081815260208120601f850160051c81016020861015620002a85750805b601f850160051c820191505b81811015620002c957828155600101620002b4565b5050505b505050565b81516001600160401b03811115620002ee57620002ee6200022d565b6200030681620002ff845462000243565b846200027f565b602080601f8311600181146200033e5760008415620003255750858301515b600019600386901b1c1916600185901b178555620002c9565b600085815260208120601f198616915b828110156200036f578886015182559484019460019091019084016200034e565b50858210156200038e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620003f5578160001904821115620003d957620003d96200039e565b80851615620003e757918102915b93841c9390800290620003b9565b509250929050565b6000826200040e57506001620004ad565b816200041d57506000620004ad565b8160018114620004365760028114620004415762000461565b6001915050620004ad565b60ff8411156200045557620004556200039e565b50506001821b620004ad565b5060208310610133831016604e8410600b841016171562000486575081810a620004ad565b620004928383620003b4565b8060001904821115620004a957620004a96200039e565b0290505b92915050565b6000620004c460ff841683620003fd565b9392505050565b8082028115828204841417620004ad57620004ad6200039e565b80820180821115620004ad57620004ad6200039e565b6108f2806200050b6000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063313ce5671161008c578063a3f4df7e11610066578063a3f4df7e14610194578063a9059cbb146101be578063dd62ed3e146101d1578063f76f8d781461020a57600080fd5b8063313ce5671461015c57806370a082311461016357806395d89b411461018c57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd146101275780632e0f26251461013a5780632ff2e9dc14610154575b600080fd5b6100dc61022d565b6040516100e9919061062a565b60405180910390f35b610105610100366004610694565b6102bf565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046106be565b6102d9565b610142600681565b60405160ff90911681526020016100e9565b6101196102fd565b6006610142565b6101196101713660046106fa565b6001600160a01b031660009081526020819052604090205490565b6100dc61031a565b6100dc6040518060400160405280600b81526020016a1554d110c80b4815195cdd60aa1b81525081565b6101056101cc366004610694565b610329565b6101196101df36600461071c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6100dc604051806040016040528060048152602001635553444360e01b81525081565b60606003805461023c9061074f565b80601f01602080910402602001604051908101604052809291908181526020018280546102689061074f565b80156102b55780601f1061028a576101008083540402835291602001916102b5565b820191906000526020600020905b81548152906001019060200180831161029857829003601f168201915b5050505050905090565b6000336102cd818585610337565b60019150505b92915050565b6000336102e7858285610349565b6102f28585856103cc565b506001949350505050565b6103096006600a610883565b61031790633b9aca00610892565b81565b60606004805461023c9061074f565b6000336102cd8185856103cc565b610344838383600161042b565b505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146103c657818110156103b757604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b6103c68484848403600061042b565b50505050565b6001600160a01b0383166103f657604051634b637e8f60e11b8152600060048201526024016103ae565b6001600160a01b0382166104205760405163ec442f0560e01b8152600060048201526024016103ae565b610344838383610500565b6001600160a01b0384166104555760405163e602df0560e01b8152600060048201526024016103ae565b6001600160a01b03831661047f57604051634a1406b160e11b8152600060048201526024016103ae565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156103c657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104f291815260200190565b60405180910390a350505050565b6001600160a01b03831661052b57806002600082825461052091906108a9565b9091555061059d9050565b6001600160a01b0383166000908152602081905260409020548181101561057e5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016103ae565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166105b9576002805482900390556105d8565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161061d91815260200190565b60405180910390a3505050565b600060208083528351808285015260005b818110156106575785810183015185820160400152820161063b565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461068f57600080fd5b919050565b600080604083850312156106a757600080fd5b6106b083610678565b946020939093013593505050565b6000806000606084860312156106d357600080fd5b6106dc84610678565b92506106ea60208501610678565b9150604084013590509250925092565b60006020828403121561070c57600080fd5b61071582610678565b9392505050565b6000806040838503121561072f57600080fd5b61073883610678565b915061074660208401610678565b90509250929050565b600181811c9082168061076357607f821691505b60208210810361078357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156107da5781600019048211156107c0576107c0610789565b808516156107cd57918102915b93841c93908002906107a4565b509250929050565b6000826107f1575060016102d3565b816107fe575060006102d3565b8160018114610814576002811461081e5761083a565b60019150506102d3565b60ff84111561082f5761082f610789565b50506001821b6102d3565b5060208310610133831016604e8410600b841016171561085d575081810a6102d3565b610867838361079f565b806000190482111561087b5761087b610789565b029392505050565b600061071560ff8416836107e2565b80820281158282048414176102d3576102d3610789565b808201808211156102d3576102d361078956fea2646970667358221220ce285ac8359b39ea9974e26ea7d0f956b6b879df7ebf8ae43077c020f2fd566864736f6c63430008140033",
373
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063313ce5671161008c578063a3f4df7e11610066578063a3f4df7e14610194578063a9059cbb146101be578063dd62ed3e146101d1578063f76f8d781461020a57600080fd5b8063313ce5671461015c57806370a082311461016357806395d89b411461018c57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd146101275780632e0f26251461013a5780632ff2e9dc14610154575b600080fd5b6100dc61022d565b6040516100e9919061062a565b60405180910390f35b610105610100366004610694565b6102bf565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046106be565b6102d9565b610142600681565b60405160ff90911681526020016100e9565b6101196102fd565b6006610142565b6101196101713660046106fa565b6001600160a01b031660009081526020819052604090205490565b6100dc61031a565b6100dc6040518060400160405280600b81526020016a1554d110c80b4815195cdd60aa1b81525081565b6101056101cc366004610694565b610329565b6101196101df36600461071c565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6100dc604051806040016040528060048152602001635553444360e01b81525081565b60606003805461023c9061074f565b80601f01602080910402602001604051908101604052809291908181526020018280546102689061074f565b80156102b55780601f1061028a576101008083540402835291602001916102b5565b820191906000526020600020905b81548152906001019060200180831161029857829003601f168201915b5050505050905090565b6000336102cd818585610337565b60019150505b92915050565b6000336102e7858285610349565b6102f28585856103cc565b506001949350505050565b6103096006600a610883565b61031790633b9aca00610892565b81565b60606004805461023c9061074f565b6000336102cd8185856103cc565b610344838383600161042b565b505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146103c657818110156103b757604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b6103c68484848403600061042b565b50505050565b6001600160a01b0383166103f657604051634b637e8f60e11b8152600060048201526024016103ae565b6001600160a01b0382166104205760405163ec442f0560e01b8152600060048201526024016103ae565b610344838383610500565b6001600160a01b0384166104555760405163e602df0560e01b8152600060048201526024016103ae565b6001600160a01b03831661047f57604051634a1406b160e11b8152600060048201526024016103ae565b6001600160a01b03808516600090815260016020908152604080832093871683529290522082905580156103c657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104f291815260200190565b60405180910390a350505050565b6001600160a01b03831661052b57806002600082825461052091906108a9565b9091555061059d9050565b6001600160a01b0383166000908152602081905260409020548181101561057e5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016103ae565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166105b9576002805482900390556105d8565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161061d91815260200190565b60405180910390a3505050565b600060208083528351808285015260005b818110156106575785810183015185820160400152820161063b565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461068f57600080fd5b919050565b600080604083850312156106a757600080fd5b6106b083610678565b946020939093013593505050565b6000806000606084860312156106d357600080fd5b6106dc84610678565b92506106ea60208501610678565b9150604084013590509250925092565b60006020828403121561070c57600080fd5b61071582610678565b9392505050565b6000806040838503121561072f57600080fd5b61073883610678565b915061074660208401610678565b90509250929050565b600181811c9082168061076357607f821691505b60208210810361078357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156107da5781600019048211156107c0576107c0610789565b808516156107cd57918102915b93841c93908002906107a4565b509250929050565b6000826107f1575060016102d3565b816107fe575060006102d3565b8160018114610814576002811461081e5761083a565b60019150506102d3565b60ff84111561082f5761082f610789565b50506001821b6102d3565b5060208310610133831016604e8410600b841016171561085d575081810a6102d3565b610867838361079f565b806000190482111561087b5761087b610789565b029392505050565b600061071560ff8416836107e2565b80820281158282048414176102d3576102d3610789565b808201808211156102d3576102d361078956fea2646970667358221220ce285ac8359b39ea9974e26ea7d0f956b6b879df7ebf8ae43077c020f2fd566864736f6c63430008140033",
336
374
  "linkReferences": {},
337
375
  "deployedLinkReferences": {}
338
376
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/746f2ad7b0d888e05db828a61f6d5e10.json"
3
+ "buildInfo": "../../../build-info/fe11587699ed98bdf117fb70903a54b7.json"
4
4
  }
@@ -161,30 +161,30 @@
161
161
  "type": "function"
162
162
  }
163
163
  ],
164
- "bytecode": "0x608060405234801561001057600080fd5b5061090c806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80636a3dc0ee1161005b5780636a3dc0ee1461010257806389818c3c1461013257806389d5976814610162578063e038c625146101925761007d565b80630f40f5951461008257806312cf04de146100a057806364d4e5d8146100d0575b600080fd5b61008a6101c2565b60405161009791906104f7565b60405180910390f35b6100ba60048036038101906100b5919061054d565b610236565b6040516100c791906104f7565b60405180910390f35b6100ea60048036038101906100e591906105cc565b6102bd565b6040516100f993929190610637565b60405180910390f35b61011c6004803603810190610117919061066e565b61034e565b60405161012991906106c9565b60405180910390f35b61014c600480360381019061014791906106e4565b610362565b6040516101599190610711565b60405180910390f35b61017c6004803603810190610177919061066e565b6103e3565b60405161018991906106c9565b60405180910390f35b6101ac60048036038101906101a791906105cc565b6103f7565b6040516101b99190610711565b60405180910390f35b600073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__6304b8f6c56040518163ffffffff1660e01b8152600401602060405180830381865af415801561020d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102319190610741565b905090565b600073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__632efe01138585856040518463ffffffff1660e01b81526004016102739392919061077d565b602060405180830381865af4158015610290573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b49190610741565b90509392505050565b60008060008362ffffff1673__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__6349a7111a90916040518263ffffffff1660e01b815260040161030091906107c3565b606060405180830381865af415801561031d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610341919061080a565b9250925092509193909250565b600061035a838361047f565b905092915050565b600073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__638e4ad86c836040518263ffffffff1660e01b815260040161039b919061088e565b602060405180830381865af41580156103b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103dc91906108a9565b9050919050565b60006103ef8383610496565b905092915050565b60008162ffffff1673__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63c9e66e2990916040518263ffffffff1660e01b815260040161043791906107c3565b602060405180830381865af4158015610454573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047891906108a9565b9050919050565b60008162ffffff168362ffffff1611905092915050565b60008162ffffff168362ffffff1614905092915050565b600062ffffff82169050919050565b6000819050919050565b60006104e16104dc6104d7846104ad565b6104bc565b6104ad565b9050919050565b6104f1816104c6565b82525050565b600060208201905061050c60008301846104e8565b92915050565b600080fd5b6000819050919050565b61052a81610517565b811461053557600080fd5b50565b60008135905061054781610521565b92915050565b60008060006060848603121561056657610565610512565b5b600061057486828701610538565b935050602061058586828701610538565b925050604061059686828701610538565b9150509250925092565b6105a9816104ad565b81146105b457600080fd5b50565b6000813590506105c6816105a0565b92915050565b6000602082840312156105e2576105e1610512565b5b60006105f0848285016105b7565b91505092915050565b600060ff82169050919050565b600061062161061c610617846105f9565b6104bc565b6105f9565b9050919050565b61063181610606565b82525050565b600060608201905061064c6000830186610628565b6106596020830185610628565b6106666040830184610628565b949350505050565b6000806040838503121561068557610684610512565b5b6000610693858286016105b7565b92505060206106a4858286016105b7565b9150509250929050565b60008115159050919050565b6106c3816106ae565b82525050565b60006020820190506106de60008301846106ba565b92915050565b6000602082840312156106fa576106f9610512565b5b600061070884828501610538565b91505092915050565b60006020820190506107266000830184610628565b92915050565b60008151905061073b816105a0565b92915050565b60006020828403121561075757610756610512565b5b60006107658482850161072c565b91505092915050565b61077781610517565b82525050565b6000606082019050610792600083018661076e565b61079f602083018561076e565b6107ac604083018461076e565b949350505050565b6107bd816104c6565b82525050565b60006020820190506107d860008301846107b4565b92915050565b6107e7816105f9565b81146107f257600080fd5b50565b600081519050610804816107de565b92915050565b60008060006060848603121561082357610822610512565b5b6000610831868287016107f5565b9350506020610842868287016107f5565b9250506040610853868287016107f5565b9150509250925092565b600061087861087361086e846105f9565b6104bc565b610517565b9050919050565b6108888161085d565b82525050565b60006020820190506108a3600083018461087f565b92915050565b6000602082840312156108bf576108be610512565b5b60006108cd848285016107f5565b9150509291505056fea264697066735822122082ea108eb32170d248fd592c0ad0b3af51b8660792788adc75acdeeb7c43141664736f6c63430008140033",
165
- "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80636a3dc0ee1161005b5780636a3dc0ee1461010257806389818c3c1461013257806389d5976814610162578063e038c625146101925761007d565b80630f40f5951461008257806312cf04de146100a057806364d4e5d8146100d0575b600080fd5b61008a6101c2565b60405161009791906104f7565b60405180910390f35b6100ba60048036038101906100b5919061054d565b610236565b6040516100c791906104f7565b60405180910390f35b6100ea60048036038101906100e591906105cc565b6102bd565b6040516100f993929190610637565b60405180910390f35b61011c6004803603810190610117919061066e565b61034e565b60405161012991906106c9565b60405180910390f35b61014c600480360381019061014791906106e4565b610362565b6040516101599190610711565b60405180910390f35b61017c6004803603810190610177919061066e565b6103e3565b60405161018991906106c9565b60405180910390f35b6101ac60048036038101906101a791906105cc565b6103f7565b6040516101b99190610711565b60405180910390f35b600073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__6304b8f6c56040518163ffffffff1660e01b8152600401602060405180830381865af415801561020d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102319190610741565b905090565b600073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__632efe01138585856040518463ffffffff1660e01b81526004016102739392919061077d565b602060405180830381865af4158015610290573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b49190610741565b90509392505050565b60008060008362ffffff1673__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__6349a7111a90916040518263ffffffff1660e01b815260040161030091906107c3565b606060405180830381865af415801561031d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610341919061080a565b9250925092509193909250565b600061035a838361047f565b905092915050565b600073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__638e4ad86c836040518263ffffffff1660e01b815260040161039b919061088e565b602060405180830381865af41580156103b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103dc91906108a9565b9050919050565b60006103ef8383610496565b905092915050565b60008162ffffff1673__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63c9e66e2990916040518263ffffffff1660e01b815260040161043791906107c3565b602060405180830381865af4158015610454573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061047891906108a9565b9050919050565b60008162ffffff168362ffffff1611905092915050565b60008162ffffff168362ffffff1614905092915050565b600062ffffff82169050919050565b6000819050919050565b60006104e16104dc6104d7846104ad565b6104bc565b6104ad565b9050919050565b6104f1816104c6565b82525050565b600060208201905061050c60008301846104e8565b92915050565b600080fd5b6000819050919050565b61052a81610517565b811461053557600080fd5b50565b60008135905061054781610521565b92915050565b60008060006060848603121561056657610565610512565b5b600061057486828701610538565b935050602061058586828701610538565b925050604061059686828701610538565b9150509250925092565b6105a9816104ad565b81146105b457600080fd5b50565b6000813590506105c6816105a0565b92915050565b6000602082840312156105e2576105e1610512565b5b60006105f0848285016105b7565b91505092915050565b600060ff82169050919050565b600061062161061c610617846105f9565b6104bc565b6105f9565b9050919050565b61063181610606565b82525050565b600060608201905061064c6000830186610628565b6106596020830185610628565b6106666040830184610628565b949350505050565b6000806040838503121561068557610684610512565b5b6000610693858286016105b7565b92505060206106a4858286016105b7565b9150509250929050565b60008115159050919050565b6106c3816106ae565b82525050565b60006020820190506106de60008301846106ba565b92915050565b6000602082840312156106fa576106f9610512565b5b600061070884828501610538565b91505092915050565b60006020820190506107266000830184610628565b92915050565b60008151905061073b816105a0565b92915050565b60006020828403121561075757610756610512565b5b60006107658482850161072c565b91505092915050565b61077781610517565b82525050565b6000606082019050610792600083018661076e565b61079f602083018561076e565b6107ac604083018461076e565b949350505050565b6107bd816104c6565b82525050565b60006020820190506107d860008301846107b4565b92915050565b6107e7816105f9565b81146107f257600080fd5b50565b600081519050610804816107de565b92915050565b60008060006060848603121561082357610822610512565b5b6000610831868287016107f5565b9350506020610842868287016107f5565b9250506040610853868287016107f5565b9150509250925092565b600061087861087361086e846105f9565b6104bc565b610517565b9050919050565b6108888161085d565b82525050565b60006020820190506108a3600083018461087f565b92915050565b6000602082840312156108bf576108be610512565b5b60006108cd848285016107f5565b9150509291505056fea264697066735822122082ea108eb32170d248fd592c0ad0b3af51b8660792788adc75acdeeb7c43141664736f6c63430008140033",
164
+ "bytecode": "0x608060405234801561001057600080fd5b50610544806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80636a3dc0ee1161005b5780636a3dc0ee146100ed57806389818c3c1461011057806389d5976814610135578063e038c6251461014857600080fd5b80630f40f5951461008257806312cf04de146100a357806364d4e5d8146100b6575b600080fd5b61008a61015b565b60405162ffffff90911681526020015b60405180910390f35b61008a6100b13660046103ce565b6101cf565b6100c96100c436600461040e565b61025c565b6040805160ff9485168152928416602084015292169181019190915260600161009a565b6101006100fb36600461042b565b6102e8565b604051901515815260200161009a565b61012361011e366004610464565b6102fd565b60405160ff909116815260200161009a565b61010061014336600461042b565b61037d565b61012361015636600461040e565b61038f565b600073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__6304b8f6c56040518163ffffffff1660e01b8152600401602060405180830381865af41580156101a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ca919061047d565b905090565b604051632efe011360e01b815260048101849052602481018390526044810182905260009073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af4158015610230573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610254919061047d565b949350505050565b6040516324d3888d60e11b815262ffffff821660048201526000908190819073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__906349a7111a90602401606060405180830381865af41580156102b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102db91906104b0565b9250925092509193909250565b600062ffffff808316908416115b9392505050565b604051632392b61b60e21b815260ff8216600482015260009073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90638e4ad86c906024015b602060405180830381865af4158015610353573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037791906104f3565b92915050565b600062ffffff808416908316146102f6565b60405163c9e66e2960e01b815262ffffff8216600482015260009073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401610336565b6000806000606084860312156103e357600080fd5b505081359360208301359350604090920135919050565b62ffffff8116811461040b57600080fd5b50565b60006020828403121561042057600080fd5b81356102f6816103fa565b6000806040838503121561043e57600080fd5b8235610449816103fa565b91506020830135610459816103fa565b809150509250929050565b60006020828403121561047657600080fd5b5035919050565b60006020828403121561048f57600080fd5b81516102f6816103fa565b805160ff811681146104ab57600080fd5b919050565b6000806000606084860312156104c557600080fd5b6104ce8461049a565b92506104dc6020850161049a565b91506104ea6040850161049a565b90509250925092565b60006020828403121561050557600080fd5b6102f68261049a56fea26469706673582212206e529886c2f8439684af8bc60c7d7762a41afcce6ceef512fc94376b5fe8009e64736f6c63430008140033",
165
+ "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80636a3dc0ee1161005b5780636a3dc0ee146100ed57806389818c3c1461011057806389d5976814610135578063e038c6251461014857600080fd5b80630f40f5951461008257806312cf04de146100a357806364d4e5d8146100b6575b600080fd5b61008a61015b565b60405162ffffff90911681526020015b60405180910390f35b61008a6100b13660046103ce565b6101cf565b6100c96100c436600461040e565b61025c565b6040805160ff9485168152928416602084015292169181019190915260600161009a565b6101006100fb36600461042b565b6102e8565b604051901515815260200161009a565b61012361011e366004610464565b6102fd565b60405160ff909116815260200161009a565b61010061014336600461042b565b61037d565b61012361015636600461040e565b61038f565b600073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__6304b8f6c56040518163ffffffff1660e01b8152600401602060405180830381865af41580156101a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ca919061047d565b905090565b604051632efe011360e01b815260048101849052602481018390526044810182905260009073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af4158015610230573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610254919061047d565b949350505050565b6040516324d3888d60e11b815262ffffff821660048201526000908190819073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__906349a7111a90602401606060405180830381865af41580156102b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102db91906104b0565b9250925092509193909250565b600062ffffff808316908416115b9392505050565b604051632392b61b60e21b815260ff8216600482015260009073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90638e4ad86c906024015b602060405180830381865af4158015610353573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061037791906104f3565b92915050565b600062ffffff808416908316146102f6565b60405163c9e66e2960e01b815262ffffff8216600482015260009073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__9063c9e66e2990602401610336565b6000806000606084860312156103e357600080fd5b505081359360208301359350604090920135919050565b62ffffff8116811461040b57600080fd5b50565b60006020828403121561042057600080fd5b81356102f6816103fa565b6000806040838503121561043e57600080fd5b8235610449816103fa565b91506020830135610459816103fa565b809150509250929050565b60006020828403121561047657600080fd5b5035919050565b60006020828403121561048f57600080fd5b81516102f6816103fa565b805160ff811681146104ab57600080fd5b919050565b6000806000606084860312156104c557600080fd5b6104ce8461049a565b92506104dc6020850161049a565b91506104ea6040850161049a565b90509250925092565b60006020828403121561050557600080fd5b6102f68261049a56fea26469706673582212206e529886c2f8439684af8bc60c7d7762a41afcce6ceef512fc94376b5fe8009e64736f6c63430008140033",
166
166
  "linkReferences": {
167
167
  "contracts/types/Version.sol": {
168
168
  "VersionLib": [
169
169
  {
170
170
  "length": 20,
171
- "start": 486
171
+ "start": 383
172
172
  },
173
173
  {
174
174
  "length": 20,
175
- "start": 602
175
+ "start": 534
176
176
  },
177
177
  {
178
178
  "length": 20,
179
- "start": 746
179
+ "start": 669
180
180
  },
181
181
  {
182
182
  "length": 20,
183
- "start": 902
183
+ "start": 824
184
184
  },
185
185
  {
186
186
  "length": 20,
187
- "start": 1057
187
+ "start": 972
188
188
  }
189
189
  ]
190
190
  }
@@ -194,23 +194,23 @@
194
194
  "VersionLib": [
195
195
  {
196
196
  "length": 20,
197
- "start": 454
197
+ "start": 351
198
198
  },
199
199
  {
200
200
  "length": 20,
201
- "start": 570
201
+ "start": 502
202
202
  },
203
203
  {
204
204
  "length": 20,
205
- "start": 714
205
+ "start": 637
206
206
  },
207
207
  {
208
208
  "length": 20,
209
- "start": 870
209
+ "start": 792
210
210
  },
211
211
  {
212
212
  "length": 20,
213
- "start": 1025
213
+ "start": 940
214
214
  }
215
215
  ]
216
216
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../build-info/746f2ad7b0d888e05db828a61f6d5e10.json"
3
+ "buildInfo": "../../../build-info/fe11587699ed98bdf117fb70903a54b7.json"
4
4
  }
@@ -3,6 +3,29 @@
3
3
  "contractName": "TestVersionable",
4
4
  "sourceName": "contracts/test/TestVersionable.sol",
5
5
  "abi": [
6
+ {
7
+ "inputs": [],
8
+ "name": "InvalidInitialization",
9
+ "type": "error"
10
+ },
11
+ {
12
+ "inputs": [],
13
+ "name": "NotInitializing",
14
+ "type": "error"
15
+ },
16
+ {
17
+ "anonymous": false,
18
+ "inputs": [
19
+ {
20
+ "indexed": false,
21
+ "internalType": "uint64",
22
+ "name": "version",
23
+ "type": "uint64"
24
+ }
25
+ ],
26
+ "name": "Initialized",
27
+ "type": "event"
28
+ },
6
29
  {
7
30
  "anonymous": false,
8
31
  "inputs": [
@@ -25,25 +48,20 @@
25
48
  "type": "address"
26
49
  }
27
50
  ],
28
- "name": "LogVersionableActivated",
51
+ "name": "LogVersionableInitialized",
29
52
  "type": "event"
30
53
  },
31
54
  {
32
- "inputs": [
33
- {
34
- "internalType": "address",
35
- "name": "implementation",
36
- "type": "address"
37
- },
55
+ "inputs": [],
56
+ "name": "getInitializedVersion",
57
+ "outputs": [
38
58
  {
39
- "internalType": "address",
40
- "name": "activatedBy",
41
- "type": "address"
59
+ "internalType": "uint64",
60
+ "name": "",
61
+ "type": "uint64"
42
62
  }
43
63
  ],
44
- "name": "activate",
45
- "outputs": [],
46
- "stateMutability": "nonpayable",
64
+ "stateMutability": "view",
47
65
  "type": "function"
48
66
  },
49
67
  {
@@ -137,6 +155,29 @@
137
155
  "stateMutability": "view",
138
156
  "type": "function"
139
157
  },
158
+ {
159
+ "inputs": [
160
+ {
161
+ "internalType": "address",
162
+ "name": "implementation",
163
+ "type": "address"
164
+ },
165
+ {
166
+ "internalType": "address",
167
+ "name": "activatedBy",
168
+ "type": "address"
169
+ },
170
+ {
171
+ "internalType": "bytes",
172
+ "name": "data",
173
+ "type": "bytes"
174
+ }
175
+ ],
176
+ "name": "initialize",
177
+ "outputs": [],
178
+ "stateMutability": "nonpayable",
179
+ "type": "function"
180
+ },
140
181
  {
141
182
  "inputs": [
142
183
  {
@@ -145,7 +186,7 @@
145
186
  "type": "uint24"
146
187
  }
147
188
  ],
148
- "name": "isActivated",
189
+ "name": "isInitialized",
149
190
  "outputs": [
150
191
  {
151
192
  "internalType": "bool",
@@ -155,20 +196,47 @@
155
196
  ],
156
197
  "stateMutability": "view",
157
198
  "type": "function"
199
+ },
200
+ {
201
+ "inputs": [
202
+ {
203
+ "internalType": "address",
204
+ "name": "implementation",
205
+ "type": "address"
206
+ },
207
+ {
208
+ "internalType": "address",
209
+ "name": "activatedBy",
210
+ "type": "address"
211
+ },
212
+ {
213
+ "internalType": "bytes",
214
+ "name": "data",
215
+ "type": "bytes"
216
+ }
217
+ ],
218
+ "name": "upgrade",
219
+ "outputs": [],
220
+ "stateMutability": "nonpayable",
221
+ "type": "function"
158
222
  }
159
223
  ],
160
- "bytecode": "0x60806040523480156200001157600080fd5b50620000256000336200002b60201b60201c565b620009c6565b60006200003d6200037660201b60201c565b905062000050816200040060201b60201c565b1562000093576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200008a90620005a1565b60405180910390fd5b60006001805490501115620001435760006001808080549050620000b89190620005fc565b81548110620000cc57620000cb62000637565b5b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050620000ff8282620004bf565b62000141576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200013890620006dc565b60405180910390fd5b505b60018190806001815401808255809150506001900390600052602060002090600a91828204019190066003029091909190916101000a81548162ffffff021916908362ffffff1602179055506040518060a001604052808262ffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152602001620001ed620004d660201b60201c565b64ffffffffff16815260200162000209620004ee60201b60201c565b63ffffffff168152506000808362ffffff1662ffffff16815260200190815260200160002060008201518160000160006101000a81548162ffffff021916908362ffffff16021790555060208201518160000160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160010160146101000a81548164ffffffffff021916908364ffffffffff16021790555060808201518160010160196101000a81548163ffffffff021916908363ffffffff1602179055509050507f68e7327fca0057a787cde34ababb9ef9844ba8065ee03e8781d8122fc15d4419818484604051620003699392919062000795565b60405180910390a1505050565b600073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__632efe011360036000806040518463ffffffff1660e01b8152600401620003b79392919062000858565b602060405180830381865af4158015620003d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fb9190620008cb565b905090565b6000806000808462ffffff1662ffffff16815260200190815260200160002060010160199054906101000a900463ffffffff1663ffffffff1673__$5f476116ae21c5294e0c0761c07efa7e1c$__636effeac490916040518263ffffffff1660e01b815260040162000473919062000946565b602060405180830381865af415801562000491573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b7919062000994565b119050919050565b60008162ffffff168362ffffff1611905092915050565b6000620004e9426200050660201b60201c565b905090565b600062000501436200051060201b60201c565b905090565b6000819050919050565b6000819050919050565b600082825260208201905092915050565b7f4552524f523a56524e2d3030313a56455253494f4e5f414c52454144595f414360008201527f5449564154454400000000000000000000000000000000000000000000000000602082015250565b6000620005896027836200051a565b915062000596826200052b565b604082019050919050565b60006020820190508181036000830152620005bc816200057a565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200060982620005c3565b91506200061683620005c3565b9250828203905081811115620006315762000630620005cd565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552524f523a56524e2d3030323a56455253494f4e5f4e4f545f494e4352454160008201527f53494e4700000000000000000000000000000000000000000000000000000000602082015250565b6000620006c46024836200051a565b9150620006d18262000666565b604082019050919050565b60006020820190508181036000830152620006f781620006b5565b9050919050565b600062ffffff82169050919050565b6000819050919050565b600062000738620007326200072c84620006fe565b6200070d565b620006fe565b9050919050565b6200074a8162000717565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200077d8262000750565b9050919050565b6200078f8162000770565b82525050565b6000606082019050620007ac60008301866200073f565b620007bb602083018562000784565b620007ca604083018462000784565b949350505050565b6000819050919050565b6000620007fd620007f7620007f184620007d2565b6200070d565b620005c3565b9050919050565b6200080f81620007dc565b82525050565b6000819050919050565b6000620008406200083a620008348462000815565b6200070d565b620005c3565b9050919050565b62000852816200081f565b82525050565b60006060820190506200086f600083018662000804565b6200087e602083018562000847565b6200088d604083018462000847565b949350505050565b600080fd5b620008a581620006fe565b8114620008b157600080fd5b50565b600081519050620008c5816200089a565b92915050565b600060208284031215620008e457620008e362000895565b5b6000620008f484828501620008b4565b91505092915050565b600063ffffffff82169050919050565b60006200092e620009286200092284620008fd565b6200070d565b620008fd565b9050919050565b62000940816200090d565b82525050565b60006020820190506200095d600083018462000935565b92915050565b6200096e81620005c3565b81146200097a57600080fd5b50565b6000815190506200098e8162000963565b92915050565b600060208284031215620009ad57620009ac62000895565b5b6000620009bd848285016200097d565b91505092915050565b610ef880620009d66000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80630abd8434146100675780630d8e6e2c146100975780634d459c90146100b5578063946dfcfe146100e55780639555c4db14610103578063b88da7591461011f575b600080fd5b610081600480360381019061007c9190610852565b61014f565b60405161008e919061089a565b60405180910390f35b61009f610209565b6040516100ac91906108f0565b60405180910390f35b6100cf60048036038101906100ca9190610852565b61028e565b6040516100dc9190610a46565b60405180910390f35b6100ed6103e2565b6040516100fa9190610a7a565b60405180910390f35b61011d60048036038101906101189190610ac1565b6103ef565b005b61013960048036038101906101349190610b2d565b6103fd565b60405161014691906108f0565b60405180910390f35b6000806000808462ffffff1662ffffff16815260200190815260200160002060010160199054906101000a900463ffffffff1663ffffffff1673__$5f476116ae21c5294e0c0761c07efa7e1c$__636effeac490916040518263ffffffff1660e01b81526004016101c09190610b69565b602060405180830381865af41580156101dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102019190610b99565b119050919050565b600073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__632efe011360036000806040518463ffffffff1660e01b815260040161024893929190610c3c565b602060405180830381865af4158015610265573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102899190610c88565b905090565b6102966107a5565b6000808362ffffff1662ffffff1681526020019081526020016000206040518060a00160405290816000820160009054906101000a900462ffffff1662ffffff1662ffffff1681526020016000820160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900464ffffffffff1664ffffffffff1664ffffffffff1681526020016001820160199054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b6000600180549050905090565b6103f9828261043f565b5050565b60006001828154811061041357610412610cb5565b5b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b6000610449610209565b90506104548161014f565b15610494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048b90610d67565b60405180910390fd5b6000600180549050111561053957600060018080805490506104b69190610db6565b815481106104c7576104c6610cb5565b5b90600052602060002090600a91828204019190066003029054906101000a900462ffffff1690506104f8828261075a565b610537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052e90610e5c565b60405180910390fd5b505b60018190806001815401808255809150506001900390600052602060002090600a91828204019190066003029091909190916101000a81548162ffffff021916908362ffffff1602179055506040518060a001604052808262ffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020016105db610771565b64ffffffffff1681526020016105ef610781565b63ffffffff168152506000808362ffffff1662ffffff16815260200190815260200160002060008201518160000160006101000a81548162ffffff021916908362ffffff16021790555060208201518160000160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160010160146101000a81548164ffffffffff021916908364ffffffffff16021790555060808201518160010160196101000a81548163ffffffff021916908363ffffffff1602179055509050507f68e7327fca0057a787cde34ababb9ef9844ba8065ee03e8781d8122fc15d441981848460405161074d93929190610e8b565b60405180910390a1505050565b60008162ffffff168362ffffff1611905092915050565b600061077c42610791565b905090565b600061078c4361079b565b905090565b6000819050919050565b6000819050919050565b6040518060a00160405280600062ffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600064ffffffffff168152602001600063ffffffff1681525090565b600080fd5b600062ffffff82169050919050565b61082f81610817565b811461083a57600080fd5b50565b60008135905061084c81610826565b92915050565b60006020828403121561086857610867610812565b5b60006108768482850161083d565b91505092915050565b60008115159050919050565b6108948161087f565b82525050565b60006020820190506108af600083018461088b565b92915050565b6000819050919050565b60006108da6108d56108d084610817565b6108b5565b610817565b9050919050565b6108ea816108bf565b82525050565b600060208201905061090560008301846108e1565b92915050565b610914816108bf565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109458261091a565b9050919050565b6109558161093a565b82525050565b600064ffffffffff82169050919050565b600061098761098261097d8461095b565b6108b5565b61095b565b9050919050565b6109978161096c565b82525050565b600063ffffffff82169050919050565b60006109c86109c36109be8461099d565b6108b5565b61099d565b9050919050565b6109d8816109ad565b82525050565b60a0820160008201516109f4600085018261090b565b506020820151610a07602085018261094c565b506040820151610a1a604085018261094c565b506060820151610a2d606085018261098e565b506080820151610a4060808501826109cf565b50505050565b600060a082019050610a5b60008301846109de565b92915050565b6000819050919050565b610a7481610a61565b82525050565b6000602082019050610a8f6000830184610a6b565b92915050565b610a9e8161093a565b8114610aa957600080fd5b50565b600081359050610abb81610a95565b92915050565b60008060408385031215610ad857610ad7610812565b5b6000610ae685828601610aac565b9250506020610af785828601610aac565b9150509250929050565b610b0a81610a61565b8114610b1557600080fd5b50565b600081359050610b2781610b01565b92915050565b600060208284031215610b4357610b42610812565b5b6000610b5184828501610b18565b91505092915050565b610b63816109ad565b82525050565b6000602082019050610b7e6000830184610b5a565b92915050565b600081519050610b9381610b01565b92915050565b600060208284031215610baf57610bae610812565b5b6000610bbd84828501610b84565b91505092915050565b6000819050919050565b6000610beb610be6610be184610bc6565b6108b5565b610a61565b9050919050565b610bfb81610bd0565b82525050565b6000819050919050565b6000610c26610c21610c1c84610c01565b6108b5565b610a61565b9050919050565b610c3681610c0b565b82525050565b6000606082019050610c516000830186610bf2565b610c5e6020830185610c2d565b610c6b6040830184610c2d565b949350505050565b600081519050610c8281610826565b92915050565b600060208284031215610c9e57610c9d610812565b5b6000610cac84828501610c73565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082825260208201905092915050565b7f4552524f523a56524e2d3030313a56455253494f4e5f414c52454144595f414360008201527f5449564154454400000000000000000000000000000000000000000000000000602082015250565b6000610d51602783610ce4565b9150610d5c82610cf5565b604082019050919050565b60006020820190508181036000830152610d8081610d44565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610dc182610a61565b9150610dcc83610a61565b9250828203905081811115610de457610de3610d87565b5b92915050565b7f4552524f523a56524e2d3030323a56455253494f4e5f4e4f545f494e4352454160008201527f53494e4700000000000000000000000000000000000000000000000000000000602082015250565b6000610e46602483610ce4565b9150610e5182610dea565b604082019050919050565b60006020820190508181036000830152610e7581610e39565b9050919050565b610e858161093a565b82525050565b6000606082019050610ea060008301866108e1565b610ead6020830185610e7c565b610eba6040830184610e7c565b94935050505056fea264697066735822122051ff23a5769bd3aaa36048040cb2ad06a524172bf452620eac91b33ce18916d264736f6c63430008140033",
161
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c80630abd8434146100675780630d8e6e2c146100975780634d459c90146100b5578063946dfcfe146100e55780639555c4db14610103578063b88da7591461011f575b600080fd5b610081600480360381019061007c9190610852565b61014f565b60405161008e919061089a565b60405180910390f35b61009f610209565b6040516100ac91906108f0565b60405180910390f35b6100cf60048036038101906100ca9190610852565b61028e565b6040516100dc9190610a46565b60405180910390f35b6100ed6103e2565b6040516100fa9190610a7a565b60405180910390f35b61011d60048036038101906101189190610ac1565b6103ef565b005b61013960048036038101906101349190610b2d565b6103fd565b60405161014691906108f0565b60405180910390f35b6000806000808462ffffff1662ffffff16815260200190815260200160002060010160199054906101000a900463ffffffff1663ffffffff1673__$5f476116ae21c5294e0c0761c07efa7e1c$__636effeac490916040518263ffffffff1660e01b81526004016101c09190610b69565b602060405180830381865af41580156101dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102019190610b99565b119050919050565b600073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__632efe011360036000806040518463ffffffff1660e01b815260040161024893929190610c3c565b602060405180830381865af4158015610265573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102899190610c88565b905090565b6102966107a5565b6000808362ffffff1662ffffff1681526020019081526020016000206040518060a00160405290816000820160009054906101000a900462ffffff1662ffffff1662ffffff1681526020016000820160039054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900464ffffffffff1664ffffffffff1664ffffffffff1681526020016001820160199054906101000a900463ffffffff1663ffffffff1663ffffffff16815250509050919050565b6000600180549050905090565b6103f9828261043f565b5050565b60006001828154811061041357610412610cb5565b5b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b6000610449610209565b90506104548161014f565b15610494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161048b90610d67565b60405180910390fd5b6000600180549050111561053957600060018080805490506104b69190610db6565b815481106104c7576104c6610cb5565b5b90600052602060002090600a91828204019190066003029054906101000a900462ffffff1690506104f8828261075a565b610537576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161052e90610e5c565b60405180910390fd5b505b60018190806001815401808255809150506001900390600052602060002090600a91828204019190066003029091909190916101000a81548162ffffff021916908362ffffff1602179055506040518060a001604052808262ffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020016105db610771565b64ffffffffff1681526020016105ef610781565b63ffffffff168152506000808362ffffff1662ffffff16815260200190815260200160002060008201518160000160006101000a81548162ffffff021916908362ffffff16021790555060208201518160000160036101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160010160146101000a81548164ffffffffff021916908364ffffffffff16021790555060808201518160010160196101000a81548163ffffffff021916908363ffffffff1602179055509050507f68e7327fca0057a787cde34ababb9ef9844ba8065ee03e8781d8122fc15d441981848460405161074d93929190610e8b565b60405180910390a1505050565b60008162ffffff168362ffffff1611905092915050565b600061077c42610791565b905090565b600061078c4361079b565b905090565b6000819050919050565b6000819050919050565b6040518060a00160405280600062ffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600064ffffffffff168152602001600063ffffffff1681525090565b600080fd5b600062ffffff82169050919050565b61082f81610817565b811461083a57600080fd5b50565b60008135905061084c81610826565b92915050565b60006020828403121561086857610867610812565b5b60006108768482850161083d565b91505092915050565b60008115159050919050565b6108948161087f565b82525050565b60006020820190506108af600083018461088b565b92915050565b6000819050919050565b60006108da6108d56108d084610817565b6108b5565b610817565b9050919050565b6108ea816108bf565b82525050565b600060208201905061090560008301846108e1565b92915050565b610914816108bf565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006109458261091a565b9050919050565b6109558161093a565b82525050565b600064ffffffffff82169050919050565b600061098761098261097d8461095b565b6108b5565b61095b565b9050919050565b6109978161096c565b82525050565b600063ffffffff82169050919050565b60006109c86109c36109be8461099d565b6108b5565b61099d565b9050919050565b6109d8816109ad565b82525050565b60a0820160008201516109f4600085018261090b565b506020820151610a07602085018261094c565b506040820151610a1a604085018261094c565b506060820151610a2d606085018261098e565b506080820151610a4060808501826109cf565b50505050565b600060a082019050610a5b60008301846109de565b92915050565b6000819050919050565b610a7481610a61565b82525050565b6000602082019050610a8f6000830184610a6b565b92915050565b610a9e8161093a565b8114610aa957600080fd5b50565b600081359050610abb81610a95565b92915050565b60008060408385031215610ad857610ad7610812565b5b6000610ae685828601610aac565b9250506020610af785828601610aac565b9150509250929050565b610b0a81610a61565b8114610b1557600080fd5b50565b600081359050610b2781610b01565b92915050565b600060208284031215610b4357610b42610812565b5b6000610b5184828501610b18565b91505092915050565b610b63816109ad565b82525050565b6000602082019050610b7e6000830184610b5a565b92915050565b600081519050610b9381610b01565b92915050565b600060208284031215610baf57610bae610812565b5b6000610bbd84828501610b84565b91505092915050565b6000819050919050565b6000610beb610be6610be184610bc6565b6108b5565b610a61565b9050919050565b610bfb81610bd0565b82525050565b6000819050919050565b6000610c26610c21610c1c84610c01565b6108b5565b610a61565b9050919050565b610c3681610c0b565b82525050565b6000606082019050610c516000830186610bf2565b610c5e6020830185610c2d565b610c6b6040830184610c2d565b949350505050565b600081519050610c8281610826565b92915050565b600060208284031215610c9e57610c9d610812565b5b6000610cac84828501610c73565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082825260208201905092915050565b7f4552524f523a56524e2d3030313a56455253494f4e5f414c52454144595f414360008201527f5449564154454400000000000000000000000000000000000000000000000000602082015250565b6000610d51602783610ce4565b9150610d5c82610cf5565b604082019050919050565b60006020820190508181036000830152610d8081610d44565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000610dc182610a61565b9150610dcc83610a61565b9250828203905081811115610de457610de3610d87565b5b92915050565b7f4552524f523a56524e2d3030323a56455253494f4e5f4e4f545f494e4352454160008201527f53494e4700000000000000000000000000000000000000000000000000000000602082015250565b6000610e46602483610ce4565b9150610e5182610dea565b604082019050919050565b60006020820190508181036000830152610e7581610e39565b9050919050565b610e858161093a565b82525050565b6000606082019050610ea060008301866108e1565b610ead6020830185610e7c565b610eba6040830184610e7c565b94935050505056fea264697066735822122051ff23a5769bd3aaa36048040cb2ad06a524172bf452620eac91b33ce18916d264736f6c63430008140033",
224
+ "bytecode": "0x608060405234801561001057600080fd5b5061001961001e565b6100d0565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161561006e5760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100cd5780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b610bd8806100df6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063a745e3df1161005b578063a745e3df1461021a578063b3c650151461022f578063b88da75914610250578063cf7a1d771461026357600080fd5b80630d8e6e2c1461008d5780634d459c90146100ae5780634f421333146101c7578063946dfcfe146101ea575b600080fd5b610095610276565b60405162ffffff90911681526020015b60405180910390f35b61016a6100bc366004610984565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152600080516020610b8383398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a0016100a5565b6101da6101d5366004610984565b610300565b60405190151581526020016100a5565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed901546040519081526020016100a5565b61022d6102283660046109da565b6103b3565b005b610237610510565b60405167ffffffffffffffff90911681526020016100a5565b61009561025e366004610aac565b610532565b61022d6102713660046109da565b610583565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af41580156102d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102fb9190610ac5565b905090565b600080600080516020610b8383398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af4158015610388573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ac9190610ae2565b1192915050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c6103d5610276565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610415573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104399190610afb565b600080516020610b638339815191528054600160401b900460ff168061046d5750805467ffffffffffffffff808416911610155b1561048b5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff831617600160401b1781556104b7858561068e565b6104c083610933565b805460ff60401b1916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b60006102fb600080516020610b638339815191525467ffffffffffffffff1690565b6000600080516020610b83833981519152600101828154811061055757610557610b25565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b600080516020610b638339815191528054600160401b810460ff16159067ffffffffffffffff166000811580156105b75750825b905060008267ffffffffffffffff1660011480156105d45750303b155b9050811580156105e2575080155b156106005760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561062a57845460ff60401b1916600160401b1785555b610634888861068e565b61063e8787610933565b831561068457845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b610696610937565b600080516020610b8383398151915260006106c7600080516020610b638339815191525467ffffffffffffffff1690565b905060006106d3610276565b90508167ffffffffffffffff166001036107015760028301805462ffffff191662ffffff8316179055610753565b600283015462ffffff908116908216116107535760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b604482015260640160405180910390fd5b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af4158015610807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082b9190610b3b565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf68906105019083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6100885b600080516020610b6383398151915254600160401b900460ff1661096e57604051631afcd79f60e31b815260040160405180910390fd5b565b62ffffff8116811461098157600080fd5b50565b60006020828403121561099657600080fd5b81356109a181610970565b9392505050565b80356001600160a01b03811681146109bf57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156109ef57600080fd5b6109f8846109a8565b9250610a06602085016109a8565b9150604084013567ffffffffffffffff80821115610a2357600080fd5b818601915086601f830112610a3757600080fd5b813581811115610a4957610a496109c4565b604051601f8201601f19908116603f01168101908382118183101715610a7157610a716109c4565b81604052828152896020848701011115610a8a57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b600060208284031215610abe57600080fd5b5035919050565b600060208284031215610ad757600080fd5b81516109a181610970565b600060208284031215610af457600080fd5b5051919050565b600060208284031215610b0d57600080fd5b815167ffffffffffffffff811681146109a157600080fd5b634e487b7160e01b600052603260045260246000fd5b600060208284031215610b4d57600080fd5b815164ffffffffff811681146109a157600080fdfef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a264697066735822122036c2436a636388b08a2d568ba9d2982ad1e4c316093f1ecd22f3561fa8794c0264736f6c63430008140033",
225
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c8063a745e3df1161005b578063a745e3df1461021a578063b3c650151461022f578063b88da75914610250578063cf7a1d771461026357600080fd5b80630d8e6e2c1461008d5780634d459c90146100ae5780634f421333146101c7578063946dfcfe146101ea575b600080fd5b610095610276565b60405162ffffff90911681526020015b60405180910390f35b61016a6100bc366004610984565b6040805160a081018252600080825260208201819052918101829052606081018290526080810191909152600080516020610b8383398151915262ffffff92831660009081526020918252604090819020815160a0810183528154958616815263010000009095046001600160a01b03908116938601939093526001015491821690840152600160a01b810464ffffffffff166060840152600160c81b900463ffffffff1660808301525090565b60408051825162ffffff1681526020808401516001600160a01b039081169183019190915283830151169181019190915260608083015164ffffffffff169082015260809182015163ffffffff169181019190915260a0016100a5565b6101da6101d5366004610984565b610300565b60405190151581526020016100a5565b7f4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed901546040519081526020016100a5565b61022d6102283660046109da565b6103b3565b005b610237610510565b60405167ffffffffffffffff90911681526020016100a5565b61009561025e366004610aac565b610532565b61022d6102713660046109da565b610583565b604051632efe011360e01b815260036004820152600060248201819052604482018190529073__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__90632efe011390606401602060405180830381865af41580156102d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102fb9190610ac5565b905090565b600080600080516020610b8383398151915262ffffff84166000908152602091909152604090819020600101549051631bbffab160e21b8152600160c81b90910463ffffffff16600482015273__$5f476116ae21c5294e0c0761c07efa7e1c$__90636effeac490602401602060405180830381865af4158015610388573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103ac9190610ae2565b1192915050565b73__$c0fcb9c1c2e971ebe3d8745a7e2c5cc364$__63a123b37c6103d5610276565b6040516001600160e01b031960e084901b16815262ffffff9091166004820152602401602060405180830381865af4158015610415573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104399190610afb565b600080516020610b638339815191528054600160401b900460ff168061046d5750805467ffffffffffffffff808416911610155b1561048b5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff831617600160401b1781556104b7858561068e565b6104c083610933565b805460ff60401b1916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15050505050565b60006102fb600080516020610b638339815191525467ffffffffffffffff1690565b6000600080516020610b83833981519152600101828154811061055757610557610b25565b90600052602060002090600a91828204019190066003029054906101000a900462ffffff169050919050565b600080516020610b638339815191528054600160401b810460ff16159067ffffffffffffffff166000811580156105b75750825b905060008267ffffffffffffffff1660011480156105d45750303b155b9050811580156105e2575080155b156106005760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561062a57845460ff60401b1916600160401b1785555b610634888861068e565b61063e8787610933565b831561068457845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b610696610937565b600080516020610b8383398151915260006106c7600080516020610b638339815191525467ffffffffffffffff1690565b905060006106d3610276565b90508167ffffffffffffffff166001036107015760028301805462ffffff191662ffffff8316179055610753565b600283015462ffffff908116908216116107535760405162461bcd60e51b815260206004820152600f60248201526e24a72b20a624a2102b22a929a4a7a760891b604482015260640160405180910390fd5b6001808401805491820181556000908152602090819020600a808404909101805462ffffff808716600394909606939093026101000a858102930219169190911790556040805160a0810182529283526001600160a01b038089168484015287168382015280516356db0c1960e11b81529051606084019273__$d53880c81dc91c20799140d711e5ab8718$__9263adb6183292600480830193928290030181865af4158015610807573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061082b9190610b3b565b64ffffffffff1681526020014363ffffffff90811690915262ffffff8084166000908152602087815260409182902085518154928701516001600160a01b039081166301000000026001600160b81b0319909416919095161791909117815584820151600190910180546060870151608090970151909516600160c81b0263ffffffff60c81b1964ffffffffff909716600160a01b026001600160c81b031990961692909416919091179390931793909316179055517fad0a0fc10465a8dd9da3ad5f43e1a7fff4b4578551c76f0ae8deb844f0d0bf68906105019083908890889062ffffff9390931683526001600160a01b03918216602084015216604082015260600190565b6100885b600080516020610b6383398151915254600160401b900460ff1661096e57604051631afcd79f60e31b815260040160405180910390fd5b565b62ffffff8116811461098157600080fd5b50565b60006020828403121561099657600080fd5b81356109a181610970565b9392505050565b80356001600160a01b03811681146109bf57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806000606084860312156109ef57600080fd5b6109f8846109a8565b9250610a06602085016109a8565b9150604084013567ffffffffffffffff80821115610a2357600080fd5b818601915086601f830112610a3757600080fd5b813581811115610a4957610a496109c4565b604051601f8201601f19908116603f01168101908382118183101715610a7157610a716109c4565b81604052828152896020848701011115610a8a57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b600060208284031215610abe57600080fd5b5035919050565b600060208284031215610ad757600080fd5b81516109a181610970565b600060208284031215610af457600080fd5b5051919050565b600060208284031215610b0d57600080fd5b815167ffffffffffffffff811681146109a157600080fd5b634e487b7160e01b600052603260045260246000fd5b600060208284031215610b4d57600080fd5b815164ffffffffff811681146109a157600080fdfef0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a004f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900a264697066735822122036c2436a636388b08a2d568ba9d2982ad1e4c316093f1ecd22f3561fa8794c0264736f6c63430008140033",
162
226
  "linkReferences": {
163
227
  "contracts/types/Blocknumber.sol": {
164
228
  "BlocknumberLib": [
165
229
  {
166
230
  "length": 20,
167
- "start": 1083
168
- },
231
+ "start": 1069
232
+ }
233
+ ]
234
+ },
235
+ "contracts/types/Timestamp.sol": {
236
+ "TimestampLib": [
169
237
  {
170
238
  "length": 20,
171
- "start": 2912
239
+ "start": 2220
172
240
  }
173
241
  ]
174
242
  },
@@ -176,11 +244,11 @@
176
244
  "VersionLib": [
177
245
  {
178
246
  "length": 20,
179
- "start": 890
247
+ "start": 892
180
248
  },
181
249
  {
182
250
  "length": 20,
183
- "start": 3043
251
+ "start": 1172
184
252
  }
185
253
  ]
186
254
  }
@@ -190,7 +258,15 @@
190
258
  "BlocknumberLib": [
191
259
  {
192
260
  "length": 20,
193
- "start": 394
261
+ "start": 846
262
+ }
263
+ ]
264
+ },
265
+ "contracts/types/Timestamp.sol": {
266
+ "TimestampLib": [
267
+ {
268
+ "length": 20,
269
+ "start": 1997
194
270
  }
195
271
  ]
196
272
  },
@@ -198,7 +274,11 @@
198
274
  "VersionLib": [
199
275
  {
200
276
  "length": 20,
201
- "start": 525
277
+ "start": 669
278
+ },
279
+ {
280
+ "length": 20,
281
+ "start": 949
202
282
  }
203
283
  ]
204
284
  }
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/fe11587699ed98bdf117fb70903a54b7.json"
4
+ }