@etherisc/gif-next 0.0.2-ce87da3-250 → 0.0.2-ceb30b2-601

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 (278) hide show
  1. package/README.md +6 -83
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
  3. package/artifacts/contracts/components/Component.sol/Component.json +78 -102
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +139 -153
  6. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IComponent.sol/IComponent.json +155 -76
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +181 -125
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +342 -178
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +162 -151
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +286 -245
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +83 -175
  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 +1 -1
  21. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +64 -50
  22. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
  23. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +5 -0
  24. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  25. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +707 -463
  26. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +167 -76
  28. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  29. package/artifacts/contracts/instance/Instance.sol/Instance.json +630 -625
  30. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  31. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +472 -126
  32. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  33. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +258 -236
  34. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  35. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +291 -238
  36. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  37. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +79 -48
  38. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  39. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +8 -13
  40. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +114 -35
  42. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  43. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  44. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  45. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +40 -10
  46. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  47. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +36 -11
  48. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  49. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +56 -73
  50. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  51. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  52. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
  53. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  54. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  55. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  56. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  57. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  58. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +322 -99
  60. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  61. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +59 -44
  62. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
  63. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +459 -242
  64. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  65. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +90 -39
  66. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +1 -1
  67. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +646 -84
  68. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  69. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +119 -32
  70. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +673 -129
  72. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +96 -69
  74. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +205 -59
  76. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
  77. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +253 -185
  78. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +1 -1
  79. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +373 -51
  80. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +480 -37
  82. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +170 -102
  84. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +776 -46
  86. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  87. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +85 -27
  88. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
  89. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +255 -222
  90. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  91. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +37 -78
  92. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  93. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +929 -58
  94. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  95. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +84 -37
  96. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  97. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +145 -58
  98. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +28 -37
  100. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  101. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  102. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  103. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +19 -0
  104. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  105. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +5 -37
  106. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  107. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  108. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  109. package/artifacts/contracts/registry/Registry.sol/Registry.json +31 -12
  110. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
  111. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +2 -2
  112. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  113. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +23 -50
  114. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  115. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +21 -34
  116. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  117. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +23 -11
  118. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  119. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +10 -23
  120. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  121. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  122. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  123. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +0 -13
  124. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  125. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +45 -9
  126. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  127. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +0 -13
  128. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  129. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  130. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  131. package/artifacts/contracts/shared/IService.sol/IService.json +85 -27
  132. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  133. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  134. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -19
  135. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  136. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +47 -24
  137. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  138. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +14 -27
  139. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  140. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +7 -20
  141. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  142. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  143. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  144. package/artifacts/contracts/shared/Service.sol/Service.json +92 -29
  145. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  146. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  147. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  148. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  149. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  150. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  151. package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
  152. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  153. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +7 -20
  154. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  155. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +6 -6
  156. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  157. package/artifacts/contracts/test/TestService.sol/TestService.json +107 -40
  158. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  159. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  160. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  161. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  162. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +2 -2
  163. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  164. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  165. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +4 -0
  166. package/artifacts/contracts/types/Amount.sol/AmountLib.json +209 -0
  167. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  168. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
  169. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  170. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  171. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +83 -4
  172. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  173. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
  174. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  175. package/artifacts/contracts/types/Fee.sol/FeeLib.json +40 -9
  176. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  177. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
  178. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  179. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +17 -4
  180. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  181. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
  182. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
  183. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  184. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  185. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  186. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +116 -7
  187. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
  188. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +23 -4
  189. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  190. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  191. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  192. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  193. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +4 -0
  194. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
  195. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  196. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  197. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  198. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +38 -7
  199. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  200. package/artifacts/contracts/types/UFixed.sol/MathLib.json +2 -2
  201. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  202. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +2 -2
  203. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  204. package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
  205. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  206. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
  207. package/contracts/components/Component.sol +99 -87
  208. package/contracts/components/Distribution.sol +18 -21
  209. package/contracts/components/IComponent.sol +40 -18
  210. package/contracts/components/IDistributionComponent.sol +1 -22
  211. package/contracts/components/IPoolComponent.sol +73 -47
  212. package/contracts/components/IProductComponent.sol +3 -2
  213. package/contracts/components/Pool.sol +178 -130
  214. package/contracts/components/Product.sol +157 -71
  215. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
  216. package/contracts/instance/BundleManager.sol +10 -9
  217. package/contracts/instance/Cloneable.sol +7 -2
  218. package/contracts/instance/IInstance.sol +39 -27
  219. package/contracts/instance/IInstanceService.sol +16 -12
  220. package/contracts/instance/Instance.sol +125 -98
  221. package/contracts/instance/InstanceAccessManager.sol +388 -158
  222. package/contracts/instance/InstanceReader.sol +36 -12
  223. package/contracts/instance/InstanceService.sol +220 -212
  224. package/contracts/instance/ObjectManager.sol +6 -8
  225. package/contracts/instance/base/ComponentService.sol +28 -32
  226. package/contracts/instance/base/KeyValueStore.sol +13 -36
  227. package/contracts/instance/base/Lifecycle.sol +23 -6
  228. package/contracts/instance/module/IAccess.sol +21 -14
  229. package/contracts/instance/module/IBundle.sol +8 -5
  230. package/contracts/instance/module/IComponents.sol +41 -0
  231. package/contracts/instance/module/IDistribution.sol +2 -1
  232. package/contracts/instance/module/IPolicy.sol +38 -7
  233. package/contracts/instance/module/ISetup.sol +7 -22
  234. package/contracts/instance/service/ApplicationService.sol +138 -50
  235. package/contracts/instance/service/BundleService.sol +228 -83
  236. package/contracts/instance/service/ClaimService.sol +240 -30
  237. package/contracts/instance/service/DistributionService.sol +179 -114
  238. package/contracts/instance/service/IApplicationService.sol +9 -13
  239. package/contracts/instance/service/IBundleService.sol +74 -26
  240. package/contracts/instance/service/IClaimService.sol +52 -23
  241. package/contracts/instance/service/IDistributionService.sol +21 -3
  242. package/contracts/instance/service/IPolicyService.sol +20 -29
  243. package/contracts/instance/service/IPoolService.sol +127 -3
  244. package/contracts/instance/service/PolicyService.sol +133 -251
  245. package/contracts/instance/service/PoolService.sol +258 -18
  246. package/contracts/instance/service/ProductService.sol +31 -54
  247. package/contracts/registry/ChainNft.sol +8 -0
  248. package/contracts/registry/IRegistry.sol +2 -0
  249. package/contracts/registry/IRegistryService.sol +2 -3
  250. package/contracts/registry/ITransferInterceptor.sol +1 -0
  251. package/contracts/registry/Registry.sol +23 -20
  252. package/contracts/registry/RegistryService.sol +15 -16
  253. package/contracts/registry/ReleaseManager.sol +20 -18
  254. package/contracts/shared/IPolicyHolder.sol +20 -8
  255. package/contracts/shared/IRegistryLinked.sol +0 -1
  256. package/contracts/shared/IService.sol +6 -6
  257. package/contracts/shared/NftOwnable.sol +0 -2
  258. package/contracts/shared/PolicyHolder.sol +14 -8
  259. package/contracts/shared/Registerable.sol +12 -11
  260. package/contracts/shared/RegistryLinked.sol +0 -5
  261. package/contracts/shared/Service.sol +21 -7
  262. package/contracts/shared/TokenHandler.sol +11 -5
  263. package/contracts/test/TestService.sol +1 -1
  264. package/contracts/types/Amount.sol +70 -0
  265. package/contracts/types/Blocknumber.sol +1 -0
  266. package/contracts/types/ClaimId.sol +25 -2
  267. package/contracts/types/Fee.sol +13 -5
  268. package/contracts/types/NftId.sol +8 -0
  269. package/contracts/types/ObjectType.sol +6 -5
  270. package/contracts/types/PayoutId.sol +33 -5
  271. package/contracts/types/Referral.sol +4 -0
  272. package/contracts/types/RoleId.sol +13 -6
  273. package/contracts/types/Seconds.sol +54 -0
  274. package/contracts/types/StateId.sol +7 -2
  275. package/contracts/types/Timestamp.sol +18 -13
  276. package/contracts/types/UFixed.sol +1 -0
  277. package/contracts/types/Version.sol +1 -0
  278. package/package.json +1 -1
