@etherisc/gif-next 0.0.2-93de5de-423 → 0.0.2-94237b7-984

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 (264) hide show
  1. package/README.md +0 -71
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
  3. package/artifacts/contracts/components/Component.sol/Component.json +78 -89
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +123 -183
  6. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IComponent.sol/IComponent.json +156 -64
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +169 -143
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +353 -176
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +162 -138
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +299 -245
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +83 -162
  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 +199 -316
  26. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +185 -50
  28. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  29. package/artifacts/contracts/instance/Instance.sol/Instance.json +288 -387
  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 +137 -234
  34. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  35. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +313 -169
  36. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  37. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +71 -23
  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 +86 -20
  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 +261 -80
  60. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  61. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +41 -25
  62. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
  63. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +387 -241
  64. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  65. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +74 -14
  66. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +1 -1
  67. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +105 -31
  68. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  69. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +11 -7
  70. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +933 -70
  72. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +142 -14
  74. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +200 -40
  76. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
  77. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +220 -183
  78. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +1 -1
  79. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +90 -13
  80. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +630 -20
  82. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +103 -69
  84. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +521 -13
  86. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  87. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +90 -13
  88. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
  89. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +150 -167
  90. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  91. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +27 -47
  92. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  93. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +562 -41
  94. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  95. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +24 -12
  96. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  97. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +115 -41
  98. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  99. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +16 -12
  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 +0 -13
  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 +18 -26
  114. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  115. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +7 -7
  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 +2 -2
  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/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  124. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  125. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  126. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  127. package/artifacts/contracts/shared/IService.sol/IService.json +90 -13
  128. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  129. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  130. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  131. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  132. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  133. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  134. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
  135. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  136. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +3 -3
  137. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  138. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  139. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  140. package/artifacts/contracts/shared/Service.sol/Service.json +97 -15
  141. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  142. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  143. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  144. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  145. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  146. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  147. package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
  148. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  149. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +3 -3
  150. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  151. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +6 -6
  152. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  153. package/artifacts/contracts/test/TestService.sol/TestService.json +112 -26
  154. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  155. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  156. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
  157. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  158. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +2 -2
  159. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  160. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  161. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +4 -0
  162. package/artifacts/contracts/types/Amount.sol/AmountLib.json +161 -0
  163. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  164. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
  165. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  166. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  167. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  168. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
  169. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  170. package/artifacts/contracts/types/Fee.sol/FeeLib.json +40 -9
  171. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  172. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
  173. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  174. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +17 -4
  175. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  176. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
  177. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
  178. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  179. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  180. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  181. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
  182. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +23 -4
  183. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  184. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  185. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  186. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  187. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +4 -0
  188. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
  189. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  190. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
  191. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  192. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +25 -7
  193. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  194. package/artifacts/contracts/types/UFixed.sol/MathLib.json +2 -2
  195. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  196. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +2 -2
  197. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  198. package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
  199. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  200. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
  201. package/contracts/components/Component.sol +99 -87
  202. package/contracts/components/Distribution.sol +16 -44
  203. package/contracts/components/IComponent.sol +40 -18
  204. package/contracts/components/IDistributionComponent.sol +1 -30
  205. package/contracts/components/IPoolComponent.sol +73 -47
  206. package/contracts/components/IProductComponent.sol +3 -2
  207. package/contracts/components/Pool.sol +177 -128
  208. package/contracts/components/Product.sol +26 -18
  209. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
  210. package/contracts/instance/BundleManager.sol +7 -5
  211. package/contracts/instance/Cloneable.sol +7 -2
  212. package/contracts/instance/IInstance.sol +16 -10
  213. package/contracts/instance/IInstanceService.sol +18 -5
  214. package/contracts/instance/Instance.sol +45 -9
  215. package/contracts/instance/InstanceAccessManager.sol +388 -158
  216. package/contracts/instance/InstanceReader.sol +8 -10
  217. package/contracts/instance/InstanceService.sol +184 -165
  218. package/contracts/instance/ObjectManager.sol +6 -8
  219. package/contracts/instance/base/ComponentService.sol +17 -30
  220. package/contracts/instance/base/KeyValueStore.sol +13 -5
  221. package/contracts/instance/base/Lifecycle.sol +11 -2
  222. package/contracts/instance/module/IAccess.sol +21 -14
  223. package/contracts/instance/module/IBundle.sol +8 -5
  224. package/contracts/instance/module/IComponents.sol +41 -0
  225. package/contracts/instance/module/IDistribution.sol +2 -0
  226. package/contracts/instance/module/IPolicy.sol +26 -1
  227. package/contracts/instance/module/ISetup.sol +7 -21
  228. package/contracts/instance/service/ApplicationService.sol +130 -48
  229. package/contracts/instance/service/BundleService.sol +213 -80
  230. package/contracts/instance/service/ClaimService.sol +3 -3
  231. package/contracts/instance/service/DistributionService.sol +212 -54
  232. package/contracts/instance/service/IApplicationService.sol +7 -7
  233. package/contracts/instance/service/IBundleService.sol +65 -26
  234. package/contracts/instance/service/IDistributionService.sol +37 -3
  235. package/contracts/instance/service/IPolicyService.sol +3 -20
  236. package/contracts/instance/service/IPoolService.sol +82 -3
  237. package/contracts/instance/service/PolicyService.sol +107 -219
  238. package/contracts/instance/service/PoolService.sol +214 -20
  239. package/contracts/instance/service/ProductService.sol +30 -53
  240. package/contracts/registry/ChainNft.sol +8 -0
  241. package/contracts/registry/IRegistry.sol +2 -0
  242. package/contracts/registry/IRegistryService.sol +4 -3
  243. package/contracts/registry/ITransferInterceptor.sol +1 -0
  244. package/contracts/registry/Registry.sol +23 -20
  245. package/contracts/registry/RegistryService.sol +15 -16
  246. package/contracts/registry/ReleaseManager.sol +20 -18
  247. package/contracts/shared/IService.sol +4 -4
  248. package/contracts/shared/Registerable.sol +2 -2
  249. package/contracts/shared/Service.sol +21 -7
  250. package/contracts/shared/TokenHandler.sol +11 -5
  251. package/contracts/test/TestService.sol +1 -1
  252. package/contracts/types/Amount.sol +60 -0
  253. package/contracts/types/Blocknumber.sol +1 -0
  254. package/contracts/types/Fee.sol +13 -5
  255. package/contracts/types/NftId.sol +8 -0
  256. package/contracts/types/ObjectType.sol +1 -0
  257. package/contracts/types/Referral.sol +4 -0
  258. package/contracts/types/RoleId.sol +13 -6
  259. package/contracts/types/Seconds.sol +54 -0
  260. package/contracts/types/StateId.sol +1 -0
  261. package/contracts/types/Timestamp.sol +13 -13
  262. package/contracts/types/UFixed.sol +1 -0
  263. package/contracts/types/Version.sol +1 -0
  264. package/package.json +1 -1
