@etherisc/gif-next 0.0.2-a4b0112-987 → 0.0.2-a6f9f86-582

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (316) hide show
  1. package/README.md +160 -6
  2. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +4 -0
  3. package/artifacts/contracts/components/{IPool.sol/IPoolComponent.json → IBaseComponent.sol/IBaseComponent.json} +104 -118
  4. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  5. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +2 -2
  6. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  7. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +2 -2
  8. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  9. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +2 -2
  10. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  11. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +2 -2
  12. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  13. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  14. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  15. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  16. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  17. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  18. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  20. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  22. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
  24. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
  26. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +2 -2
  28. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +2 -2
  30. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +4 -0
  31. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.json +101 -0
  32. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +4 -0
  33. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +1119 -0
  34. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +4 -0
  35. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.json +1082 -0
  36. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  37. package/artifacts/contracts/instance/Instance.sol/Instance.json +2622 -827
  38. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +917 -0
  40. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  41. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +117 -0
  42. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  43. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +506 -0
  44. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  45. package/artifacts/contracts/instance/{lifecycle/ILifecycle.sol/ILifecycleModule.json → base/ILifecycle.sol/ILifecycle.json} +10 -77
  46. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +4 -0
  47. package/artifacts/contracts/instance/base/IService.sol/IService.json +421 -0
  48. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  49. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +736 -0
  50. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  51. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +169 -0
  52. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +4 -0
  53. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +468 -0
  54. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  55. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +211 -0
  56. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  57. package/artifacts/contracts/instance/{access/IAccess.sol/IAccess.json → module/IBundle.sol/IBundle.json} +2 -2
  58. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{component/IComponent.sol/IComponent.json → module/IDistribution.sol/IDistribution.json} +2 -2
  60. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  61. package/artifacts/contracts/instance/{policy → module}/IPolicy.sol/IPolicy.json +1 -1
  62. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  63. package/artifacts/contracts/instance/{pool/IPoolModule.sol/IPool.json → module/IRisk.sol/IRisk.json} +2 -2
  64. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  65. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.json +10 -0
  66. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  67. package/artifacts/contracts/instance/{treasury → module}/ITreasury.sol/ITreasury.json +1 -1
  68. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  69. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +194 -2
  70. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
  71. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +5 -0
  72. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  73. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +408 -32
  74. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  75. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +745 -0
  76. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  77. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
  78. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  79. package/artifacts/contracts/registry/Registry.sol/Registry.json +637 -52
  80. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  81. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1013 -0
  82. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  83. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +476 -0
  84. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  85. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  86. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +4 -0
  87. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +35 -0
  88. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  89. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +127 -0
  90. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +4 -0
  91. package/artifacts/contracts/{components/Component.sol/Component.json → shared/IRegisterable.sol/IRegisterable.json} +98 -102
  92. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
  93. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +205 -0
  94. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  95. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
  96. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  97. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
  98. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +4 -0
  99. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +274 -0
  100. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  101. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  102. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  103. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  104. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
  105. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +228 -0
  106. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +4 -0
  107. package/artifacts/contracts/test/TestFee.sol/TestFee.json +119 -0
  108. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +4 -0
  109. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +305 -0
  110. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +4 -0
  111. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +10 -0
  112. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +4 -0
  113. package/artifacts/contracts/test/TestService.sol/TestService.json +600 -0
  114. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +4 -0
  115. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +338 -0
  116. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +4 -0
  117. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +218 -0
  118. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +4 -0
  119. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +286 -0
  120. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +4 -0
  121. package/artifacts/contracts/test/Usdc.sol/USDC.json +338 -0
  122. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  123. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +10 -0
  124. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  125. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
  126. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  127. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +2 -2
  128. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  129. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  130. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +4 -0
  131. package/artifacts/contracts/types/Fee.sol/FeeLib.json +257 -0
  132. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
  133. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +125 -0
  134. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  135. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +65 -4
  136. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  137. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +10 -0
  138. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  139. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  140. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  141. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  142. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  143. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +123 -0
  144. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  145. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  146. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
  147. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +156 -0
  148. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  149. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  150. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  151. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +77 -2
  152. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +1 -1
  153. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +88 -62
  154. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +4 -0
  155. package/artifacts/contracts/types/Version.sol/VersionLib.json +177 -0
  156. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +4 -0
  157. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +30 -0
  158. package/contracts/components/IBaseComponent.sol +19 -0
  159. package/contracts/instance/AccessManagedSimple.sol +114 -0
  160. package/contracts/instance/AccessManagerSimple.sol +682 -0
  161. package/contracts/instance/IAccessManagerSimple.sol +391 -0
  162. package/contracts/instance/Instance.sol +371 -53
  163. package/contracts/instance/InstanceAccessManager.sol +288 -0
  164. package/contracts/instance/InstanceService.sol +45 -0
  165. package/contracts/instance/base/IKeyValueStore.sol +48 -0
  166. package/contracts/instance/base/ILifecycle.sol +30 -0
  167. package/contracts/instance/base/IService.sol +15 -0
  168. package/contracts/instance/base/KeyValueStore.sol +188 -0
  169. package/contracts/instance/base/Lifecycle.sol +100 -0
  170. package/contracts/instance/base/ServiceBase.sol +44 -0
  171. package/contracts/instance/module/IAccess.sol +38 -0
  172. package/contracts/instance/module/IBundle.sol +19 -0
  173. package/contracts/instance/module/IDistribution.sol +39 -0
  174. package/contracts/instance/module/IPolicy.sol +45 -0
  175. package/contracts/instance/module/IRisk.sol +11 -0
  176. package/contracts/instance/module/ISetup.sol +41 -0
  177. package/contracts/instance/module/ITreasury.sol +23 -0
  178. package/contracts/registry/ChainNft.sol +94 -42
  179. package/contracts/registry/IChainNft.sol +3 -2
  180. package/contracts/registry/IRegistry.sol +50 -44
  181. package/contracts/registry/IRegistryService.sol +29 -0
  182. package/contracts/registry/ITransferInterceptor.sol +6 -0
  183. package/contracts/registry/Registry.sol +435 -126
  184. package/contracts/registry/RegistryService.sol +369 -0
  185. package/contracts/registry/RegistryServiceManager.sol +43 -0
  186. package/contracts/shared/ContractDeployerLib.sol +72 -0
  187. package/contracts/shared/ERC165.sol +21 -0
  188. package/contracts/shared/INftOwnable.sol +22 -0
  189. package/contracts/shared/IRegisterable.sol +17 -0
  190. package/contracts/shared/IVersionable.sol +96 -0
  191. package/contracts/shared/NftOwnable.sol +136 -0
  192. package/contracts/shared/ProxyManager.sol +94 -0
  193. package/contracts/shared/Registerable.sol +89 -0
  194. package/contracts/shared/TokenHandler.sol +27 -0
  195. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  196. package/contracts/shared/Versionable.sol +147 -0
  197. package/contracts/test/TestFee.sol +25 -0
  198. package/contracts/test/TestRegisterable.sol +18 -0
  199. package/contracts/test/TestRoleId.sol +14 -0
  200. package/contracts/test/TestService.sol +26 -0
  201. package/contracts/test/TestToken.sol +26 -0
  202. package/contracts/test/TestVersion.sol +44 -0
  203. package/contracts/test/TestVersionable.sol +17 -0
  204. package/contracts/test/Usdc.sol +26 -0
  205. package/contracts/types/AddressSet.sol +58 -0
  206. package/contracts/types/DistributorType.sol +55 -0
  207. package/contracts/types/Fee.sol +44 -20
  208. package/contracts/types/Key32.sol +50 -0
  209. package/contracts/types/NftId.sol +22 -1
  210. package/contracts/types/NftIdSet.sol +60 -0
  211. package/contracts/types/NumberId.sol +52 -0
  212. package/contracts/types/ObjectType.sol +60 -15
  213. package/contracts/types/Referral.sol +85 -0
  214. package/contracts/types/RiskId.sol +43 -0
  215. package/contracts/types/RoleId.sol +75 -0
  216. package/contracts/types/StateId.sol +14 -4
  217. package/contracts/types/Timestamp.sol +29 -4
  218. package/contracts/types/UFixed.sol +26 -23
  219. package/contracts/types/Version.sol +104 -0
  220. package/package.json +12 -4
  221. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  222. package/artifacts/contracts/components/Component.sol/InstanceLinked.dbg.json +0 -4
  223. package/artifacts/contracts/components/Component.sol/InstanceLinked.json +0 -35
  224. package/artifacts/contracts/components/IPool.sol/IPoolComponent.dbg.json +0 -4
  225. package/artifacts/contracts/components/IProduct.sol/IProductComponent.dbg.json +0 -4
  226. package/artifacts/contracts/components/IProduct.sol/IProductComponent.json +0 -74
  227. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  228. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -328
  229. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  230. package/artifacts/contracts/components/Product.sol/Product.json +0 -346
  231. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +0 -4
  232. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +0 -1479
  233. package/artifacts/contracts/instance/access/Access.sol/AccessModule.dbg.json +0 -4
  234. package/artifacts/contracts/instance/access/Access.sol/AccessModule.json +0 -400
  235. package/artifacts/contracts/instance/access/IAccess.sol/IAccess.dbg.json +0 -4
  236. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.dbg.json +0 -4
  237. package/artifacts/contracts/instance/access/IAccess.sol/IAccessCheckRole.json +0 -35
  238. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.dbg.json +0 -4
  239. package/artifacts/contracts/instance/access/IAccess.sol/IAccessComponentTypeRoles.json +0 -50
  240. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  241. package/artifacts/contracts/instance/access/IAccess.sol/IAccessModule.json +0 -336
  242. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  243. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentModule.json +0 -299
  244. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.dbg.json +0 -4
  245. package/artifacts/contracts/instance/component/ComponentModule.sol/ComponentOwnerService.json +0 -202
  246. package/artifacts/contracts/instance/component/IComponent.sol/IComponent.dbg.json +0 -4
  247. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.dbg.json +0 -4
  248. package/artifacts/contracts/instance/component/IComponent.sol/IComponentContract.json +0 -205
  249. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  250. package/artifacts/contracts/instance/component/IComponent.sol/IComponentModule.json +0 -217
  251. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.dbg.json +0 -4
  252. package/artifacts/contracts/instance/component/IComponent.sol/IComponentOwnerService.json +0 -141
  253. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.dbg.json +0 -4
  254. package/artifacts/contracts/instance/component/IComponent.sol/IInstanceLinked.json +0 -24
  255. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  256. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
  257. package/artifacts/contracts/instance/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  258. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  259. package/artifacts/contracts/instance/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  260. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  261. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  262. package/artifacts/contracts/instance/policy/IPolicy.sol/IPolicyModule.json +0 -254
  263. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  264. package/artifacts/contracts/instance/policy/PolicyModule.sol/PolicyModule.json +0 -254
  265. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  266. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  267. package/artifacts/contracts/instance/pool/IPoolModule.sol/IPoolModule.json +0 -129
  268. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  269. package/artifacts/contracts/instance/pool/PoolModule.sol/PoolModule.json +0 -155
  270. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.dbg.json +0 -4
  271. package/artifacts/contracts/instance/product/IProductService.sol/IProductModule.json +0 -75
  272. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.dbg.json +0 -4
  273. package/artifacts/contracts/instance/product/IProductService.sol/IProductService.json +0 -127
  274. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.dbg.json +0 -4
  275. package/artifacts/contracts/instance/product/ProductService.sol/ProductModule.json +0 -75
  276. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.dbg.json +0 -4
  277. package/artifacts/contracts/instance/product/ProductService.sol/ProductService.json +0 -196
  278. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  279. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  280. package/artifacts/contracts/instance/treasury/ITreasury.sol/ITreasuryModule.json +0 -490
  281. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  282. package/artifacts/contracts/instance/treasury/TokenHandler.sol/TokenHandler.json +0 -45
  283. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  284. package/artifacts/contracts/instance/treasury/TreasuryModule.sol/TreasuryModule.json +0 -490
  285. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.dbg.json +0 -4
  286. package/artifacts/contracts/registry/IRegistry.sol/IOwnable.json +0 -24
  287. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.dbg.json +0 -4
  288. package/artifacts/contracts/registry/IRegistry.sol/IRegisterable.json +0 -166
  289. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.dbg.json +0 -4
  290. package/artifacts/contracts/registry/IRegistry.sol/IRegistryLinked.json +0 -49
  291. package/artifacts/contracts/registry/Registry.sol/Registerable.dbg.json +0 -4
  292. package/artifacts/contracts/registry/Registry.sol/Registerable.json +0 -166
  293. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.dbg.json +0 -4
  294. package/artifacts/contracts/registry/Registry.sol/RegistryLinked.json +0 -60
  295. package/contracts/components/Component.sol +0 -77
  296. package/contracts/components/IPool.sol +0 -15
  297. package/contracts/components/IProduct.sol +0 -16
  298. package/contracts/components/Pool.sol +0 -52
  299. package/contracts/components/Product.sol +0 -89
  300. package/contracts/experiment/statemachine/README.md +0 -112
  301. package/contracts/instance/IInstance.sol +0 -25
  302. package/contracts/instance/access/Access.sol +0 -165
  303. package/contracts/instance/access/IAccess.sol +0 -63
  304. package/contracts/instance/component/ComponentModule.sol +0 -274
  305. package/contracts/instance/component/IComponent.sol +0 -74
  306. package/contracts/instance/lifecycle/ILifecycle.sol +0 -47
  307. package/contracts/instance/lifecycle/LifecycleModule.sol +0 -88
  308. package/contracts/instance/policy/IPolicy.sol +0 -50
  309. package/contracts/instance/policy/PolicyModule.sol +0 -114
  310. package/contracts/instance/pool/IPoolModule.sol +0 -23
  311. package/contracts/instance/pool/PoolModule.sol +0 -81
  312. package/contracts/instance/product/IProductService.sol +0 -36
  313. package/contracts/instance/product/ProductService.sol +0 -136
  314. package/contracts/instance/treasury/ITreasury.sol +0 -91
  315. package/contracts/instance/treasury/TokenHandler.sol +0 -24
  316. package/contracts/instance/treasury/TreasuryModule.sol +0 -168