@@ -3,20 +3,22 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
5
 
6
- import {Key32, KeyId, Key32Lib} from "../types/Key32.sol";
6
+ import {Key32} from "../types/Key32.sol";
7
7
  import {NftId} from "../types/NftId.sol";
8
8
  import {ClaimId} from "../types/ClaimId.sol";
9
- import {NumberId} from "../types/NumberId.sol";
10
- import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../types/ObjectType.sol";
11
- import {RiskId, RiskIdLib} from "../types/RiskId.sol";
12
- import {RoleId, RoleIdLib} from "../types/RoleId.sol";
13
- import {StateId, ACTIVE} from "../types/StateId.sol";
14
- import {TimestampLib} from "../types/Timestamp.sol";
15
- import {VersionPart} from "../types/Version.sol";
16
-
17
- import {ERC165} from "../shared/ERC165.sol";
9
+ import {DistributorType} from "../types/DistributorType.sol";
10
+ import {PayoutId} from "../types/PayoutId.sol";
11
+ import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, DISTRIBUTOR} from "../types/ObjectType.sol";
12
+ import {ReferralId} from "../types/Referral.sol";
13
+ import {RiskId} from "../types/RiskId.sol";
14
+ import {INSTANCE_OWNER_ROLE} from "../types/RoleId.sol";
15
+ import {StateId} from "../types/StateId.sol";
16
+ import {VersionPart, VersionPartLib} from "../types/Version.sol";
17
+
18
18
  import {Registerable} from "../shared/Registerable.sol";