@@ -6,15 +6,20 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
6
6
  import {NftId} from "../types/NftId.sol";
7
7
  import {StateId} from "../types/StateId.sol";
8
8
  import {RiskId} from "../types/RiskId.sol";
9
+ import {VersionPart} from "../types/Version.sol";
10
+ import {Key32} from "../types/Key32.sol";
9
11
 
10
12
  import {IRegisterable} from "../shared/IRegisterable.sol";
11
13
 
14
+ import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
15
+
12
16
  import {InstanceAccessManager} from "./InstanceAccessManager.sol";
13
17
  import {BundleManager} from "./BundleManager.sol";
14
18
  import {InstanceReader} from "./InstanceReader.sol";
15
19
 
16
20
  import {IBundle} from "./module/IBundle.sol";
17
21
  import {IBundleService} from "./service/IBundleService.sol";
22
+ import {IComponents} from "./module/IComponents.sol";
18
23
  import {IDistributionService} from "./service/IDistributionService.sol";
19
24
  import {InstanceAccessManager} from "./InstanceAccessManager.sol";
20
25
  import {IKeyValueStore} from "./base/IKeyValueStore.sol";
@@ -27,17 +32,15 @@ import {IPolicyService} from "./service/IPolicyService.sol";
27
32
  import {IBundleService} from "./service/IBundleService.sol";