package/README.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # gif-next (Generic Insurance Framework next version)
2
2
 
3
+ ## Add OpenZeppelin V5 Dependencies
4
+
5
+ ```shell
6
+ forge install openzeppelin-contracts-500=OpenZeppelin/openzeppelin-contracts@v5.0.0
7
+ cd cd lib/openzeppelin-contracts-500
8
+ git checkout tags/v5.0.0
9
+ cd ../..
10
+ ```
11
+
12
+ See `remappings.txt` to see how to work with different OpenZeppelin versions in parallel
13
+
14
+ ```
15
+ cat remappings.txt
16
+ @openzeppelin5/contracts/=lib/openzeppelin-contracts-500/contracts/
17
+ @openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/
18
+ @openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/
19
+ ```
20
+
21
+
3
22
  ## Submodules checkout
4
23
 
5
24
  This repository uses submodules. To checkout or update to the latest submodules, run the following command after updating to any revision (or checking out the repository)
@@ -23,15 +42,33 @@ npm run coverage
23
42
 
24
43
  ### Deployment
25
44
 
45
+ Install the dependencies before running the script below for the first time.
46
+
47
+ ```bash
48
+ npm install
26
49
  ```
27
- hh run --network <networkname> scripts/deploy.ts
50
+
51
+ The deploy script will deploy all required contracts and create a test instance with a test product and a test pool.
52
+
53
+ ```bash
54
+ # run deployment on a locally created ganache instance
55
+ export SKIP_VERIFICATION=true
56
+ hh run scripts/deploy_all.ts
28
57
  ```