19
19
 
20
+ import {IRegistry} from "../registry/IRegistry.sol";
21
+
20
22
  import {IInstance} from "./IInstance.sol";
21
23
  import {InstanceReader} from "./InstanceReader.sol";
22
24
  import {InstanceAccessManager} from "./InstanceAccessManager.sol";
@@ -24,18 +26,13 @@ import {BundleManager} from "./BundleManager.sol";
24
26
 
25
27
  import {KeyValueStore} from "./base/KeyValueStore.sol";
26
28
 
27
- import {IAccess} from "./module/IAccess.sol";
28
29
  import {IBundle} from "./module/IBundle.sol";
30
+ import {IComponents} from "./module/IComponents.sol";
29
31
  import {IDistribution} from "./module/IDistribution.sol";
30
32
  import {IPolicy} from "./module/IPolicy.sol";
31
33
  import {IRisk} from "./module/IRisk.sol";
32
34
  import {ISetup} from "./module/ISetup.sol";
33
35
 
34
- import {IDistributionService} from "./service/IDistributionService.sol";
35
- import {IPoolService} from "./service/IPoolService.sol";
36
- import {IProductService} from "./service/IProductService.sol";
37
- import {IPolicyService} from "./service/IPolicyService.sol";
38
- import {IBundleService} from "./service/IBundleService.sol";
39
36
  import {VersionPart, VersionPartLib} from "../types/Version.sol";
40
37
 
41
38
  contract Instance is
@@ -59,13 +56,27 @@ contract Instance is
59
56
  InstanceReader internal _instanceReader;
60
57
  BundleManager internal _bundleManager;
61
58
 
62
- function initialize(address accessManagerAddress, address registryAddress, NftId registryNftId, address initialOwner)
59
+ modifier onlyChainNft() {
60
+ if(msg.sender != getRegistry().getChainNftAddress()) {
61
+ revert();
62
+ }
63
+ _;
64
+ }
65
+
66
+ function initialize(address authority, address registryAddress, address initialOwner)
63
67
  public
64
68
  initializer()
65
69
  {
66
- __AccessManaged_init(accessManagerAddress);
70
+ if(authority == address(0)) {
71
+ revert ErrorInstanceInstanceAccessManagerZero();
72
+ }
73
+
74
+ __AccessManaged_init(authority);
67
75
 
68
- initializeRegisterable(registryAddress, registryNftId, INSTANCE(), false, initialOwner, "");
76
+ IRegistry registry = IRegistry(registryAddress);
77
+ initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
78
+ initializeLifecycle();
79
+
69
80
  registerInterface(type(IInstance).interfaceId);
70
81
  }
71
82
 
@@ -96,12 +107,12 @@ contract Instance is
96
107
  }
97
108
 