28
33
  import {IRisk} from "./module/IRisk.sol";
29
34
  import {ISetup} from "./module/ISetup.sol";
30
- import {NftId} from "../types/NftId.sol";
31
- import {RiskId} from "../types/RiskId.sol";
32
- import {StateId} from "../types/StateId.sol";
33
- import {VersionPart} from "../types/Version.sol";
34
- import {Key32} from "../types/Key32.sol";
35
-
36
35
 
37
36
 
38
37
 
39
- interface IInstance is IRegisterable, IKeyValueStore, IAccessManaged {
40
-
38
+ interface IInstance is
39
+ IRegisterable,
40
+ ITransferInterceptor,
41
+ IAccessManaged,
42
+ IKeyValueStore
43
+ {
41
44
  function getDistributionService() external view returns (IDistributionService);
42
45
  function getProductService() external view returns (IProductService);
43
46
  function getPoolService() external view returns (IPoolService);
@@ -48,8 +51,8 @@ interface IInstance is IRegisterable, IKeyValueStore, IAccessManaged {
48
51
  function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external;
49
52
  function updateDistributionSetupState(NftId distributionNftId, StateId newState) external;
50
53
 
51
- function createPoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup) external;
52
- function updatePoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup, StateId newState) external;
54
+ function createPoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info) external;
55
+ function updatePoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info, StateId newState) external;
53
56
  function updatePoolSetupState(NftId poolNftId, StateId newState) external;
54
57
 
55
58
  function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external;
@@ -89,4 +92,7 @@ interface IInstance is IRegisterable, IKeyValueStore, IAccessManaged {
89
92
  function getMajorVersion() external pure returns (VersionPart majorVersion);
90
93
  function getInstanceReader() external view returns (InstanceReader);
91
94
  function getBundleManager() external view returns (BundleManager);
95
+
96
+ function setInstanceAccessManager(InstanceAccessManager accessManager) external;
97
+ function getInstanceAccessManager() external view returns (InstanceAccessManager);
92
98
  }
@@ -10,6 +10,7 @@ import {IRegistry} from "../registry/IRegistry.sol";
10
10
  import {IRegisterable} from "../shared/IRegisterable.sol";
11
11
  import {IComponent} from "../components/IComponent.sol";
12
12
 
13
+ import {AccessManagerUpgradeableInitializeable} from "./AccessManagerUpgradeableInitializeable.sol";
13
14
  import {InstanceAccessManager} from "./InstanceAccessManager.sol";
14
15
  import {Instance} from "./Instance.sol";
15
16
  import {InstanceReader} from "./InstanceReader.sol";