29
58
 
30
- Networks:
31
- - hardhat (dynamically created network - https://hardhat.org/hardhat-network/docs/overview)
32
- - anvil (anvsil chain running in container next when using devcontainer)
33
- - mumbai (polygon testnet, requires WEB3_INFURA_PROJECT_ID)
34
- - mainnet (polygon mainnet, requires WEB3_INFURA_PROJECT_ID)
59
+ ```bash
60
+ # set appropriate values vor env variables (see below)
61
+
62
+ # run deployment on another network
63
+ hh run --network <networkname> scripts/deploy_all.ts
64
+ ```
65
+
66
+ Environment variables:
67
+
68
+ - `SKIP_VERIFICATION` set to `true` to skip etherscan verification (required for ganacht and anvil)
69
+ - `WEB3_INFURA_PROJECT_ID` set to infura project id (required for mumbai and mainnet)
70
+ - `WALLET_MNEMONIC` the mnemonic of the wallet to use for deployment (required for mumbai and mainnet)
71
+ - `ETHERSCAN_API_KEY` `POLYGONSCAN_API_KEY` the api key for etherscan/polygonscan (required for mumbai and mainnet)
35
72
 
36
73
 
37
74
  ### Console
@@ -56,6 +93,9 @@ https://hardhat.org/hardhat-runner/docs/guides/compile-contracts
56
93
  ```shell
57
94
  forge build
58
95
 
96
+ # contract sizes
97
+ forge build --sizes | grep Instance
98
+
59
99
  forge test
60
100
 
61
101
  # run single test case
@@ -127,7 +167,17 @@ uint256 lifetime =365*24*3600;
127
167
  uint256 policyNftId = ps.createApplicationForBundle(customer, bundleNftId, sumInsuredAmount, premiumAmount, lifetime);
128
168
 
129
169
  ```
170
+ ### Library Linking
171
+
172
+ https://ethereum.stackexchange.com/questions/153411/does-foundry-support-dynamical-library-linking-in-solidity
130
173
 
174
+ ```toml
175
+ # foundry.toml
176
+
177
+ [profile.default]
178
+ # expected format(example below): libraries = ["<path>:<lib name>:<address>"]
179
+ libraries = ["src/libraries/MyLibrary.sol:MyLibrary:0x..."]
180
+ ```
131
181
 
132
182
  ### Documentation
133
183
 
@@ -158,3 +208,107 @@ To execute formatting run `npm run styleFix`.
158
208
 
159
209
  We use solhint to lint the code.
160
210
  To execute linting run `npm run lint`.
211
+
212
+
213
+ ### Adding Brownie (Legacy)
214
+
215
+ python3 is already installed
216
+
217
+ ```bash
218
+ npm install -g ganache
219
+ sudo apt update
220
+ sudo apt install python3-pip
221
+ pip install eth-brownie
222
+ brownie pm install OpenZeppelin/openzeppelin-contracts@4.9.3
223
+ brownie pm install OpenZeppelin/openzeppelin-contracts@5.0.0
224
+ ```
225
+
226
+ ```bash
227
+ brownie compile --all
228
+ brownie console
229
+ ```
230
+
231
+ ```python
232
+ registry_owner = accounts[0]
233
+ instance_owner = accounts[1]
234
+ product_owner = accounts[2]
235
+
236
+ # deploy libs and helper contracts
237
+ nft_id_lib = NftIdLib.deploy({'from': registry_owner})
238
+ ufixed_math_lib = UFixedMathLib.deploy({'from': registry_owner})
239
+ test_fee = TestFee.deploy({'from': registry_owner})
240
+
241
+ # deploy registry and a token
242
+ registry = Registry.deploy({'from': registry_owner})
243
+ nft = ChainNft.deploy(registry, {'from': registry_owner})
244
+ registry.initialize(nft, {'from': registry_owner})
245
+ token = TestUsdc.deploy({'from': registry_owner})
246
+
247
+ # deploy services
248
+ component_owner_service = ComponentOwnerService.deploy(registry, {'from': registry_owner})
249
+ product_service = ProductService.deploy(registry, {'from': registry_owner})
250
+
251
+ # deploy an instance
252
+ instance = Instance.deploy(registry, component_owner_service, product_service, {'from': instance_owner})
253
+
254
+ # deploy product
255
+ pool = TestPool.deploy(registry, instance, token, {'from': product_owner})
256
+ policy_fee = test_fee.createFee(1, -1, 0)
257
+ product = TestProduct.deploy(registry, instance, token, pool, policy_fee, {'from': product_owner})
258
+
259
+ # grant roles
260
+ pool_owner_role = instance.getRoleForName("PoolOwner")
261
+ product_owner_role = instance.getRoleForName("ProductOwner")
262
+ instance.grantRole(pool_owner_role, product_owner, {'from': instance_owner})
263
+ instance.grantRole(product_owner_role, product_owner, {'from': instance_owner})
264
+
265
+ # register objects
266
+ instance.register()
267
+ component_owner_service.register(pool, {'from': product_owner})
268
+ component_owner_service.register(product, {'from': product_owner})
269
+
270
+ instance_id = instance.getNftId()
271
+ pool_id = pool.getNftId()
272
+ product_id = product.getNftId()
273
+ ```
274
+
275
+ ## Registry and Services
276
+
277
+ ### Principles
278
+
279
+ - 1 service per object type and major version
280
+ - registry service guards write access to registry
281
+ - all other objects registered via registry service
282
+ - root object for the complete tree is the protocol object
283
+ - under the root object a single registry object is registered (= global registry/ethereum mainnet)
284
+
285
+
286
+ ### Service Responsibilities
287
+
288
+ Registry Service
289
+
290
+ - deployed and registered during bootstrapping of registry
291
+ - used to register tokens and other services by registry owner
292
+ - an object may only be registered by the service designated by the type of the object
293
+ - to register an object the parent object needs already be registered
294
+ - the type of the object to be registered needs to match a valid child type/parent type combination
295
+
296
+ Instance Service
297
+
298
+ - deploys master instance during its own bootstrapping (if allowed by contract size)
299
+ - registered via registry service by registry owner
300
+ - registeres master instance during its own registration by regsitry owner
301
+ - deploys and registeres new instances (= instance factory) by instance owner (instance owner is a permissionless role, anybody may creates a new instance)
302
+ - provides upgrade functionality to instance owners
303
+
304
+ Product Service
305
+
306
+ - registered via registry service by registry owner
307
+ - registers products for registered instances via registry service by product owner (product owner role is permissend by the product's instance)
308
+ - registers applications/policies for registered products via registry service
309
+
310
+ Distribution Service
311
+
312
+ - registered via registry service by registry owner
313
+ - registers distribution components for registered products via registry service by distribution owner (distribution owner role is permissend by the product's instance)
314
+ - registers distributors for registered distribution components via registry service
@@ -0,0 +1,4 @@
1
+ {
2
+ "_format": "hh-sol-dbg-1",
3
+ "buildInfo": "../../../build-info/b0463691af8f7fdd39ae65ce29b66f86.json"
4
+ }
@@ -1,131 +1,128 @@
1
1
  {
2
2
  "_format": "hh-sol-artifact-1",
3
- "contractName": "IPoolComponent",
4
- "sourceName": "contracts/components/IPool.sol",
3
+ "contractName": "IBaseComponent",
4
+ "sourceName": "contracts/components/IBaseComponent.sol",
5
5
  "abi": [
6
6
  {
7
- "anonymous": false,
8
7
  "inputs": [
9
8
  {
10
- "indexed": false,
11
- "internalType": "uint256",
12
- "name": "idx",
13
- "type": "uint256"
14
- },
15
- {
16
- "indexed": false,
17
9
  "internalType": "address",
18
- "name": "module",
10
+ "name": "registry",
19
11
  "type": "address"
20
12
  },
21
13
  {
22
- "indexed": false,
23
- "internalType": "string",
24
- "name": "comment",
25
- "type": "string"
14
+ "internalType": "NftId",
15
+ "name": "nftId",
16
+ "type": "uint96"
26
17
  }
27
18
  ],
28
- "name": "LogDebug",
29
- "type": "event"
19
+ "name": "ErrorAlreadyLinked",
20
+ "type": "error"
30
21
  },
31
22
  {
32
- "inputs": [],
33
- "name": "getData",
34
- "outputs": [
23
+ "inputs": [
35
24
  {
36
- "internalType": "bytes",
37
- "name": "data",
38
- "type": "bytes"
25
+ "internalType": "address",
26
+ "name": "contractAddress",
27
+ "type": "address"
39
28
  }
40
29
  ],
41
- "stateMutability": "view",
42
- "type": "function"
30
+ "name": "ErrorContractNotRegistered",
31
+ "type": "error"
43
32
  },
44
33
  {
45
- "inputs": [],
46
- "name": "getInitialOwner",
47
- "outputs": [
34
+ "inputs": [
48
35
  {
49
36
  "internalType": "address",
50
- "name": "initialOwner",
37
+ "name": "account",
51
38
  "type": "address"
52
39
  }
53
40
  ],
54
- "stateMutability": "view",
55
- "type": "function"
41
+ "name": "ErrorNotOwner",
42
+ "type": "error"
56
43
  },
57
44
  {
58
- "inputs": [],
59
- "name": "getInstance",
60
- "outputs": [
45
+ "inputs": [
61
46
  {
62
- "internalType": "contract IInstance",
63
- "name": "instance",
47
+ "internalType": "address",
48
+ "name": "registryAddress",
64
49
  "type": "address"
65
50
  }
66
51
  ],
67
- "stateMutability": "view",
68
- "type": "function"
52
+ "name": "ErrorNotRegistry",
53
+ "type": "error"
69
54
  },
70
55
  {
71
56
  "inputs": [],
72
- "name": "getNftId",
73
- "outputs": [
74
- {
75
- "internalType": "NftId",
76
- "name": "nftId",
77
- "type": "uint96"
78
- }
79
- ],
80
- "stateMutability": "view",
81
- "type": "function"
57
+ "name": "ErrorRegistryAddressZero",
58
+ "type": "error"
82
59
  },
83
60
  {
84
- "inputs": [],
85
- "name": "getOwner",
86
- "outputs": [
61
+ "inputs": [
87
62
  {
88
63
  "internalType": "address",
89
- "name": "owner",
64
+ "name": "registry",
90
65
  "type": "address"
91
66
  }
92
67
  ],
93
- "stateMutability": "view",
94
- "type": "function"
68
+ "name": "ErrorRegistryAlreadyInitialized",
69
+ "type": "error"
95
70
  },
96
71
  {
97
72
  "inputs": [],
98
- "name": "getParentNftId",
99
- "outputs": [
100
- {
101
- "internalType": "NftId",
102
- "name": "parentNftId",
103
- "type": "uint96"
104
- }
105
- ],
106
- "stateMutability": "view",
107
- "type": "function"
73
+ "name": "ErrorRegistryNotInitialized",
74
+ "type": "error"
108
75
  },
109
76
  {
110
77
  "inputs": [],
111
- "name": "getPerformanceFee",
78
+ "name": "getInitialInfo",
112
79
  "outputs": [
113
80
  {
114
81
  "components": [
115
82
  {
116
- "internalType": "UFixed",
117
- "name": "fractionalFee",
118
- "type": "uint256"
83
+ "internalType": "NftId",
84
+ "name": "nftId",
85
+ "type": "uint96"
86
+ },
87
+ {
88
+ "internalType": "NftId",
89
+ "name": "parentNftId",
90
+ "type": "uint96"
91
+ },
92
+ {
93
+ "internalType": "ObjectType",
94
+ "name": "objectType",
95
+ "type": "uint8"
96
+ },
97
+ {
98
+ "internalType": "bool",
99
+ "name": "isInterceptor",
100
+ "type": "bool"
101
+ },
102
+ {
103
+ "internalType": "address",
104
+ "name": "objectAddress",
105
+ "type": "address"
119
106
  },
120
107
  {
121
- "internalType": "uint256",
122
- "name": "fixedFee",
123
- "type": "uint256"
108
+ "internalType": "address",
109
+ "name": "initialOwner",
110
+ "type": "address"
111
+ },
112
+ {
113
+ "internalType": "bytes",
114
+ "name": "data",
115
+ "type": "bytes"
124
116
  }
125
117
  ],
126
- "internalType": "struct Fee",
127
- "name": "performanceFee",
118
+ "internalType": "struct IRegistry.ObjectInfo",
119
+ "name": "",
128
120
  "type": "tuple"
121
+ },
122
+ {
123
+ "internalType": "bytes",
124
+ "name": "data",
125
+ "type": "bytes"
129
126
  }
130
127
  ],
131
128
  "stateMutability": "view",
@@ -133,12 +130,12 @@
133
130
  },
134
131
  {
135
132
  "inputs": [],
136
- "name": "getRegistry",
133
+ "name": "getNftId",
137
134
  "outputs": [
138
135
  {
139
- "internalType": "contract IRegistry",
140
- "name": "registry",
141
- "type": "address"
136
+ "internalType": "NftId",
137
+ "name": "",
138
+ "type": "uint96"
142
139
  }
143
140
  ],
144
141
  "stateMutability": "view",
@@ -146,24 +143,12 @@
146
143
  },
147
144
  {
148
145
  "inputs": [],
149
- "name": "getStakingFee",
146
+ "name": "getOwner",
150
147
  "outputs": [
151
148
  {
152
- "components": [
153
- {
154
- "internalType": "UFixed",
155
- "name": "fractionalFee",
156
- "type": "uint256"
157
- },
158
- {
159
- "internalType": "uint256",
160
- "name": "fixedFee",
161
- "type": "uint256"
162
- }
163
- ],
164
- "internalType": "struct Fee",
165
- "name": "stakingFee",
166
- "type": "tuple"
149
+ "internalType": "address",
150
+ "name": "",
151
+ "type": "address"
167
152
  }
168
153
  ],
169
154
  "stateMutability": "view",
@@ -171,11 +156,11 @@
171
156
  },
172
157
  {
173
158
  "inputs": [],
174
- "name": "getToken",
159
+ "name": "getRegistry",
175
160
  "outputs": [
176
161
  {
177
- "internalType": "contract IERC20Metadata",
178
- "name": "token",
162
+ "internalType": "contract IRegistry",
163
+ "name": "",
179
164
  "type": "address"
180
165
  }
181
166
  ],
@@ -184,12 +169,12 @@
184
169
  },
185
170
  {
186
171
  "inputs": [],
187
- "name": "getType",
172
+ "name": "getToken",
188
173
  "outputs": [
189
174
  {
190
- "internalType": "ObjectType",
191
- "name": "objectType",
192
- "type": "uint8"
175
+ "internalType": "contract IERC20Metadata",
176
+ "name": "token",
177
+ "type": "address"
193
178
  }
194
179
  ],
195
180
  "stateMutability": "view",
@@ -210,20 +195,27 @@
210
195
  },
211
196
  {
212
197
  "inputs": [],
213
- "name": "isRegisterable",
214
- "outputs": [
215
- {
216
- "internalType": "bool",
217
- "name": "",
218
- "type": "bool"
219
- }
220
- ],
221
- "stateMutability": "pure",
198
+ "name": "linkToRegisteredNftId",
199
+ "outputs": [],
200
+ "stateMutability": "nonpayable",
222
201
  "type": "function"
223
202
  },
224
203
  {
225
204
  "inputs": [],
226
- "name": "isRegistered",
205
+ "name": "lock",
206
+ "outputs": [],
207
+ "stateMutability": "nonpayable",
208
+ "type": "function"
209
+ },
210
+ {
211
+ "inputs": [
212
+ {
213
+ "internalType": "bytes4",
214
+ "name": "interfaceId",
215
+ "type": "bytes4"
216
+ }
217
+ ],
218
+ "name": "supportsInterface",
227
219
  "outputs": [
228
220
  {
229
221
  "internalType": "bool",
@@ -236,14 +228,8 @@
236
228
  },
237
229
  {
238
230
  "inputs": [],
239
- "name": "register",
240
- "outputs": [
241
- {
242
- "internalType": "NftId",
243
- "name": "nftId",
244
- "type": "uint96"
245
- }
246
- ],
231
+ "name": "unlock",
232
+ "outputs": [],
247
233
  "stateMutability": "nonpayable",
248
234
  "type": "function"
249
235
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/ddbd31d07c8880f0f0a18b3f2b9bcc56.json"
3
+ "buildInfo": "../../../../build-info/b0463691af8f7fdd39ae65ce29b66f86.json"
4
4
  }
@@ -98,8 +98,8 @@
98
98
  "type": "function"
99
99
  }
100
100
  ],
101
- "bytecode": "0x608060405234801561001057600080fd5b50602a60008190555061040f806100286000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806342bf62e0146100465780638db581aa1461007657806394977ddd146100a6575b600080fd5b610060600480360381019061005b91906101fb565b6100d6565b60405161006d9190610243565b60405180910390f35b610090600480360381019061008b91906101fb565b610124565b60405161009d9190610243565b60405180910390f35b6100c060048036038101906100bb91906101fb565b610172565b6040516100cd9190610243565b60405180910390f35b60008054821161011b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610112906102bb565b60405180910390fd5b60019050919050565b600080548211610169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016090610327565b60405180910390fd5b60019050919050565b6000805482116101b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ae906103b9565b60405180910390fd5b60019050919050565b600080fd5b6000819050919050565b6101d8816101c5565b81146101e357600080fd5b50565b6000813590506101f5816101cf565b92915050565b600060208284031215610211576102106101c0565b5b600061021f848285016101e6565b91505092915050565b60008115159050919050565b61023d81610228565b82525050565b60006020820190506102586000830184610234565b92915050565b600082825260208201905092915050565b7f4552524f523a4142432d3030323a415f49535f534d414c4c4552000000000000600082015250565b60006102a5601a8361025e565b91506102b08261026f565b602082019050919050565b600060208201905081810360008301526102d481610298565b9050919050565b7f4552524f523a4142432d30303100000000000000000000000000000000000000600082015250565b6000610311600d8361025e565b915061031c826102db565b602082019050919050565b6000602082019050818103600083015261034081610304565b9050919050565b7f4552524f523a4142432d3030333a415f49535f534d414c4c45525f5448414e5f60008201527f4200000000000000000000000000000000000000000000000000000000000000602082015250565b60006103a360218361025e565b91506103ae82610347565b604082019050919050565b600060208201905081810360008301526103d281610396565b905091905056fea26469706673582212207f10bf5c332235128519fa30412afeef48946f8606b398b2fed02edcd66fa75164736f6c63430008140033",
102
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806342bf62e0146100465780638db581aa1461007657806394977ddd146100a6575b600080fd5b610060600480360381019061005b91906101fb565b6100d6565b60405161006d9190610243565b60405180910390f35b610090600480360381019061008b91906101fb565b610124565b60405161009d9190610243565b60405180910390f35b6100c060048036038101906100bb91906101fb565b610172565b6040516100cd9190610243565b60405180910390f35b60008054821161011b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610112906102bb565b60405180910390fd5b60019050919050565b600080548211610169576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161016090610327565b60405180910390fd5b60019050919050565b6000805482116101b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ae906103b9565b60405180910390fd5b60019050919050565b600080fd5b6000819050919050565b6101d8816101c5565b81146101e357600080fd5b50565b6000813590506101f5816101cf565b92915050565b600060208284031215610211576102106101c0565b5b600061021f848285016101e6565b91505092915050565b60008115159050919050565b61023d81610228565b82525050565b60006020820190506102586000830184610234565b92915050565b600082825260208201905092915050565b7f4552524f523a4142432d3030323a415f49535f534d414c4c4552000000000000600082015250565b60006102a5601a8361025e565b91506102b08261026f565b602082019050919050565b600060208201905081810360008301526102d481610298565b9050919050565b7f4552524f523a4142432d30303100000000000000000000000000000000000000600082015250565b6000610311600d8361025e565b915061031c826102db565b602082019050919050565b6000602082019050818103600083015261034081610304565b9050919050565b7f4552524f523a4142432d3030333a415f49535f534d414c4c45525f5448414e5f60008201527f4200000000000000000000000000000000000000000000000000000000000000602082015250565b60006103a360218361025e565b91506103ae82610347565b604082019050919050565b600060208201905081810360008301526103d281610396565b905091905056fea26469706673582212207f10bf5c332235128519fa30412afeef48946f8606b398b2fed02edcd66fa75164736f6c63430008140033",
101
+ "bytecode": "0x608060405234801561001057600080fd5b50602a6000556101df806100256000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806342bf62e0146100465780638db581aa1461006d57806394977ddd14610080575b600080fd5b610059610054366004610190565b610093565b604051901515815260200160405180910390f35b61005961007b366004610190565b6100f2565b61005961008e366004610190565b610134565b6000805482116100ea5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4142432d3030323a415f49535f534d414c4c455200000000000060448201526064015b60405180910390fd5b506001919050565b6000805482116100ea5760405162461bcd60e51b815260206004820152600d60248201526c4552524f523a4142432d30303160981b60448201526064016100e1565b6000805482116100ea5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4142432d3030333a415f49535f534d414c4c45525f5448414e5f6044820152602160f91b60648201526084016100e1565b6000602082840312156101a257600080fd5b503591905056fea2646970667358221220572bbc4b1e30046ddb065771b03fa96e34255214cd346e350172d87d56991ba064736f6c63430008140033",
102
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806342bf62e0146100465780638db581aa1461006d57806394977ddd14610080575b600080fd5b610059610054366004610190565b610093565b604051901515815260200160405180910390f35b61005961007b366004610190565b6100f2565b61005961008e366004610190565b610134565b6000805482116100ea5760405162461bcd60e51b815260206004820152601a60248201527f4552524f523a4142432d3030323a415f49535f534d414c4c455200000000000060448201526064015b60405180910390fd5b506001919050565b6000805482116100ea5760405162461bcd60e51b815260206004820152600d60248201526c4552524f523a4142432d30303160981b60448201526064016100e1565b6000805482116100ea5760405162461bcd60e51b815260206004820152602160248201527f4552524f523a4142432d3030333a415f49535f534d414c4c45525f5448414e5f6044820152602160f91b60648201526084016100e1565b6000602082840312156101a257600080fd5b503591905056fea2646970667358221220572bbc4b1e30046ddb065771b03fa96e34255214cd346e350172d87d56991ba064736f6c63430008140033",
103
103
  "linkReferences": {},
104
104
  "deployedLinkReferences": {}
105
105
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/ddbd31d07c8880f0f0a18b3f2b9bcc56.json"
3
+ "buildInfo": "../../../../build-info/b0463691af8f7fdd39ae65ce29b66f86.json"
4
4
  }
@@ -98,8 +98,8 @@
98
98
  "type": "function"
99
99
  }
100
100
  ],
101
- "bytecode": "0x608060405234801561001057600080fd5b50602a6000819055506102e6806100286000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806312eee592146100465780638997f3ee14610076578063d0e7624f146100a6575b600080fd5b610060600480360381019061005b91906101fa565b6100d6565b60405161006d9190610242565b60405180910390f35b610090600480360381019061008b91906101fa565b61012a565b60405161009d9190610242565b60405180910390f35b6100c060048036038101906100bb91906101fa565b61017a565b6040516100cd9190610242565b60405180910390f35b60008054821161012157816000546040517fb0d3ec1d00000000000000000000000000000000000000000000000000000000815260040161011892919061026c565b60405180910390fd5b60019050919050565b60008054821161017157816040517f27e078bc0000000000000000000000000000000000000000000000000000000081526004016101689190610295565b60405180910390fd5b60019050919050565b6000805482116101b6576040517f359a43a800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60019050919050565b600080fd5b6000819050919050565b6101d7816101c4565b81146101e257600080fd5b50565b6000813590506101f4816101ce565b92915050565b6000602082840312156102105761020f6101bf565b5b600061021e848285016101e5565b91505092915050565b60008115159050919050565b61023c81610227565b82525050565b60006020820190506102576000830184610233565b92915050565b610266816101c4565b82525050565b6000604082019050610281600083018561025d565b61028e602083018461025d565b9392505050565b60006020820190506102aa600083018461025d565b9291505056fea2646970667358221220a7128053515b503c86f1b60e9db1d8c60a71200b780d3d24fb0040141e911bbe64736f6c63430008140033",
102
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806312eee592146100465780638997f3ee14610076578063d0e7624f146100a6575b600080fd5b610060600480360381019061005b91906101fa565b6100d6565b60405161006d9190610242565b60405180910390f35b610090600480360381019061008b91906101fa565b61012a565b60405161009d9190610242565b60405180910390f35b6100c060048036038101906100bb91906101fa565b61017a565b6040516100cd9190610242565b60405180910390f35b60008054821161012157816000546040517fb0d3ec1d00000000000000000000000000000000000000000000000000000000815260040161011892919061026c565b60405180910390fd5b60019050919050565b60008054821161017157816040517f27e078bc0000000000000000000000000000000000000000000000000000000081526004016101689190610295565b60405180910390fd5b60019050919050565b6000805482116101b6576040517f359a43a800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60019050919050565b600080fd5b6000819050919050565b6101d7816101c4565b81146101e257600080fd5b50565b6000813590506101f4816101ce565b92915050565b6000602082840312156102105761020f6101bf565b5b600061021e848285016101e5565b91505092915050565b60008115159050919050565b61023c81610227565b82525050565b60006020820190506102576000830184610233565b92915050565b610266816101c4565b82525050565b6000604082019050610281600083018561025d565b61028e602083018461025d565b9392505050565b60006020820190506102aa600083018461025d565b9291505056fea2646970667358221220a7128053515b503c86f1b60e9db1d8c60a71200b780d3d24fb0040141e911bbe64736f6c63430008140033",
101
+ "bytecode": "0x608060405234801561001057600080fd5b50602a60005561016d806100256000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806312eee592146100465780638997f3ee1461006d578063d0e7624f14610080575b600080fd5b61005961005436600461011e565b610093565b604051901515815260200160405180910390f35b61005961007b36600461011e565b6100d5565b61005961008e36600461011e565b6100fb565b6000805482116100cd5760005460405163b0d3ec1d60e01b81526100c4918491600401918252602082015260400190565b60405180910390fd5b506001919050565b6000805482116100cd576040516309f81e2f60e21b8152600481018390526024016100c4565b6000805482116100cd576040516306b3487560e31b815260040160405180910390fd5b60006020828403121561013057600080fd5b503591905056fea2646970667358221220971ee831490ff41fe8f688c6304beb1d7f3abc7460ef1bce5fe4620a30a6068364736f6c63430008140033",
102
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806312eee592146100465780638997f3ee1461006d578063d0e7624f14610080575b600080fd5b61005961005436600461011e565b610093565b604051901515815260200160405180910390f35b61005961007b36600461011e565b6100d5565b61005961008e36600461011e565b6100fb565b6000805482116100cd5760005460405163b0d3ec1d60e01b81526100c4918491600401918252602082015260400190565b60405180910390fd5b506001919050565b6000805482116100cd576040516309f81e2f60e21b8152600481018390526024016100c4565b6000805482116100cd576040516306b3487560e31b815260040160405180910390fd5b60006020828403121561013057600080fd5b503591905056fea2646970667358221220971ee831490ff41fe8f688c6304beb1d7f3abc7460ef1bce5fe4620a30a6068364736f6c63430008140033",
103
103
  "linkReferences": {},
104
104
  "deployedLinkReferences": {}
105
105
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/ddbd31d07c8880f0f0a18b3f2b9bcc56.json"
3
+ "buildInfo": "../../../../build-info/b0463691af8f7fdd39ae65ce29b66f86.json"
4
4
  }
@@ -121,8 +121,8 @@
121
121
  "type": "function"
122
122
  }
123
123
  ],
124
- "bytecode": "0x608060405234801561001057600080fd5b50602a600081905550600180819055506002808190555061044c806100366000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063d46300fd11610066578063d46300fd1461010e578063d4febc861461012c578063e2c11f201461014a578063ee919d5014610168578063eeb4914e1461018457610093565b806309cdcf9b14610098578063a1c51915146100b4578063a2375d1e146100d2578063b9c23ae9146100f0575b600080fd5b6100b260048036038101906100ad919061037d565b6101a0565b005b6100bc6101aa565b6040516100c991906103b9565b60405180910390f35b6100da6101b4565b6040516100e791906103b9565b60405180910390f35b6100f86101be565b60405161010591906103b9565b60405180910390f35b610116610239565b60405161012391906103b9565b60405180910390f35b610134610242565b60405161014191906103b9565b60405180910390f35b6101526102b8565b60405161015f91906103b9565b60405180910390f35b610182600480360381019061017d919061037d565b61032e565b005b61019e6004803603810190610199919061037d565b610338565b005b8060018190555050565b6000600154905090565b6000600254905090565b6000803090508073ffffffffffffffffffffffffffffffffffffffff1663a1c519156040518163ffffffff1660e01b8152600401602060405180830381865afa15801561020f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023391906103e9565b91505090565b60008054905090565b60003073ffffffffffffffffffffffffffffffffffffffff1663d46300fd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561028f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b391906103e9565b905090565b60003073ffffffffffffffffffffffffffffffffffffffff1663d46300fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610305573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032991906103e9565b905090565b8060008190555050565b8060028190555050565b600080fd5b6000819050919050565b61035a81610347565b811461036557600080fd5b50565b60008135905061037781610351565b92915050565b60006020828403121561039357610392610342565b5b60006103a184828501610368565b91505092915050565b6103b381610347565b82525050565b60006020820190506103ce60008301846103aa565b92915050565b6000815190506103e381610351565b92915050565b6000602082840312156103ff576103fe610342565b5b600061040d848285016103d4565b9150509291505056fea26469706673582212200822a5cd261bc2a17ee561c10fa83cacacfba7e669da775b3aa60003d8f9ffb764736f6c63430008140033",
125
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063d46300fd11610066578063d46300fd1461010e578063d4febc861461012c578063e2c11f201461014a578063ee919d5014610168578063eeb4914e1461018457610093565b806309cdcf9b14610098578063a1c51915146100b4578063a2375d1e146100d2578063b9c23ae9146100f0575b600080fd5b6100b260048036038101906100ad919061037d565b6101a0565b005b6100bc6101aa565b6040516100c991906103b9565b60405180910390f35b6100da6101b4565b6040516100e791906103b9565b60405180910390f35b6100f86101be565b60405161010591906103b9565b60405180910390f35b610116610239565b60405161012391906103b9565b60405180910390f35b610134610242565b60405161014191906103b9565b60405180910390f35b6101526102b8565b60405161015f91906103b9565b60405180910390f35b610182600480360381019061017d919061037d565b61032e565b005b61019e6004803603810190610199919061037d565b610338565b005b8060018190555050565b6000600154905090565b6000600254905090565b6000803090508073ffffffffffffffffffffffffffffffffffffffff1663a1c519156040518163ffffffff1660e01b8152600401602060405180830381865afa15801561020f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061023391906103e9565b91505090565b60008054905090565b60003073ffffffffffffffffffffffffffffffffffffffff1663d46300fd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561028f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b391906103e9565b905090565b60003073ffffffffffffffffffffffffffffffffffffffff1663d46300fd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610305573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032991906103e9565b905090565b8060008190555050565b8060028190555050565b600080fd5b6000819050919050565b61035a81610347565b811461036557600080fd5b50565b60008135905061037781610351565b92915050565b60006020828403121561039357610392610342565b5b60006103a184828501610368565b91505092915050565b6103b381610347565b82525050565b60006020820190506103ce60008301846103aa565b92915050565b6000815190506103e381610351565b92915050565b6000602082840312156103ff576103fe610342565b5b600061040d848285016103d4565b9150509291505056fea26469706673582212200822a5cd261bc2a17ee561c10fa83cacacfba7e669da775b3aa60003d8f9ffb764736f6c63430008140033",
124
+ "bytecode": "0x608060405234801561001057600080fd5b50602a60005560018055600280556102488061002d6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063d46300fd11610066578063d46300fd146100d3578063d4febc86146100db578063e2c11f20146100db578063ee919d50146100e3578063eeb4914e146100f657600080fd5b806309cdcf9b14610098578063a1c51915146100ad578063a2375d1e146100c3578063b9c23ae9146100cb575b600080fd5b6100ab6100a63660046101e0565b600155565b005b6001545b60405190815260200160405180910390f35b6002546100b1565b6100b1610109565b6000546100b1565b6100b1610177565b6100ab6100f13660046101e0565b600055565b6100ab6101043660046101e0565b600255565b600080309050806001600160a01b031663a1c519156040518163ffffffff1660e01b8152600401602060405180830381865afa15801561014d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017191906101f9565b91505090565b6000306001600160a01b031663d46300fd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101db91906101f9565b905090565b6000602082840312156101f257600080fd5b5035919050565b60006020828403121561020b57600080fd5b505191905056fea26469706673582212209f0222d418abde01d04d1e182c58ee620abbe0d402c527a3397b73f7c260f81b64736f6c63430008140033",
125
+ "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c8063d46300fd11610066578063d46300fd146100d3578063d4febc86146100db578063e2c11f20146100db578063ee919d50146100e3578063eeb4914e146100f657600080fd5b806309cdcf9b14610098578063a1c51915146100ad578063a2375d1e146100c3578063b9c23ae9146100cb575b600080fd5b6100ab6100a63660046101e0565b600155565b005b6001545b60405190815260200160405180910390f35b6002546100b1565b6100b1610109565b6000546100b1565b6100b1610177565b6100ab6100f13660046101e0565b600055565b6100ab6101043660046101e0565b600255565b600080309050806001600160a01b031663a1c519156040518163ffffffff1660e01b8152600401602060405180830381865afa15801561014d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061017191906101f9565b91505090565b6000306001600160a01b031663d46300fd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156101b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101db91906101f9565b905090565b6000602082840312156101f257600080fd5b5035919050565b60006020828403121561020b57600080fd5b505191905056fea26469706673582212209f0222d418abde01d04d1e182c58ee620abbe0d402c527a3397b73f7c260f81b64736f6c63430008140033",
126
126
  "linkReferences": {},
127
127
  "deployedLinkReferences": {}
128
128
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/ddbd31d07c8880f0f0a18b3f2b9bcc56.json"
3
+ "buildInfo": "../../../../build-info/b0463691af8f7fdd39ae65ce29b66f86.json"
4
4
  }
@@ -35,8 +35,8 @@
35
35
  "type": "function"
36
36
  }
37
37
  ],