98
109
  //--- PoolSetup ------------------------------------------------------//
99
- function createPoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup) external restricted() {
100
- create(_toNftKey32(poolNftId, POOL()), abi.encode(setup));
110
+ function createPoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info) external restricted() {
111
+ create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
101
112
  }
102
113
 
103
- function updatePoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup, StateId newState) external restricted() {
104
- update(_toNftKey32(poolNftId, POOL()), abi.encode(setup), newState);
114
+ function updatePoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info, StateId newState) external restricted() {
115
+ update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
105
116
  }
106
117
 
107
118
  function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
@@ -109,55 +120,55 @@ contract Instance is
109
120
  }
110
121
 
111
122
  //--- DistributorType -------------------------------------------------------//
112
- function createDistributorType(Key32 distributorKey, IDistribution.DistributorTypeInfo memory info) external restricted() {
113
- create(distributorKey, abi.encode(info));
123
+ function createDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info) external restricted() {
124
+ create(distributorType.toKey32(), abi.encode(info));
114
125
  }
115
126
 
116
- function updateDistributorType(Key32 distributorKey, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
117
- update(distributorKey, abi.encode(info), newState);
127
+ function updateDistributorType(DistributorType distributorType, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
128
+ update(distributorType.toKey32(), abi.encode(info), newState);
118
129
  }
119
130
 
120
- function updateDistributorTypeState(Key32 distributorKey, StateId newState) external restricted() {
121
- updateState(distributorKey, newState);
131
+ function updateDistributorTypeState(DistributorType distributorType, StateId newState) external restricted() {
132
+ updateState(distributorType.toKey32(), newState);
122
133
  }
123
134
 
124
135
  //--- Distributor -------------------------------------------------------//
125
- function createDistributor(NftId nftId, IDistribution.DistributorInfo memory info) external restricted() {
126
- create(toDistributorKey32(nftId), abi.encode(info));
136
+ function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
137
+ create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
127
138
  }
128
139
 
129
- function updateDistributor(NftId nftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
130
- update(toDistributorKey32(nftId), abi.encode(info), newState);
140
+ function updateDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
141
+ update(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info), newState);
131
142
  }
132
143
 
133
- function updateDistributorState(NftId nftId, StateId newState) external restricted() {
134
- updateState(toDistributorKey32(nftId), newState);
144
+ function updateDistributorState(NftId distributorNftId, StateId newState) external restricted() {
145
+ updateState(_toNftKey32(distributorNftId, DISTRIBUTOR()), newState);
135
146
  }
136
147
 
137
148
  //--- Referral ----------------------------------------------------------//
138
- function createReferral(Key32 referralKey, IDistribution.ReferralInfo memory referralInfo) external restricted() {
139
- create(referralKey, abi.encode(referralInfo));
149
+ function createReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo) external restricted() {
150
+ create(referralId.toKey32(), abi.encode(referralInfo));
140
151
  }
141
152
 
142
- function updateReferral(Key32 referralKey, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
143
- update(referralKey, abi.encode(referralInfo), newState);
153
+ function updateReferral(ReferralId referralId, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
154
+ update(referralId.toKey32(), abi.encode(referralInfo), newState);
144
155
  }
145
156
 
146
- function updateReferralState(Key32 referralKey, StateId newState) external restricted() {
147
- updateState(referralKey, newState);
157
+ function updateReferralState(ReferralId referralId, StateId newState) external restricted() {
158
+ updateState(referralId.toKey32(), newState);
148
159
  }
149
160
 
150
161
  //--- Bundle ------------------------------------------------------------//
151
162
  function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
152
- create(toBundleKey32(bundleNftId), abi.encode(bundle));
163
+ create(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle));
153
164
  }
154
165
 
155
166
  function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
156
- update(toBundleKey32(bundleNftId), abi.encode(bundle), newState);
167
+ update(_toNftKey32(bundleNftId, BUNDLE()), abi.encode(bundle), newState);
157
168
  }
158
169
 
159
170
  function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
160
- updateState(toBundleKey32(bundleNftId), newState);
171
+ updateState(_toNftKey32(bundleNftId, BUNDLE()), newState);
161
172
  }
162
173
 
163
174
  //--- Risk --------------------------------------------------------------//