@@ -18,6 +19,7 @@ import {BundleManager} from "./BundleManager.sol";
18
19
  interface IInstanceService is IService {
19
20
 
20
21
  error ErrorInstanceServiceMasterInstanceAlreadySet();
22
+ error ErrorInstanceServiceMasterOzAccessManagerAlreadySet();
21
23
  error ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet();
22
24
  error ErrorInstanceServiceMasterBundleManagerAlreadySet();
23
25
  error ErrorInstanceServiceInstanceAddressZero();
@@ -27,33 +29,44 @@ interface IInstanceService is IService {
27
29
  error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
28
30
  error ErrorInstanceServiceInstanceReaderInstanceMismatch();
29
31
 
30
- error ErrorInstanceServiceAccessManagerZero();
32
+ error ErrorInstanceServiceOzAccessManagerZero();
33
+ error ErrorInstanceServiceInstanceAccessManagerZero();
31
34
  error ErrorInstanceServiceInstanceReaderZero();
32
35
  error ErrorInstanceServiceBundleManagerZero();
33
36
 
34
37
  error ErrorInstanceServiceInstanceAuthorityMismatch();
38
+ error ErrorInstanceServiceBundleManagerAuthorityMismatch();
35
39
  error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
36
40
  error ErrorInstanceServiceBundleMangerInstanceMismatch();
37
41
 
38
42
  error ErrorInstanceServiceRequestUnauhorized(address caller);
39
43
  error ErrorInstanceServiceNotInstanceOwner(address caller, NftId instanceNftId);
44
+ error ErrorInstanceServiceNotInstance(NftId nftId);
40
45
  error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
46
+ error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
41
47
  error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
42
48
 
43
- event LogInstanceCloned(address clonedAccessManagerAddress, address clonedInstanceAddress, address clonedInstanceReaderAddress, NftId clonedInstanceNftId);
49
+ event LogInstanceCloned(address clonedOzAccessManager, address clonedInstanceAccessManager, address clonedInstance, address clonedBundleManager, address clonedInstanceReader, NftId clonedInstanceNftId);
44
50
 
45
51
  function createInstanceClone()
46
52
  external
47
53
  returns (
48
- InstanceAccessManager clonedAccessManager,
54
+ AccessManagerUpgradeableInitializeable clonedOzAccessManager,
55
+ InstanceAccessManager clonedInstanceAccessManager,
49
56
  Instance clonedInstance,
50
57
  NftId instanceNftId,
51
58
  InstanceReader clonedInstanceReader,
52
59
  BundleManager clonedBundleManager
53
60
  );
54
61
 
55
- function hasRole(address account, RoleId role, address instanceAddress) external returns (bool);
56
- function setTargetLocked(string memory targetName, bool locked) external;
62
+ function createGifTarget(
63
+ NftId instanceNftId,
64
+ address targetAddress,
65
+ string memory targetName,
66
+ bytes4[][] memory selectors,
67
+ RoleId[] memory roles
68
+ ) external;
57
69
 
70
+ function setComponentLocked(bool locked) external;
58
71
  }
59
72
 
@@ -9,14 +9,16 @@ import {ClaimId} from "../types/ClaimId.sol";
9
9
  import {NumberId} from "../types/NumberId.sol";
10
10
  import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../types/ObjectType.sol";
11
11
  import {RiskId, RiskIdLib} from "../types/RiskId.sol";
12
- import {RoleId, RoleIdLib} from "../types/RoleId.sol";
12
+ import {RoleId, RoleIdLib, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../types/RoleId.sol";
13
13
  import {StateId, ACTIVE} from "../types/StateId.sol";
14
14
  import {TimestampLib} from "../types/Timestamp.sol";
15
- import {VersionPart} from "../types/Version.sol";
15
+ import {VersionPart, VersionPartLib} from "../types/Version.sol";
16
16
 
17
17
  import {ERC165} from "../shared/ERC165.sol";
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";
@@ -26,6 +28,7 @@ import {KeyValueStore} from "./base/KeyValueStore.sol";
26
28
 
27
29
  import {IAccess} from "./module/IAccess.sol";
28
30
  import {IBundle} from "./module/IBundle.sol";
31
+ import {IComponents} from "./module/IComponents.sol";
29
32
  import {IDistribution} from "./module/IDistribution.sol";
30
33
  import {IPolicy} from "./module/IPolicy.sol";
31
34
  import {IRisk} from "./module/IRisk.sol";
@@ -36,6 +39,7 @@ import {IPoolService} from "./service/IPoolService.sol";
36
39
  import {IProductService} from "./service/IProductService.sol";
37
40
  import {IPolicyService} from "./service/IPolicyService.sol";
38
41
  import {IBundleService} from "./service/IBundleService.sol";
42
+ import {TokenHandler} from "../shared/TokenHandler.sol";
39
43
  import {VersionPart, VersionPartLib} from "../types/Version.sol";
40
44
 
41
45
  contract Instance is
@@ -59,13 +63,23 @@ contract Instance is
59
63
  InstanceReader internal _instanceReader;
60
64
  BundleManager internal _bundleManager;
61
65
 
62
- function initialize(address accessManagerAddress, address registryAddress, NftId registryNftId, address initialOwner)
66
+ modifier onlyChainNft() {
67
+ if(msg.sender != getRegistry().getChainNftAddress()) {
68
+ revert();
69
+ }
70
+ _;
71
+ }
72
+
73
+ function initialize(address authority, address registryAddress, address initialOwner)
63
74
  public
64
75
  initializer()
65
76
  {
66
- __AccessManaged_init(accessManagerAddress);
77
+ __AccessManaged_init(authority);
67
78
 
68
- initializeRegisterable(registryAddress, registryNftId, INSTANCE(), false, initialOwner, "");
79
+ IRegistry registry = IRegistry(registryAddress);
80
+ initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
81
+ initializeLifecycle();
82
+
69
83
  registerInterface(type(IInstance).interfaceId);
70
84
  }
71
85
 
@@ -96,12 +110,12 @@ contract Instance is
96
110
  }
97
111
 
98
112
  //--- PoolSetup ------------------------------------------------------//
99
- function createPoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup) external restricted() {
100
- create(_toNftKey32(poolNftId, POOL()), abi.encode(setup));
113
+ function createPoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info) external restricted() {
114
+ create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
101
115
  }