38
- "bytecode": "0x608060405234801561001057600080fd5b50602a600081905550610150806100286000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063d46300fd1461003b578063ee919d5014610059575b600080fd5b610043610075565b60405161005091906100a1565b60405180910390f35b610073600480360381019061006e91906100ed565b61007e565b005b60008054905090565b8060008190555050565b6000819050919050565b61009b81610088565b82525050565b60006020820190506100b66000830184610092565b92915050565b600080fd5b6100ca81610088565b81146100d557600080fd5b50565b6000813590506100e7816100c1565b92915050565b600060208284031215610103576101026100bc565b5b6000610111848285016100d8565b9150509291505056fea26469706673582212206d56c21d2bb9d2dbb8aa9d25a622dbf82b94db280f0ced2200cafed7178c913764736f6c63430008140033",
39
- "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063d46300fd1461003b578063ee919d5014610059575b600080fd5b610043610075565b60405161005091906100a1565b60405180910390f35b610073600480360381019061006e91906100ed565b61007e565b005b60008054905090565b8060008190555050565b6000819050919050565b61009b81610088565b82525050565b60006020820190506100b66000830184610092565b92915050565b600080fd5b6100ca81610088565b81146100d557600080fd5b50565b6000813590506100e7816100c1565b92915050565b600060208284031215610103576101026100bc565b5b6000610111848285016100d8565b9150509291505056fea26469706673582212206d56c21d2bb9d2dbb8aa9d25a622dbf82b94db280f0ced2200cafed7178c913764736f6c63430008140033",
38
+ "bytecode": "0x608060405234801561001057600080fd5b50602a60005560ac806100246000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c8063d46300fd146037578063ee919d5014604c575b600080fd5b60005460405190815260200160405180910390f35b605c6057366004605e565b600055565b005b600060208284031215606f57600080fd5b503591905056fea26469706673582212205368bc3fa78bd92d791aba3d469035cccfe59767c9c43ee03454d08de90a6d5264736f6c63430008140033",
39
+ "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060325760003560e01c8063d46300fd146037578063ee919d5014604c575b600080fd5b60005460405190815260200160405180910390f35b605c6057366004605e565b600055565b005b600060208284031215606f57600080fd5b503591905056fea26469706673582212205368bc3fa78bd92d791aba3d469035cccfe59767c9c43ee03454d08de90a6d5264736f6c63430008140033",
40
40
  "linkReferences": {},
41
41
  "deployedLinkReferences": {}
42
42
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/ddbd31d07c8880f0f0a18b3f2b9bcc56.json"
3
+ "buildInfo": "../../../../build-info/b0463691af8f7fdd39ae65ce29b66f86.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../build-info/ddbd31d07c8880f0f0a18b3f2b9bcc56.json"
3
+ "buildInfo": "../../../../build-info/b0463691af8f7fdd39ae65ce29b66f86.json"
4
4
  }