@@ -175,117 +186,133 @@ contract Instance is
175
186
 
176
187
  //--- Application (Policy) ----------------------------------------------//
177
188
  function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
178
- create(toPolicyKey32(applicationNftId), abi.encode(policy));
189
+ create(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy));
179
190
  }
180
191
 
181
192
  function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
182
- update(toPolicyKey32(applicationNftId), abi.encode(policy), newState);
193
+ update(_toNftKey32(applicationNftId, POLICY()), abi.encode(policy), newState);
183
194
  }
184
195
 
185
196
  function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
186
- updateState(toPolicyKey32(applicationNftId), newState);
197
+ updateState(_toNftKey32(applicationNftId, POLICY()), newState);
187
198
  }
188
199
 
189
200
  //--- Policy ------------------------------------------------------------//
190
201
  function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
191
- update(toPolicyKey32(policyNftId), abi.encode(policy), newState);
202
+ update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
203
+ }
204
+
205
+ function updatePolicyClaims(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
206
+ update(_toNftKey32(policyNftId, POLICY()), abi.encode(policy), newState);
192
207
  }
193
208
 
194
209
  function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
195
- updateState(toPolicyKey32(policyNftId), newState);
210
+ updateState(_toNftKey32(policyNftId, POLICY()), newState);
196
211
  }
197
212
 
198
213
  //--- Claim -------------------------------------------------------------//
199
214
  function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
200
- create(toPolicyKey32(policyNftId), abi.encode(claim));
215
+ create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
201
216
  }
202
217
 
203
218
  function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
204
- update(toPolicyKey32(policyNftId), abi.encode(claim), newState);
219
+ update(_toClaimKey32(policyNftId, claimId), abi.encode(claim), newState);
205
220
  }
206
221
 
207
222
  function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
208
- updateState(toPolicyKey32(policyNftId), newState);
223
+ updateState(_toClaimKey32(policyNftId, claimId), newState);
209
224
  }
210
225
 
211
226
  //--- Payout ------------------------------------------------------------//
212
- function createPayout(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
213
- create(toPolicyKey32(policyNftId), abi.encode(payout));
227
+ function createPayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
228
+ create(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout));
214
229
  }
215
230
 