102
116
 
103
- function updatePoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup, StateId newState) external restricted() {
104
- update(_toNftKey32(poolNftId, POOL()), abi.encode(setup), newState);
117
+ function updatePoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info, StateId newState) external restricted() {
118
+ update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
105
119
  }
106
120
 
107
121
  function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
@@ -221,6 +235,17 @@ contract Instance is
221
235
  updateState(toPolicyKey32(policyNftId), newState);
222
236
  }
223
237
 
238
+ //--- ITransferInterceptor ------------------------------------------------------------//
239
+ function nftMint(address to, uint256 tokenId) external onlyChainNft {
240
+ assert(_accessManager.roleMembers(INSTANCE_OWNER_ROLE()) == 0);// temp
241
+ assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
242
+ }
243
+
244
+ function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
245
+ assert(_accessManager.revokeRole(INSTANCE_OWNER_ROLE(), from) == true);
246
+ assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
247
+ }
248
+
224
249
  //--- internal view/pure functions --------------------------------------//
225
250
  function _toNftKey32(NftId nftId, ObjectType objectType) internal pure returns (Key32) {
226
251
  return nftId.toKey32(objectType);
@@ -282,10 +307,21 @@ contract Instance is
282
307
  function setBundleManager(BundleManager bundleManager) external restricted() {
283
308
  require(address(_bundleManager) == address(0), "BundleManager is set");
284
309
  require(bundleManager.getInstance() == Instance(this), "BundleManager instance mismatch");
310
+ require(bundleManager.authority() == authority(), "BundleManager authority mismatch");
285
311
  _bundleManager = bundleManager;
286
312
  }
287
313
 
288
314
  function getBundleManager() external view returns (BundleManager) {
289
315
  return _bundleManager;
290
316
  }
317
+
318
+ function setInstanceAccessManager(InstanceAccessManager accessManager) external restricted {
319
+ require(address(_accessManager) == address(0), "InstanceAccessManager is set");
320
+ require(accessManager.authority() == authority(), "InstanceAccessManager authority mismatch");
321
+ _accessManager = accessManager;
322
+ }
323
+
324
+ function getInstanceAccessManager() external view returns (InstanceAccessManager) {
325
+ return _accessManager;
326
+ }
291
327
  }