@etherisc/gif-next 0.0.2-c576a00-897 → 0.0.2-c5c9395-682

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 (503) hide show
  1. package/README.md +262 -20
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +4 -0
  3. package/artifacts/contracts/components/Component.sol/Component.json +842 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +1329 -0
  6. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +4 -0
  7. package/artifacts/contracts/components/IComponent.sol/IComponent.json +605 -0
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +969 -0
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +823 -115
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +608 -57
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +1132 -143
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +967 -105
  18. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  19. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
  20. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  21. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
  22. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +4 -0
  23. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +190 -0
  24. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  25. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1501 -1151
  26. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +633 -0
  28. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  29. package/artifacts/contracts/instance/Instance.sol/Instance.json +2094 -1242
  30. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +1330 -0
  32. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  33. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1289 -0
  34. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  35. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1179 -0
  36. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +741 -0
  38. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +256 -0
  40. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +4 -0
  41. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +607 -0
  42. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  43. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +429 -0
  44. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  45. package/artifacts/contracts/instance/{module/lifecycle/ILifecycle.sol/ILifecycleModule.json → base/ILifecycle.sol/ILifecycle.json} +10 -77
  46. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  47. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +532 -0
  48. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  49. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +194 -0
  50. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  51. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +237 -0
  52. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  53. package/artifacts/contracts/{experiment/kvstore → instance/module}/IBundle.sol/IBundle.json +1 -1
  54. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  55. package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IComponents.sol/IComponents.json} +2 -2
  56. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  57. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  58. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  59. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  60. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  61. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  62. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +4 -0
  63. package/artifacts/contracts/instance/module/{bundle/IBundle.sol/IBundle.json → ISetup.sol/ISetup.json} +2 -2
  64. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +4 -0
  65. package/artifacts/contracts/instance/module/{treasury/ITreasury.sol → ITreasury.sol}/ITreasury.json +1 -1
  66. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  67. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +1039 -0
  68. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  69. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +673 -0
  70. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +4 -0
  71. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +1231 -0
  72. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  73. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +721 -0
  74. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
  75. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +817 -0
  76. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +641 -0
  78. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  79. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +1798 -0
  80. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +805 -0
  82. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  83. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +622 -0
  84. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +4 -0
  85. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +659 -0
  86. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
  87. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +475 -0
  88. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  89. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +1090 -0
  90. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  91. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +606 -0
  92. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  93. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +577 -109
  94. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  95. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +186 -213
  96. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +4 -0
  97. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +1092 -0
  98. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +697 -0
  100. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  101. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +965 -199
  102. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  103. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +661 -0
  104. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  105. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +460 -293
  106. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  107. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +653 -0
  108. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  109. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +199 -12
  110. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  111. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +485 -34
  112. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  113. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +866 -0
  114. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  115. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  116. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  117. package/artifacts/contracts/registry/Registry.sol/Registry.json +487 -101
  118. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +4 -0
  119. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +285 -0
  120. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  121. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1158 -0
  122. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +670 -0
  124. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  125. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +559 -0
  126. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  127. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +498 -0
  128. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
  129. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
  130. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  131. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  132. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  133. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +38 -74
  134. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  135. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +129 -0
  136. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  137. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +100 -33
  138. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  139. package/artifacts/contracts/{experiment/inheritance/IB.sol/IB.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +18 -20
  140. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  141. package/artifacts/contracts/{instance/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +164 -142
  142. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  143. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +16 -125
  144. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  145. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +251 -0
  146. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  147. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +248 -0
  148. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  149. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +582 -0
  150. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  151. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +256 -25
  152. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  153. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +84 -0
  154. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  155. package/artifacts/contracts/{registry/IChainNft.sol/IChainNft.json → shared/Service.sol/Service.json} +261 -217
  156. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  157. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +96 -0
  158. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  159. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  160. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  161. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +29 -115
  162. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  163. package/artifacts/contracts/test/TestFee.sol/TestFee.json +10 -10
  164. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  165. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +272 -26
  166. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  167. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +44 -10
  168. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  169. package/artifacts/contracts/test/TestService.sol/TestService.json +347 -130
  170. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  171. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +91 -53
  172. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  173. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +12 -12
  174. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  175. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +38 -140
  176. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +4 -0
  177. package/artifacts/contracts/test/Usdc.sol/USDC.json +376 -0
  178. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  179. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +2 -2
  180. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +4 -0
  181. package/artifacts/contracts/types/Amount.sol/AmountLib.json +161 -0
  182. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  183. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -40
  184. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  185. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +2 -2
  186. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  187. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +100 -0
  188. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  189. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +104 -0
  190. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  191. package/artifacts/contracts/types/Fee.sol/FeeLib.json +84 -14
  192. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
  193. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +125 -0
  194. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  195. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +78 -4
  196. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  197. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +26 -3
  198. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +4 -0
  199. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +100 -0
  200. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  201. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  202. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  203. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +100 -0
  204. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +4 -0
  205. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +142 -0
  206. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  207. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  208. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
  209. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +156 -0
  210. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +4 -0
  211. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
  212. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  213. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  214. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  215. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +38 -7
  216. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +4 -0
  217. package/artifacts/contracts/types/UFixed.sol/MathLib.json +10 -0
  218. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +4 -0
  219. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +479 -0
  220. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  221. package/artifacts/contracts/types/Version.sol/VersionLib.json +40 -2
  222. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  223. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +22 -3
  224. package/contracts/components/Component.sol +253 -0
  225. package/contracts/components/Distribution.sol +280 -0
  226. package/contracts/components/IComponent.sol +76 -0
  227. package/contracts/components/IDistributionComponent.sol +71 -0
  228. package/contracts/components/IPoolComponent.sol +98 -42
  229. package/contracts/components/IProductComponent.sol +30 -9
  230. package/contracts/components/Pool.sol +238 -109
  231. package/contracts/components/Product.sol +218 -42
  232. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
  233. package/contracts/instance/BundleManager.sol +127 -0
  234. package/contracts/instance/Cloneable.sol +51 -0
  235. package/contracts/instance/IInstance.sol +87 -42
  236. package/contracts/instance/IInstanceService.sol +72 -0
  237. package/contracts/instance/Instance.sol +311 -50
  238. package/contracts/instance/InstanceAccessManager.sol +527 -0
  239. package/contracts/instance/InstanceReader.sol +291 -0
  240. package/contracts/instance/InstanceService.sol +495 -0
  241. package/contracts/instance/InstanceServiceManager.sol +54 -0
  242. package/contracts/instance/ObjectManager.sol +82 -0
  243. package/contracts/instance/base/ComponentService.sol +121 -0
  244. package/contracts/instance/base/IKeyValueStore.sol +49 -0
  245. package/contracts/instance/base/ILifecycle.sol +30 -0
  246. package/contracts/instance/base/KeyValueStore.sol +180 -0
  247. package/contracts/instance/base/Lifecycle.sol +109 -0
  248. package/contracts/instance/module/IAccess.sol +54 -0
  249. package/contracts/instance/module/IBundle.sol +23 -0
  250. package/contracts/instance/module/IComponents.sol +41 -0
  251. package/contracts/instance/module/IDistribution.sol +41 -0
  252. package/contracts/instance/module/IPolicy.sol +72 -0
  253. package/contracts/instance/module/IRisk.sol +11 -0
  254. package/contracts/instance/module/ISetup.sol +33 -0
  255. package/contracts/instance/module/ITreasury.sol +23 -0
  256. package/contracts/instance/service/ApplicationService.sol +350 -0
  257. package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
  258. package/contracts/instance/service/BundleService.sol +431 -0
  259. package/contracts/instance/service/BundleServiceManager.sol +51 -0
  260. package/contracts/instance/service/ClaimService.sol +151 -0
  261. package/contracts/instance/service/ClaimServiceManager.sol +35 -0
  262. package/contracts/instance/service/DistributionService.sol +435 -0
  263. package/contracts/instance/service/DistributionServiceManager.sol +51 -0
  264. package/contracts/instance/service/IApplicationService.sol +82 -0
  265. package/contracts/instance/service/IBundleService.sol +93 -0
  266. package/contracts/instance/service/IClaimService.sol +61 -0
  267. package/contracts/instance/service/IDistributionService.sol +99 -0
  268. package/contracts/instance/service/IPolicyService.sol +72 -0
  269. package/contracts/instance/service/IPoolService.sol +81 -12
  270. package/contracts/instance/service/IProductService.sol +21 -39
  271. package/contracts/instance/service/PolicyService.sol +362 -0
  272. package/contracts/instance/service/PolicyServiceManager.sol +54 -0
  273. package/contracts/instance/service/PoolService.sol +249 -69
  274. package/contracts/instance/service/PoolServiceManager.sol +51 -0
  275. package/contracts/instance/service/ProductService.sol +147 -292
  276. package/contracts/instance/service/ProductServiceManager.sol +54 -0
  277. package/contracts/registry/ChainNft.sol +87 -36
  278. package/contracts/registry/IRegistry.sol +68 -24
  279. package/contracts/registry/IRegistryService.sol +68 -0
  280. package/contracts/registry/ITransferInterceptor.sol +7 -0
  281. package/contracts/registry/Registry.sol +372 -286
  282. package/contracts/registry/RegistryAccessManager.sol +216 -0
  283. package/contracts/registry/RegistryService.sol +282 -0
  284. package/contracts/registry/RegistryServiceManager.sol +62 -0
  285. package/contracts/registry/ReleaseManager.sol +324 -0
  286. package/contracts/registry/TokenRegistry.sol +116 -0
  287. package/contracts/shared/ContractDeployerLib.sol +72 -0
  288. package/contracts/shared/ERC165.sol +14 -8
  289. package/contracts/shared/INftOwnable.sol +23 -0
  290. package/contracts/shared/IPolicyHolder.sol +26 -0
  291. package/contracts/shared/IRegisterable.sol +10 -19
  292. package/contracts/shared/IRegistryLinked.sol +12 -0
  293. package/contracts/shared/IService.sol +16 -0
  294. package/contracts/shared/IVersionable.sol +38 -37
  295. package/contracts/shared/NftOwnable.sol +120 -0
  296. package/contracts/shared/PolicyHolder.sol +81 -0
  297. package/contracts/shared/ProxyManager.sol +169 -0
  298. package/contracts/shared/Registerable.sol +54 -66
  299. package/contracts/shared/RegistryLinked.sol +48 -0
  300. package/contracts/shared/Service.sol +72 -0
  301. package/contracts/shared/TokenHandler.sol +33 -0
  302. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  303. package/contracts/shared/Versionable.sol +38 -68
  304. package/contracts/test/TestFee.sol +2 -2
  305. package/contracts/test/TestRegisterable.sol +5 -6
  306. package/contracts/test/TestRoleId.sol +2 -2
  307. package/contracts/test/TestService.sol +7 -14
  308. package/contracts/test/Usdc.sol +26 -0
  309. package/contracts/types/Amount.sol +60 -0
  310. package/contracts/types/Blocknumber.sol +1 -16
  311. package/contracts/types/ClaimId.sol +52 -0
  312. package/contracts/types/DistributorType.sol +55 -0
  313. package/contracts/types/Fee.sol +22 -9
  314. package/contracts/types/Key32.sol +50 -0
  315. package/contracts/types/NftId.sol +24 -1
  316. package/contracts/types/NftIdSet.sol +26 -24
  317. package/contracts/types/NumberId.sol +52 -0
  318. package/contracts/types/ObjectType.sol +53 -15
  319. package/contracts/types/PayoutId.sol +54 -0
  320. package/contracts/types/Referral.sol +89 -0
  321. package/contracts/types/RiskId.sol +24 -7
  322. package/contracts/types/RoleId.sol +72 -11
  323. package/contracts/types/Seconds.sol +54 -0
  324. package/contracts/types/StateId.sol +13 -2
  325. package/contracts/types/Timestamp.sol +17 -13
  326. package/contracts/types/UFixed.sol +145 -25
  327. package/contracts/types/Version.sol +14 -1
  328. package/package.json +9 -5
  329. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  330. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  331. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  332. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  333. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  334. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  335. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  336. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  337. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  338. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  339. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  340. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  341. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  342. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  343. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  344. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  345. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  346. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  347. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  348. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  349. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  350. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  351. package/artifacts/contracts/experiment/kvstore/BundleModuleStore.sol/BundleModuleStore.dbg.json +0 -4
  352. package/artifacts/contracts/experiment/kvstore/BundleModuleStore.sol/BundleModuleStore.json +0 -543
  353. package/artifacts/contracts/experiment/kvstore/IBundle.sol/IBundle.dbg.json +0 -4
  354. package/artifacts/contracts/experiment/kvstore/KeyMapper.sol/KeyMapper.dbg.json +0 -4
  355. package/artifacts/contracts/experiment/kvstore/KeyMapper.sol/KeyMapper.json +0 -185
  356. package/artifacts/contracts/experiment/kvstore/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  357. package/artifacts/contracts/experiment/kvstore/KeyValueStore.sol/KeyValueStore.json +0 -383
  358. package/artifacts/contracts/experiment/kvstore/KvStore.sol/KvStore.dbg.json +0 -4
  359. package/artifacts/contracts/experiment/kvstore/KvStore.sol/KvStore.json +0 -1064
  360. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  361. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  362. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  363. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  364. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  365. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  366. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  367. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  368. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  369. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  370. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  371. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  372. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  373. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  374. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  375. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  376. package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.dbg.json +0 -4
  377. package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.json +0 -50
  378. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  379. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  380. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  381. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  382. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  383. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  384. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  385. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -276
  386. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  387. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  388. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -276
  389. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  390. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  391. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  392. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  393. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  394. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  395. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  396. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -188
  397. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  398. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  399. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  400. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -188
  401. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  402. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
  403. package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
  404. package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
  405. package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
  406. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  407. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  408. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -261
  409. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  410. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -261
  411. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  412. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  413. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  414. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
  415. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  416. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
  417. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  418. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  419. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -167
  420. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  421. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -185
  422. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  423. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  424. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -533
  425. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  426. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  427. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  428. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -533
  429. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  430. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -491
  431. package/artifacts/contracts/instance/service/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  432. package/artifacts/contracts/instance/service/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  433. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  434. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -364
  435. package/artifacts/contracts/instance/service/IService.sol/IService.dbg.json +0 -4
  436. package/artifacts/contracts/instance/service/IService.sol/IService.json +0 -300
  437. package/artifacts/contracts/instance/service/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  438. package/artifacts/contracts/instance/service/ServiceBase.sol/ServiceBase.json +0 -300
  439. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  440. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  441. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
  442. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  443. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  444. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  445. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
  446. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  447. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
  448. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  449. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -453
  450. package/contracts/components/BaseComponent.sol +0 -89
  451. package/contracts/components/IBaseComponent.sol +0 -19
  452. package/contracts/experiment/errors/Require.sol +0 -38
  453. package/contracts/experiment/errors/Revert.sol +0 -44
  454. package/contracts/experiment/inheritance/A.sol +0 -53
  455. package/contracts/experiment/inheritance/B.sol +0 -28
  456. package/contracts/experiment/inheritance/C.sol +0 -34
  457. package/contracts/experiment/inheritance/IA.sol +0 -13
  458. package/contracts/experiment/inheritance/IB.sol +0 -10
  459. package/contracts/experiment/inheritance/IC.sol +0 -12
  460. package/contracts/experiment/kvstore/BundleModuleStore.sol +0 -93
  461. package/contracts/experiment/kvstore/IBundle.sol +0 -22
  462. package/contracts/experiment/kvstore/KeyMapper.sol +0 -40
  463. package/contracts/experiment/kvstore/KeyValueStore.sol +0 -156
  464. package/contracts/experiment/kvstore/KvStore.sol +0 -195
  465. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  466. package/contracts/experiment/statemachine/ISM.sol +0 -25
  467. package/contracts/experiment/statemachine/README.md +0 -112
  468. package/contracts/experiment/statemachine/SM.sol +0 -57
  469. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  470. package/contracts/experiment/types/TypeA.sol +0 -47
  471. package/contracts/experiment/types/TypeB.sol +0 -29
  472. package/contracts/instance/IInstanceLinked.sol +0 -8
  473. package/contracts/instance/IServiceLinked.sol +0 -12
  474. package/contracts/instance/InstanceBase.sol +0 -71
  475. package/contracts/instance/module/access/Access.sol +0 -149
  476. package/contracts/instance/module/access/IAccess.sol +0 -53
  477. package/contracts/instance/module/bundle/BundleModule.sol +0 -228
  478. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  479. package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
  480. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  481. package/contracts/instance/module/component/ComponentModule.sol +0 -103
  482. package/contracts/instance/module/component/IComponent.sol +0 -53
  483. package/contracts/instance/module/lifecycle/ILifecycle.sol +0 -47
  484. package/contracts/instance/module/lifecycle/LifecycleModule.sol +0 -89
  485. package/contracts/instance/module/policy/IPolicy.sol +0 -60
  486. package/contracts/instance/module/policy/PolicyModule.sol +0 -84
  487. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  488. package/contracts/instance/module/pool/PoolModule.sol +0 -87
  489. package/contracts/instance/module/risk/IRisk.sol +0 -39
  490. package/contracts/instance/module/risk/RiskModule.sol +0 -55
  491. package/contracts/instance/module/treasury/ITreasury.sol +0 -103
  492. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  493. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -152
  494. package/contracts/instance/service/ComponentOwnerService.sol +0 -171
  495. package/contracts/instance/service/ComponentServiceBase.sol +0 -41
  496. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  497. package/contracts/instance/service/IService.sol +0 -15
  498. package/contracts/instance/service/ServiceBase.sol +0 -39
  499. package/contracts/registry/IChainNft.sol +0 -21
  500. package/contracts/registry/IRegistryLinked.sol +0 -8
  501. package/contracts/shared/IOwnable.sol +0 -6
  502. package/contracts/test/TestPool.sol +0 -22
  503. package/contracts/test/TestProduct.sol +0 -44
@@ -1,53 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IA, ISharedA} from "./IA.sol";
5
- import {B} from "./B.sol";
6
- import {C} from "./C.sol";
7
-
8
- /*
9
-
10
- # dependency graph
11
-
12
- B <...+
13
- ^ |
14
- | |
15
- A --> C
16
-
17
- - A is the main contract
18
- - A provides functionality implemented by modules B and C
19
- - B and C rely on functionality shared by A
20
- - C accesses functionality of module B
21
-
22
- # chisel session
23
-
24
- import {A} from "./contracts/experiment/A.sol";
25
- A a = new A();
26
- uint(a.getA())
27
- uint(a.getB()))
28
- uint(a.getC())
29
- uint(a.getAfromB())
30
- uint(a.getAfromC())
31
- uint(a.getBfromC())
32
- a.setA(100);
33
- a.setB(10);
34
- a.setC(20);
35
- */
36
-
37
- contract AShared is ISharedA {
38
- uint256 private _x;
39
-
40
- constructor() {
41
- _x = 42;
42
- }
43
-
44
- function getA() external view override returns (uint256) {
45
- return _x;
46
- }
47
-
48
- function setA(uint256 newA) external override {
49
- _x = newA;
50
- }
51
- }
52
-
53
- contract A is AShared, B, C, IA {}
@@ -1,28 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {ISharedA} from "./IA.sol";
5
- import {IB} from "./IB.sol";
6
-
7
- abstract contract B is ISharedA, IB {
8
- // names of private variables can be re-used in inheritance
9
- uint256 private _x;
10
-
11
- constructor() {
12
- _x = 1;
13
- }
14
-
15
- // access own state
16
- function getB() external view override returns (uint256) {
17
- return _x;
18
- }
19
-
20
- function setB(uint256 newB) external override {
21
- _x = newB;
22
- }
23
-
24
- // access state from parent contract A
25
- function getAfromB() external view override returns (uint256) {
26
- return this.getA();
27
- }
28
- }
@@ -1,34 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {ISharedA} from "./IA.sol";
5
- import {IB} from "./IB.sol";
6
- import {IC} from "./IC.sol";
7
-
8
- abstract contract C is ISharedA, IC {
9
- uint256 private _x;
10
-
11
- constructor() {
12
- _x = 2;
13
- }
14
-
15
- // access own state
16
- function getC() external view override returns (uint256) {
17
- return _x;
18
- }
19
-
20
- function setC(uint256 newC) external override {
21
- _x = newC;
22
- }
23
-
24
- // access state from parent contract A
25
- function getAfromC() external view override returns (uint256) {
26
- return this.getA();
27
- }
28
-
29
- // access state from other module B
30
- function getBfromC() external view override returns (uint256) {
31
- IB b = IB(address(this));
32
- return b.getB();
33
- }
34
- }
@@ -1,13 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {IB} from "./IB.sol";
5
- import {IC} from "./IC.sol";
6
-
7
- interface ISharedA {
8
- function getA() external view returns (uint256);
9
-
10
- function setA(uint256 newA) external;
11
- }
12
-
13
- interface IA is ISharedA, IB, IC {}
@@ -1,10 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- interface IB {
5
- function getAfromB() external view returns (uint256);
6
-
7
- function getB() external view returns (uint256);
8
-
9
- function setB(uint256 newA) external;
10
- }
@@ -1,12 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- interface IC {
5
- function getAfromC() external view returns (uint256);
6
-
7
- function getBfromC() external view returns (uint256);
8
-
9
- function getC() external view returns (uint256);
10
-
11
- function setC(uint256 newA) external;
12
- }
@@ -1,93 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- /*
5
-
6
- from test_brownie.util import contract_from_address
7
- fa = {'from': accounts[0]}
8
- nl = NftIdLib.deploy(fa)
9
- tl = TimestampLib.deploy(fa)
10
- bm = BundleModuleStore.deploy(fa)
11
- kv = contract_from_address(KeyValueStore, bm.getStore())
12
-
13
- bi = bm.createBundleInfo(123456, 10**(5+6), kv.s2b('some filter')) # gas: 362979
14
- tx1 = bm.createBundleInfo(bi, fa)
15
-
16
- bi.dict()['lockedAmount'] = 42
17
- tx2 = bm.updateBundleInfo(bi, {'from': accounts[1]})
18
-
19
- bik32 = tx1.return_value
20
- bik = bm.toKey(bik32)
21
-
22
- tx1.info()
23
- tx2.info()
24
-
25
- */
26
-
27
- import {NftId, toNftId} from "../../types/NftId.sol";
28
- import {ObjectType, BUNDLE} from "../../types/ObjectType.sol";
29
- import {StateId, ACTIVE} from "../../types/StateId.sol";
30
- import {Timestamp, blockTimestamp, zeroTimestamp} from "../../types/Timestamp.sol";
31
-
32
- import {IBundle} from "./IBundle.sol";
33
- import {KeyId, KeyMapper} from "./KeyMapper.sol";
34
- import {KeyValueStore} from "./KeyValueStore.sol";
35
-
36
- contract BundleModuleStore is KeyMapper, IBundle {
37
-
38
- KeyValueStore private _store;
39
-
40
- constructor() {
41
- _store = new KeyValueStore();
42
- }
43
-
44
- function createBundleInfo(IBundle.BundleInfo memory info) public returns (bytes32 key) {
45
- key = toBundleKey32(info.nftId);
46
- _store.create(key, BUNDLE(), abi.encode(info));
47
- }
48
-
49
- function updateBundleInfo(IBundle.BundleInfo memory info) public {
50
- bytes32 key = toBundleKey32(info.nftId);
51
- _store.update(key, abi.encode(info));
52
- }
53
-
54
- function getBundleInfo(bytes32 key) public view returns (IBundle.BundleInfo memory) {
55
- bytes memory data = _store.getData(key);
56
- return abi.decode(data, (IBundle.BundleInfo));
57
- }
58
-
59
- function toBundleKey32(NftId bundleNftId) public pure returns (bytes32 key) {
60
- return toKey32(BUNDLE(), toKeyId(bundleNftId));
61
- }
62
-
63
- function toKeyId(NftId nftId) public pure returns (KeyId keyId) {
64
- uint248 intNftId = nftId.toInt();
65
- keyId = KeyId.wrap(bytes31(intNftId));
66
- }
67
-
68
- function createBundleInfo(
69
- uint256 bundleId,
70
- uint256 amount,
71
- bytes calldata filter
72
- )
73
- public
74
- view
75
- returns(IBundle.BundleInfo memory info)
76
- {
77
- uint256 lifetime = 30 * 24 * 3600;
78
- return IBundle.BundleInfo(
79
- toNftId(bundleId),
80
- toNftId(123456),
81
- ACTIVE(),
82
- filter,
83
- amount, // capital amount
84
- 0, // locked amount
85
- amount, // balance
86
- blockTimestamp().addSeconds(lifetime), // expiredAt
87
- zeroTimestamp()); // closedAt
88
- }
89
-
90
- function getStore() public view returns (KeyValueStore) {
91
- return _store;
92
- }
93
- }
@@ -1,22 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {NftId} from "../../types/NftId.sol";
5
- import {StateId} from "../../types/StateId.sol";
6
- import {Timestamp} from "../../types/Timestamp.sol";
7
- import {Blocknumber} from "../../types/Blocknumber.sol";
8
-
9
- interface IBundle {
10
-
11
- struct BundleInfo {
12
- NftId nftId;
13
- NftId poolNftId;
14
- StateId state; // active, paused, closed (expriy only implicit)
15
- bytes filter; // required conditions for applications to be considered for collateralization by this bundle
16
- uint256 capitalAmount; // net investment capital amount (<= balance)
17
- uint256 lockedAmount; // capital amount linked to collateralizaion of non-closed policies (<= balance)
18
- uint256 balanceAmount; // total amount of funds: net investment capital + net premiums - payouts
19
- Timestamp expiredAt; // no new policies
20
- Timestamp closedAt;
21
- }
22
- }
@@ -1,40 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {ObjectType, BUNDLE, RISK} from "../../types/ObjectType.sol";
5
-
6
- type KeyId is bytes31;
7
-
8
- contract KeyMapper {
9
-
10
- uint8 public constant TYPE_SHIFT = 31 * 8;
11
- uint8 public constant ID_SHIFT = uint8(32 * 8 - TYPE_SHIFT);
12
- bytes32 public constant TYPE_MASK = bytes32(bytes1(type(uint8).max)); // first byte in bytes32
13
- bytes32 public constant ID_MASK = bytes32(~TYPE_MASK); // remaining bytes in bytes32
14
-
15
- struct Key {
16
- ObjectType objectType;
17
- KeyId id;
18
- }
19
-
20
- function toKey(ObjectType objectType, KeyId id) public pure returns(Key memory) {
21
- return Key(objectType, id);
22
- }
23
-
24
- function toKey(bytes32 key) public pure returns (Key memory) {
25
- ObjectType objectType = ObjectType.wrap(uint8(uint256(key & TYPE_MASK) >> TYPE_SHIFT));
26
- KeyId id = KeyId.wrap(bytes31((key & ID_MASK) << ID_SHIFT));
27
- return Key(objectType, id);
28
- }
29
-
30
- function toKey32(Key memory key) public pure returns(bytes32) {
31
- return toKey32(key.objectType, key.id);
32
- }
33
-
34
- function toKey32(ObjectType objectType, KeyId id) public pure returns(bytes32) {
35
- uint256 uintObjectType = ObjectType.unwrap(objectType);
36
- uint256 uintId = uint248(KeyId.unwrap(id));
37
- uint256 uintKey = (uintObjectType << TYPE_SHIFT) + uintId;
38
- return bytes32(uintKey);
39
- }
40
- }
@@ -1,156 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- /*
5
-
6
- fa = {'from': accounts[0]}
7
- tl = TimestampLib.deploy(fa)
8
- kv = KeyValueStore.deploy(fa)
9
-
10
- pk = kv.s2k('policy key 1')
11
- pd = kv.s2b('policy info data 1.a')
12
-
13
- rk = kv.s2k('risk key 1')
14
- rd = kv.s2b('risk info data 1.a')
15
-
16
- kv.exists(pk)
17
- ptx = kv.create(pk, kv.policy(), pd)
18
- rtx = kv.create(rk, kv.policy(), rd)
19
- kv.exists(pk)
20
- kv.get(pk)
21
-
22
- kv.b2s(kv.getData(pk))
23
-
24
- pd1b = kv.s2b('b')
25
- ptxb = kv.update(pk, pd1b, True, True) # gas: 48019, 46428
26
-
27
- pd1c = kv.s2b('c')
28
- ptxc = kv.update(pk, pd1c, True, True) # gas: 43819, 42228
29
-
30
- pd1d = kv.s2b('d')
31
- ptxd = kv.update(pk, pd1d, True, False) # gas: 32655, 32699
32
-
33
- pd1e = kv.s2b('e')
34
- ptxe = kv.update(pk, pd1e, False, True) # gas: 34525, 34575
35
-
36
- pd1f = kv.s2b('f')
37
- ptxf = kv.update(pk, pd1f, False, False) # gas: 32638, 32682
38
-
39
- pd1g = kv.s2b('g')
40
- ptxg = kv.update(pk, pd1f, True, True, True, False) # gas:
41
-
42
-
43
-
44
- */
45
-
46
- type KeyId is bytes32;
47
-
48
- import {ObjectType, RISK, POLICY} from "../../types/ObjectType.sol";
49
- import {Timestamp, blockTimestamp, zeroTimestamp} from "../../types/Timestamp.sol";
50
- import {Blocknumber, blockBlocknumber, zeroBlocknumber} from "../../types/Blocknumber.sol";
51
-
52
- contract KeyValueStore {
53
-
54
- event LogInfoCreated(bytes32 key, ObjectType objectType, address createdBy);
55
- event LogInfoUpdated(bytes32 key, ObjectType objectType, address updatedBy, Blocknumber lastUpdateIn);
56
-
57
- struct Metadata {
58
- ObjectType objectType;
59
- address updatedBy;
60
- Blocknumber updatedIn;
61
- Blocknumber createdIn;
62
- }
63
-
64
- struct Value {
65
- Metadata metadata;
66
- bytes data;
67
- }
68
-
69
- mapping(bytes32 key => Value value) private _value;
70
- bytes32[] private _keys;
71
-
72
- // key store functions
73
- function create(bytes32 key, ObjectType objectType, bytes memory data) public {
74
- Metadata storage metadata = _value[key].metadata;
75
- require(metadata.updatedBy == address(0), "ERROR_ALREADY_CREATED");
76
-
77
- address createdBy = msg.sender;
78
- Blocknumber blocknumber = blockBlocknumber();
79
- metadata.objectType = objectType;
80
- metadata.updatedBy = createdBy;
81
- metadata.updatedIn = blocknumber;
82
- metadata.createdIn = blocknumber;
83
-
84
- _value[key].data = data;
85
- _keys.push(key);
86
-
87
- emit LogInfoCreated(key, objectType, createdBy);
88
- }
89
-
90
- function update(bytes32 key, bytes memory data) public {
91
- update(key, data, true, true);
92
- }
93
-
94
- function update(bytes32 key, bytes memory data, bool updateMetadata, bool log) public {
95
- _value[key].data = data;
96
- Blocknumber blocknumber = blockBlocknumber();
97
-
98
- if(updateMetadata && log) {
99
- Metadata storage metadata = _value[key].metadata;
100
- require(metadata.updatedBy != address(0), "ERROR_NOT_EXISTING");
101
-
102
- if (log) {
103
- emit LogInfoUpdated(key, metadata.objectType, msg.sender, metadata.updatedIn);
104
- }
105
-
106
- metadata.updatedBy = msg.sender;
107
- metadata.updatedIn = blocknumber;
108
- } else if (log) {
109
- emit LogInfoUpdated(key, POLICY(), msg.sender, blocknumber);
110
- }
111
- }
112
-
113
- function exists(bytes32 key) public view returns (bool) {
114
- return _value[key].metadata.updatedBy != address(0);
115
- }
116
-
117
- function get(bytes32 key) public view returns (Value memory value) {
118
- return _value[key];
119
- }
120
-
121
- function getMetadata(bytes32 key) public view returns (Metadata memory metadata) {
122
- return _value[key].metadata;
123
- }
124
-
125
- function getData(bytes32 key) public view returns (bytes memory data) {
126
- return _value[key].data;
127
- }
128
-
129
- function getKeyCount() public view returns (uint256 keyCount) {
130
- return _keys.length;
131
- }
132
-
133
- function getKey(uint256 index) public view returns (bytes32 key) {
134
- return _keys[index];
135
- }
136
-
137
- function policy() public pure returns (ObjectType) {
138
- return POLICY();
139
- }
140
-
141
- function risk() public pure returns (ObjectType) {
142
- return RISK();
143
- }
144
-
145
- function s2k(string memory s) public pure returns (bytes32 k) {
146
- return keccak256(abi.encodePacked(s));
147
- }
148
-
149
- function s2b(string memory s) public pure returns (bytes memory b) {
150
- return abi.encode(s);
151
- }
152
-
153
- function b2s(bytes memory b) public pure returns (string memory s) {
154
- return abi.decode(b, (string));
155
- }
156
- }
@@ -1,195 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- /*
5
- fa = {'from': accounts[0]}
6
- tl = TimestampLib.deploy(fa)
7
- kv = KvStore.deploy(fa)
8
- r1 = kv.createRiskInfo(kv.s2b('risk spec 1'))
9
- b1 = kv.createBundleInfo(123456, 10000000, kv.s2b('bundle filter 1'))
10
-
11
- (r1k, r1v) = kv.riskInfoToKeyValue(3, r1)
12
-
13
- kv.toKey(r1k)
14
-
15
- */
16
-
17
- import {NftId, toNftId} from "../../types/NftId.sol";
18
- import {RiskId, toRiskId} from "../../types/RiskId.sol";
19
- import {ObjectType, BUNDLE, RISK} from "../../types/ObjectType.sol";
20
- import {VersionPart} from "../../types/Version.sol";
21
- import {StateId, ACTIVE} from "../../types/StateId.sol";
22
- import {Timestamp, blockTimestamp, zeroTimestamp} from "../../types/Timestamp.sol";
23
- import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
24
- import {IBundle} from "./IBundle.sol";
25
- import {IRisk} from "../../instance/module/risk/IRisk.sol";
26
-
27
- type KeyId is bytes31;
28
-
29
- contract KvStore {
30
-
31
- uint8 public constant TYPE_SHIFT = 31 * 8;
32
- bytes32 public constant TYPE_MASK = bytes32(bytes1(type(uint8).max)); // first byte in bytes32
33
- bytes32 public constant ID_MASK = bytes32(~TYPE_MASK); // remaining bytes in bytes32
34
-
35
- struct Key {
36
- ObjectType objectType;
37
- KeyId id;
38
- }
39
-
40
- struct Value {
41
- VersionPart majorVersion;
42
- bytes data;
43
- }
44
-
45
- mapping(bytes32 key => Value value) private _store;
46
- bytes32[] private _keys;
47
-
48
- function toKey32(RiskId riskId) public pure returns (bytes32 key) {
49
- uint256 objectType = uint256(ObjectType.unwrap(RISK()));
50
- uint256 id = uint96(RiskId.unwrap(riskId));
51
- return bytes32(objectType << TYPE_SHIFT + id);
52
- }
53
-
54
- function toKey(bytes32 key32) public pure returns (Key memory key) {
55
- ObjectType objectType = ObjectType.wrap(uint8(uint256(key32 & TYPE_MASK) >> TYPE_SHIFT));
56
- KeyId id = KeyId.wrap(bytes31(key32 & ID_MASK));
57
- return Key(objectType, id);
58
- }
59
-
60
- function toBytes32(uint256 value) public pure returns(bytes32) { return bytes32(value); }
61
-
62
- // key store functions
63
- function create(bytes32 key, Value memory value) public {
64
- // add only store
65
- require(VersionPart.unwrap(_store[key].majorVersion) == 0, "ERROR_KEY_USED");
66
- _store[key] = value;
67
- _keys.push(key);
68
- }
69
-
70
- function update(bytes32 key, Value memory value) public {
71
- // add only store
72
- require(VersionPart.unwrap(_store[key].majorVersion) > 0, "ERROR_KEY_UNKNOWN");
73
- _store[key] = value;
74
- }
75
-
76
- function getIdMask() public pure returns (bytes32) { return ID_MASK; }
77
- function getTypeMask() public pure returns (bytes32) { return TYPE_MASK; }
78
-
79
- function get(bytes32 key) public view returns (Value memory value) {
80
- return _store[key];
81
- }
82
-
83
- function exists(bytes32 key) public view returns (bool) {
84
- return VersionPart.unwrap(_store[key].majorVersion) > 0;
85
- }
86
-
87
- function getKeyCount() public view returns (uint256 keyCount) {
88
- return _keys.length;
89
- }
90
-
91
- function getKey(uint256 index) public view returns (bytes32 key) {
92
- return _keys[index];
93
- }
94
-
95
- function s2b(string memory s) public pure returns (bytes memory b) {
96
- return abi.encodePacked(s);
97
- }
98
-
99
- function b2s(bytes memory b) public pure returns (string memory s) {
100
- return abi.decode(b, (string));
101
- }
102
-
103
- // risk related functions
104
-
105
- function keyToRiskId(Key memory key) public pure returns (RiskId id) {
106
- require(key.objectType == RISK(), "ERROR_NOT_RISK_KEY");
107
- return RiskId.wrap(bytes12(KeyId.unwrap(key.id)));
108
- }
109
-
110
- function createRiskInfo(
111
- bytes memory specification
112
- )
113
- public
114
- view
115
- returns(IRisk.RiskInfo memory info)
116
- {
117
- RiskId riskId = toRiskId(specification);
118
- return IRisk.RiskInfo(
119
- riskId,
120
- ACTIVE(),
121
- specification,
122
- blockTimestamp(), // createdAt
123
- blockNumber()); // updatedIn
124
- }
125
-
126
- function riskIdToKey(RiskId riskId) public pure returns(bytes32 key) {
127
- return keccak256(abi.encode(RISK(), riskId));
128
- }
129
-
130
- function encodeRiskInfo(IRisk.RiskInfo memory info) public pure returns (bytes memory data) {
131
- return abi.encode(info);
132
- }
133
-
134
- function decodeRiskInfo(bytes memory data) public pure returns (IRisk.RiskInfo memory info) {
135
- return abi.decode(data, (IRisk.RiskInfo));
136
- }
137
-
138
- function riskInfoToKeyValue(VersionPart majorVersion, IRisk.RiskInfo memory info) public pure returns (bytes32 key, Value memory value) {
139
- return (
140
- toKey32(info.id),
141
- Value(majorVersion, abi.encode(info))
142
- );
143
- }
144
-
145
- function valueToRiskInfo(Value memory value) public pure returns (IRisk.RiskInfo memory info) {
146
- return abi.decode(value.data, (IRisk.RiskInfo));
147
- }
148
-
149
- // bundle related functions
150
- function createBundleInfo(
151
- NftId bundleNftId,
152
- uint256 amount,
153
- bytes calldata filter
154
- )
155
- public
156
- view
157
- returns(IBundle.BundleInfo memory info)
158
- {
159
- uint256 lifetime = 30 * 24 * 3600;
160
- return IBundle.BundleInfo(
161
- bundleNftId,
162
- toNftId(123456),
163
- ACTIVE(),
164
- filter,
165
- amount,
166
- 0,
167
- amount,
168
- blockTimestamp().addSeconds(lifetime), // expiredAt
169
- zeroTimestamp()); // closedAt
170
- }
171
-
172
- function nftIdToKey(NftId nftId) public pure returns(bytes32 key) {
173
- return keccak256(abi.encode(BUNDLE(), nftId));
174
- }
175
-
176
- function nftIdToKeyPacked(NftId nftId) public pure returns(bytes32 key) {
177
- return keccak256(abi.encodePacked(BUNDLE(), nftId));
178
- }
179
-
180
- function bundleInfoToValue(VersionPart majorVersion, IBundle.BundleInfo memory info) public pure returns (Value memory value) {
181
- return Value(majorVersion, abi.encode(info));
182
- }
183
-
184
- function valueToBundleInfo(Value memory value) public pure returns (IBundle.BundleInfo memory info) {
185
- return abi.decode(value.data, (IBundle.BundleInfo));
186
- }
187
-
188
- function encodeBundleInfo(IBundle.BundleInfo memory info) public pure returns (bytes memory data) {
189
- return abi.encode(info);
190
- }
191
-
192
- function decodeBundleInfo(bytes memory data) public pure returns (IBundle.BundleInfo memory info) {
193
- return abi.decode(data, (IBundle.BundleInfo));
194
- }
195
- }
@@ -1,27 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {ObjectType} from "../../types/ObjectType.sol";
5
- import {StateId, toStateId, zeroStateId} from "../../types/StateId.sol";
6
-
7
- contract LifeCycleModule {
8
- mapping(ObjectType objectType => StateId initialState)
9
- private _initialState;
10
-
11
- mapping(ObjectType objectType => mapping(StateId stateFrom => mapping(StateId stateTo => bool isValid)))
12
- private _isValidTransition;
13
-
14
- function getInitialState(
15
- ObjectType objectType
16
- ) external view returns (StateId) {
17
- return _initialState[objectType];
18
- }
19
-
20
- function isValidTransition(
21
- ObjectType objectType,
22
- StateId fromId,
23
- StateId toId
24
- ) external view returns (bool) {
25
- return _isValidTransition[objectType][fromId][toId];
26
- }
27
- }