216
- function updatePayout(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
217
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
231
+ function updatePayout(NftId policyNftId, PayoutId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
232
+ update(_toPayoutKey32(policyNftId, payoutId), abi.encode(payout), newState);
218
233
  }
219
234
 
220
- function updatePayoutState(NftId policyNftId, StateId newState) external restricted() {
221
- updateState(toPolicyKey32(policyNftId), newState);
235
+ function updatePayoutState(NftId policyNftId, PayoutId payoutId, StateId newState) external restricted() {
236
+ updateState(_toPayoutKey32(policyNftId, payoutId), newState);
222
237
  }
223
238
 
224
- //--- internal view/pure functions --------------------------------------//
225
- function _toNftKey32(NftId nftId, ObjectType objectType) internal pure returns (Key32) {
226
- return nftId.toKey32(objectType);
239
+ //--- ITransferInterceptor ------------------------------------------------------------//
240
+ function nftMint(address to, uint256 tokenId) external onlyChainNft {
241
+ assert(_accessManager.roleMembers(INSTANCE_OWNER_ROLE()) == 0);// temp
242
+ assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
227
243
  }
228
244
 
229
- function toBundleKey32(NftId bundleNftId) public pure returns (Key32) {
230
- return bundleNftId.toKey32(BUNDLE());
245
+ function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
246
+ assert(_accessManager.revokeRole(INSTANCE_OWNER_ROLE(), from) == true);
247
+ assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
231
248
  }
232
249
 
233
- function toPolicyKey32(NftId policyNftId) public pure returns (Key32) {
234
- return policyNftId.toKey32(POLICY());
235
- }
250
+ //--- initial setup functions -------------------------------------------//
236
251
 
237
- function toDistributionKey32(NftId distNftId) public pure returns (Key32) {
238
- return distNftId.toKey32(DISTRIBUTION());
239
- }
252
+ function setInstanceAccessManager(InstanceAccessManager accessManager) external restricted {
253
+ if(address(_accessManager) != address(0)) {
254
+ revert ErrorInstanceInstanceAccessManagerAlreadySet(address(_accessManager));
255
+ }
240
256
 
241
- function toDistributorTypeKey32(NftId distNftId) public pure returns (Key32) {
242
- return distNftId.toKey32(DISTRIBUTOR_TYPE());
243
- }
257
+ if(accessManager.authority() != authority()) {
258
+ revert ErrorInstanceInstanceAccessManagerAuthorityMismatch(authority());
259
+ }
244
260
 
245
- function toDistributorKey32(NftId distNftId) public pure returns (Key32) {
246
- return distNftId.toKey32(DISTRIBUTOR());
247
- }
248
-
249
- function getDistributionService() external view returns (IDistributionService) {
250
- return IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
261
+ _accessManager = accessManager;
251
262
  }
252
263
 
253
- function getProductService() external view returns (IProductService) {
254
- return IProductService(getRegistry().getServiceAddress(PRODUCT(), VersionPart.wrap(3)));
264
+ function setBundleManager(BundleManager bundleManager) external restricted() {
265
+ if(address(_bundleManager) != address(0)) {
266
+ revert ErrorInstanceBundleManagerAlreadySet(address(_bundleManager));
267
+ }
268
+
269
+ if(bundleManager.getInstance() != Instance(this)) {
270
+ revert ErrorInstanceBundleManagerInstanceMismatch(address(this));
271
+ }
272
+
273
+ if(bundleManager.authority() != authority()) {
274
+ revert ErrorInstanceBundleManagerAuthorityMismatch(authority());
275
+ }
276
+
277
+ _bundleManager = bundleManager;
255
278
  }
256
279
 
257
- function getPoolService() external view returns (IPoolService) {
258
- return IPoolService(getRegistry().getServiceAddress(POOL(), VersionPart.wrap(3)));
280
+ function setInstanceReader(InstanceReader instanceReader) external restricted() {
281
+ if(instanceReader.getInstance() != Instance(this)) {
282
+ revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
283
+ }
284
+
285
+ _instanceReader = instanceReader;
259
286
  }
260
287
 
261
- function getPolicyService() external view returns (IPolicyService) {
262
- return IPolicyService(getRegistry().getServiceAddress(POLICY(), VersionPart.wrap(3)));
288
+ //--- external view functions -------------------------------------------//
289
+
290
+ function getInstanceReader() external view returns (InstanceReader) {
291
+ return _instanceReader;
263
292
  }
264
293
 
265
- function getBundleService() external view returns (IBundleService) {
266
- return IBundleService(getRegistry().getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
294
+ function getBundleManager() external view returns (BundleManager) {
295
+ return _bundleManager;
267
296
  }
268
297
 
269
- function setInstanceReader(InstanceReader instanceReader) external restricted() {
270
- require(instanceReader.getInstance() == Instance(this), "InstanceReader instance mismatch");
271
- _instanceReader = instanceReader;
298
+ function getInstanceAccessManager() external view returns (InstanceAccessManager) {
299
+ return _accessManager;
272
300
  }
273
301
 
274
302
  function getMajorVersion() external pure returns (VersionPart majorVersion) {
275
303
  return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
276
304
  }
277
305
 
278
- function getInstanceReader() external view returns (InstanceReader) {
279
- return _instanceReader;
306
+ //--- internal view/pure functions --------------------------------------//
307
+ function _toNftKey32(NftId nftId, ObjectType objectType) private pure returns (Key32) {
308
+ return nftId.toKey32(objectType);
280
309
  }
281
-
282
- function setBundleManager(BundleManager bundleManager) external restricted() {
283
- require(address(_bundleManager) == address(0), "BundleManager is set");
284
- require(bundleManager.getInstance() == Instance(this), "BundleManager instance mismatch");
285
- _bundleManager = bundleManager;
310
+
311
+ function _toClaimKey32(NftId policyNftId, ClaimId claimId) private pure returns (Key32) {
312
+ return claimId.toKey32(policyNftId);
286
313
  }
287
314
 
288
- function getBundleManager() external view returns (BundleManager) {
289
- return _bundleManager;
315
+ function _toPayoutKey32(NftId policyNftId, PayoutId payoutId) private pure returns (Key32) {
316
+ return payoutId.toKey32(policyNftId);
290
317
  }
291
318
  }