@etherisc/gif-next 0.0.2-d086e6d-456 → 0.0.2-d1f0662-893

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 (265) hide show
  1. package/README.md +6 -88
  2. package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
  3. package/artifacts/contracts/components/Component.sol/Component.json +37 -6
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
  5. package/artifacts/contracts/components/Distribution.sol/Distribution.json +60 -13
  6. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
  7. package/artifacts/contracts/components/IComponent.sol/IComponent.json +37 -6
  8. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +44 -13
  10. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +55 -24
  12. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  13. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +52 -21
  14. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  15. package/artifacts/contracts/components/Pool.sol/Pool.json +55 -24
  16. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  17. package/artifacts/contracts/components/Product.sol/Product.json +52 -21
  18. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  19. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +2 -2
  20. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
  21. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  22. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +309 -2023
  23. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  24. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +21 -62
  25. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  26. package/artifacts/contracts/instance/Instance.sol/Instance.json +424 -2776
  27. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  28. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +95 -58
  29. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  30. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
  31. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  32. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +331 -51
  33. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  34. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +71 -215
  35. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  36. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +38 -83
  37. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  38. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2788 -0
  39. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  40. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +2 -2
  41. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +1 -1
  42. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +25 -36
  43. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  44. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  45. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  46. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +8 -8
  47. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  48. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +6 -6
  49. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  50. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +6 -6
  51. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  52. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  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 +106 -246
  60. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  61. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +38 -55
  62. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
  63. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +166 -136
  64. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  65. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +38 -59
  66. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +1 -1
  67. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +623 -91
  68. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  69. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +143 -32
  70. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
  71. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +185 -451
  72. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  73. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +82 -107
  74. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  75. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +38 -191
  76. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
  77. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +97 -45
  78. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +1 -1
  79. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +306 -62
  80. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  81. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +34 -297
  82. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  83. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +124 -103
  84. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  85. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +269 -60
  86. package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.dbg.json +4 -0
  87. package/artifacts/contracts/instance/service/IPricingService.sol/IPricingService.json +510 -0
  88. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  89. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +5 -37
  90. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
  91. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +332 -162
  92. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  93. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +104 -53
  94. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  95. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +442 -84
  96. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  97. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +90 -39
  98. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.dbg.json +4 -0
  99. package/artifacts/contracts/instance/service/PricingService.sol/PricingService.json +1004 -0
  100. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/instance/service/PricingServiceManager.sol/PricingServiceManager.json +688 -0
  102. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  103. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +56 -59
  104. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +28 -37
  106. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  107. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  108. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  109. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +5 -37
  110. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  111. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  112. package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
  113. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
  114. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +2 -2
  115. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  116. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +22 -49
  117. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +21 -34
  119. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  120. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +23 -11
  121. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  122. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +10 -23
  123. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  124. package/artifacts/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +3 -3
  125. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
  126. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  127. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  128. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +0 -13
  129. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  130. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +69 -9
  131. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  132. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +0 -13
  133. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  134. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  135. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  136. package/artifacts/contracts/shared/IService.sol/IService.json +5 -37
  137. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  138. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  139. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -19
  140. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  141. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +80 -26
  142. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  143. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +14 -27
  144. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  145. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +6 -19
  146. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  147. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  148. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  149. package/artifacts/contracts/shared/Service.sol/Service.json +11 -38
  150. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  151. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -6
  152. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  153. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  154. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  155. package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
  156. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  157. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +6 -19
  158. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  159. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
  160. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  161. package/artifacts/contracts/test/TestService.sol/TestService.json +26 -49
  162. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  163. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  164. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  165. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  166. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  167. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +1 -1
  168. package/artifacts/contracts/types/Amount.sol/AmountLib.json +124 -4
  169. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  170. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  171. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  172. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +83 -4
  173. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  174. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
  175. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  176. package/artifacts/contracts/types/Fee.sol/FeeLib.json +42 -18
  177. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  178. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
  179. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  180. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  181. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  182. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
  183. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
  184. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  185. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  186. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  187. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +116 -7
  188. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
  189. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +2 -2
  190. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
  191. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
  192. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
  193. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
  194. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +1 -1
  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 +17 -4
  199. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
  200. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
  201. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  202. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  203. package/contracts/components/Component.sol +21 -2
  204. package/contracts/components/Distribution.sol +11 -6
  205. package/contracts/components/IComponent.sol +16 -2
  206. package/contracts/components/IPoolComponent.sol +8 -7
  207. package/contracts/components/IProductComponent.sol +5 -4
  208. package/contracts/components/Pool.sol +11 -12
  209. package/contracts/components/Product.sol +144 -62
  210. package/contracts/instance/BundleManager.sol +3 -4
  211. package/contracts/instance/IInstance.sol +32 -53
  212. package/contracts/instance/IInstanceService.sol +15 -14
  213. package/contracts/instance/Instance.sol +107 -205
  214. package/contracts/instance/InstanceAccessManager.sol +44 -25
  215. package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
  216. package/contracts/instance/InstanceReader.sol +84 -7
  217. package/contracts/instance/InstanceService.sol +102 -289
  218. package/contracts/instance/InstanceStore.sol +212 -0
  219. package/contracts/instance/ObjectManager.sol +1 -1
  220. package/contracts/instance/base/ComponentService.sol +53 -41
  221. package/contracts/instance/base/KeyValueStore.sol +0 -31
  222. package/contracts/instance/base/Lifecycle.sol +15 -4
  223. package/contracts/instance/module/IAccess.sol +2 -2
  224. package/contracts/instance/module/IComponents.sol +3 -3
  225. package/contracts/instance/module/IDistribution.sol +3 -2
  226. package/contracts/instance/module/IPolicy.sol +13 -8
  227. package/contracts/instance/service/ApplicationService.sol +60 -224
  228. package/contracts/instance/service/BundleService.sol +73 -122
  229. package/contracts/instance/service/ClaimService.sol +318 -32
  230. package/contracts/instance/service/DistributionService.sol +64 -151
  231. package/contracts/instance/service/IApplicationService.sol +8 -28
  232. package/contracts/instance/service/IBundleService.sol +34 -9
  233. package/contracts/instance/service/IClaimService.sol +52 -23
  234. package/contracts/instance/service/IDistributionService.sol +11 -22
  235. package/contracts/instance/service/IPolicyService.sol +24 -16
  236. package/contracts/instance/service/IPoolService.sol +18 -3
  237. package/contracts/instance/service/IPricingService.sol +37 -0
  238. package/contracts/instance/service/PolicyService.sol +134 -118
  239. package/contracts/instance/service/PoolService.sol +124 -64
  240. package/contracts/instance/service/PricingService.sol +275 -0
  241. package/contracts/instance/service/PricingServiceManager.sol +51 -0
  242. package/contracts/instance/service/ProductService.sol +14 -14
  243. package/contracts/registry/IRegistryService.sol +0 -2
  244. package/contracts/registry/RegistryService.sol +16 -15
  245. package/contracts/registry/ReleaseManager.sol +20 -18
  246. package/contracts/shared/IPolicyHolder.sol +23 -9
  247. package/contracts/shared/IRegistryLinked.sol +0 -1
  248. package/contracts/shared/IService.sol +3 -6
  249. package/contracts/shared/NftOwnable.sol +0 -2
  250. package/contracts/shared/PolicyHolder.sol +30 -17
  251. package/contracts/shared/Registerable.sol +10 -9
  252. package/contracts/shared/RegistryLinked.sol +0 -5
  253. package/contracts/shared/Service.sol +16 -7
  254. package/contracts/shared/TokenHandler.sol +4 -2
  255. package/contracts/test/TestService.sol +1 -1
  256. package/contracts/types/Amount.sol +49 -0
  257. package/contracts/types/ClaimId.sol +25 -2
  258. package/contracts/types/Fee.sol +7 -6
  259. package/contracts/types/ObjectType.sol +9 -5
  260. package/contracts/types/PayoutId.sol +33 -5
  261. package/contracts/types/StateId.sol +6 -2
  262. package/contracts/types/Timestamp.sol +5 -0
  263. package/package.json +1 -1
  264. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  265. /package/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol +0 -0
@@ -58,11 +58,11 @@ contract BundleService is
58
58
  (registryAddress, initialOwner) = abi.decode(data, (address, address));
59
59
  // TODO while PoolService is not deployed in PoolServiceManager constructor
60
60
  // owner is PoolServiceManager deployer
61
- initializeService(registryAddress, owner);
61
+ initializeService(registryAddress, address(0), owner);
62
62
  registerInterface(type(IBundleService).interfaceId);
63
63
  }
64
64
 
65
- function getDomain() public pure override(Service, IService) returns(ObjectType) {
65
+ function getDomain() public pure override returns(ObjectType) {
66
66
  return BUNDLE();
67
67
  }
68
68
 
@@ -75,16 +75,16 @@ contract BundleService is
75
75
  function _updatePoolWithStakes(
76
76
  IInstance instance,
77
77
  NftId poolNftId,
78
- uint256 stakingAmount
78
+ Amount stakingAmount
79
79
  )
80
80
  internal
81
81
  returns (
82
82
  TokenHandler tokenHandler,
83
83
  address wallet,
84
- uint256 netStakingAmount
84
+ Amount netStakingAmount
85
85
  )
86
86
  {
87
- if(stakingAmount > 0) {
87
+ if(stakingAmount.gtz()) {
88
88
  InstanceReader instanceReader = instance.getInstanceReader();
89
89
  IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
90
90
 
@@ -92,21 +92,21 @@ contract BundleService is
92
92
  wallet = componentInfo.wallet;
93
93
 
94
94
  IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
95
- uint256 poolFeeAmount;
95
+ Amount poolFeeAmount;
96
96
 
97
97
  // calculate pool fee and net staking amount
98
98
  (poolFeeAmount, netStakingAmount) = FeeLib.calculateFee(poolInfo.stakingFee, stakingAmount);
99
99
 
100
100
  // update pool balance and fee amount
101
- poolInfo.balanceAmount += netStakingAmount;
101
+ poolInfo.balanceAmount = poolInfo.balanceAmount + netStakingAmount;
102
102
 
103
- if(poolFeeAmount > 0) {
104
- poolInfo.feeAmount += poolFeeAmount;
103
+ if(poolFeeAmount.gtz()) {
104
+ poolInfo.feeAmount = poolInfo.feeAmount + poolFeeAmount;
105
105
  }
106
106
 
107
107
  // save updated pool info
108
108
  componentInfo.data = abi.encode(poolInfo);
109
- instance.updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
109
+ instance.getInstanceStore().updatePoolSetup(poolNftId, componentInfo, KEEP_STATE());
110
110
  }
111
111
  }
112
112
 
@@ -115,7 +115,7 @@ contract BundleService is
115
115
  IInstance instance,
116
116
  NftId poolNftId,
117
117
  address owner,
118
- Fee memory fee,
118
+ Fee memory bundleFee,
119
119
  Amount stakingAmount,
120
120
  Seconds lifetime,
121
121
  bytes calldata filter
@@ -125,21 +125,6 @@ contract BundleService is
125
125
  // TODO add restricted and add authz for pool service
126
126
  returns(NftId bundleNftId)
127
127
  {
128
- InstanceReader instanceReader = instance.getInstanceReader();
129
-
130
- // create initial bundle info
131
- IBundle.BundleInfo memory bundleInfo = IBundle.BundleInfo(
132
- poolNftId,
133
- fee,
134
- filter,
135
- stakingAmount,
136
- AmountLib.zero(),
137
- AmountLib.zero(),
138
- lifetime,
139
- TimestampLib.blockTimestamp().addSeconds(lifetime),
140
- zeroTimestamp()
141
- );
142
-
143
128
  // register bundle with registry
144
129
  bundleNftId = getRegistryService().registerBundle(
145
130
  IRegistry.ObjectInfo(
@@ -154,23 +139,27 @@ contract BundleService is
154
139
  );
155
140
 
156
141
  // create bundle info in instance
157
- instance.createBundle(bundleNftId, bundleInfo);
142
+ instance.getInstanceStore().createBundle(
143
+ bundleNftId,
144
+ IBundle.BundleInfo(
145
+ poolNftId,
146
+ bundleFee,
147
+ filter,
148
+ stakingAmount,
149
+ AmountLib.zero(),
150
+ AmountLib.zero(),
151
+ lifetime,
152
+ TimestampLib.blockTimestamp().addSeconds(lifetime),
153
+ zeroTimestamp()));
158
154
 
159
155
  // put bundle under bundle managemet
160
156
  BundleManager bundleManager = instance.getBundleManager();
161
157
  bundleManager.add(bundleNftId);
162
-
163
- // transfer full staking amount to pool wallet
164
- IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
165
- componentInfo.tokenHandler.transfer(
166
- owner,
167
- componentInfo.wallet,
168
- stakingAmount.toInt()
169
- );
170
158
 
171
159
  // TODO add logging
172
160
  }
173
161
 
162
+
174
163
  function setFee(
175
164
  NftId bundleNftId,
176
165
  Fee memory fee
@@ -178,16 +167,19 @@ contract BundleService is
178
167
  external
179
168
  override
180
169
  {
181
- (NftId poolNftId, IRegistry.ObjectInfo memory info , IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
170
+ (NftId poolNftId,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(POOL());
182
171
  InstanceReader instanceReader = instance.getInstanceReader();
183
-
184
172
  IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
185
- require(bundleInfo.poolNftId.gtz(), "ERROR:PLS-010:BUNDLE_UNKNOWN");
186
- require(poolNftId == bundleInfo.poolNftId, "ERROR:PLS-011:BUNDLE_POOL_MISMATCH");
173
+ if(bundleInfo.poolNftId.eqz()) {
174
+ revert ErrorBundleServiceBundleUnknown(bundleNftId);
175
+ }
187
176
 
188
- bundleInfo.fee = fee;
177
+ if(bundleInfo.poolNftId != poolNftId) {
178
+ revert ErrorBundleServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, poolNftId);
179
+ }
189
180
 
190
- instance.updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
181
+ bundleInfo.fee = fee;
182
+ instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
191
183
  }
192
184
 
193
185
 
@@ -196,8 +188,8 @@ contract BundleService is
196
188
  IInstance instance,
197
189
  NftId policyNftId,
198
190
  NftId bundleNftId,
199
- uint256 collateralAmount, // required amount to collateralize policy
200
- uint256 premiumAmount // premium part that reaches bundle for this policy
191
+ Amount collateralAmount, // required amount to collateralize policy
192
+ Amount premiumAmount // premium part that reaches bundle for this policy
201
193
  )
202
194
  external
203
195
  onlyService // TODO replace with restricted + appropriate granting
@@ -212,7 +204,7 @@ contract BundleService is
212
204
  }
213
205
 
214
206
  // ensure bundle capacity is sufficent to collateralize policy
215
- uint capacity = bundleInfo.capitalAmount.toInt() + premiumAmount - bundleInfo.lockedAmount.toInt();
207
+ Amount capacity = bundleInfo.capitalAmount + premiumAmount - bundleInfo.lockedAmount;
216
208
  if(capacity < collateralAmount) {
217
209
  revert ErrorBundleServiceCapacityInsufficient(bundleNftId, capacity, collateralAmount);
218
210
  }
@@ -220,7 +212,7 @@ contract BundleService is
220
212
  // TODO add more validation
221
213
 
222
214
  // updated locked amount
223
- bundleInfo.lockedAmount = AmountLib.toAmount(bundleInfo.lockedAmount.toInt() + collateralAmount);
215
+ bundleInfo.lockedAmount = bundleInfo.lockedAmount + collateralAmount;
224
216
 
225
217
  // update capital and fees when premiums are involved
226
218
  _updateBundleWithPremium(instance, bundleNftId, bundleInfo, premiumAmount);
@@ -234,40 +226,46 @@ contract BundleService is
234
226
  IInstance instance,
235
227
  NftId bundleNftId,
236
228
  IBundle.BundleInfo memory bundleInfo,
237
- uint256 premiumAmount
229
+ Amount premiumAmount
238
230
  )
239
231
  internal
240
232
  {
241
233
  // update bundle capital and fee amounts
242
- if(premiumAmount > 0) {
234
+ if(premiumAmount.gtz()) {
243
235
  // calculate fees and net premium amounts
244
236
  (
245
- uint256 feeAmount,
246
- uint256 netPremiumAmount
237
+ ,
238
+ Amount netPremiumAmount
247
239
  ) = FeeLib.calculateFee(bundleInfo.fee, premiumAmount);
248
240
 
249
241
  // update bundle info with additional capital
250
- bundleInfo.capitalAmount = AmountLib.toAmount(bundleInfo.capitalAmount.toInt() + netPremiumAmount);
251
-
252
- // update bundle info with additional fees
253
- if(feeAmount > 0) {
254
- bundleInfo.feeAmount = AmountLib.toAmount(bundleInfo.feeAmount.toInt() + feeAmount);
255
- }
242
+ bundleInfo.capitalAmount = bundleInfo.capitalAmount + netPremiumAmount;
256
243
  }
257
244
 
258
245
  // save updated bundle info
259
- instance.updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
246
+ instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
260
247
  }
261
248
 
249
+ function updateBundleFees(
250
+ IInstance instance,
251
+ NftId bundleNftId,
252
+ Amount feeAmount
253
+ )
254
+ external
255
+ {
256
+ IBundle.BundleInfo memory bundleInfo = instance.getInstanceReader().getBundleInfo(bundleNftId);
257
+ bundleInfo.feeAmount = bundleInfo.feeAmount.add(feeAmount);
258
+ instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
259
+ }
262
260
 
263
261
  function lock(NftId bundleNftId)
264
262
  external
265
263
  virtual
266
264
  {
267
- (,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
265
+ (,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(POOL());
268
266
 
269
267
  // udpate bundle state
270
- instance.updateBundleState(bundleNftId, PAUSED());
268
+ instance.getInstanceStore().updateBundleState(bundleNftId, PAUSED());
271
269
 
272
270
  // update set of active bundles
273
271
  BundleManager bundleManager = instance.getBundleManager();
@@ -281,10 +279,10 @@ contract BundleService is
281
279
  external
282
280
  virtual
283
281
  {
284
- (,, IInstance instance) = _getAndVerifyComponentInfoAndInstance(POOL());
282
+ (,, IInstance instance) = _getAndVerifyCallingComponentAndInstance(POOL());
285
283
 
286
284
  // udpate bundle state
287
- instance.updateBundleState(bundleNftId, ACTIVE());
285
+ instance.getInstanceStore().updateBundleState(bundleNftId, ACTIVE());
288
286
 
289
287
  // update set of active bundles
290
288
  BundleManager bundleManager = instance.getBundleManager();
@@ -303,7 +301,7 @@ contract BundleService is
303
301
  // TODO add restricted and autz for pool service
304
302
  {
305
303
  // udpate bundle state
306
- instance.updateBundleState(bundleNftId, CLOSED());
304
+ instance.getInstanceStore().updateBundleState(bundleNftId, CLOSED());
307
305
 
308
306
  // ensure no open policies attached to bundle
309
307
  BundleManager bundleManager = instance.getBundleManager();
@@ -320,7 +318,7 @@ contract BundleService is
320
318
  function increaseBalance(
321
319
  IInstance instance,
322
320
  NftId bundleNftId,
323
- uint256 premiumAmount
321
+ Amount premiumAmount
324
322
  )
325
323
  external
326
324
  onlyService
@@ -337,7 +335,7 @@ contract BundleService is
337
335
  function releaseCollateral(IInstance instance,
338
336
  NftId policyNftId,
339
337
  NftId bundleNftId,
340
- uint256 collateralAmount
338
+ Amount collateralAmount
341
339
  )
342
340
  external
343
341
  onlyService
@@ -346,11 +344,8 @@ contract BundleService is
346
344
  IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
347
345
 
348
346
  // reduce locked amount by released collateral amount
349
- bundleInfo.lockedAmount = AmountLib.toAmount(bundleInfo.lockedAmount.toInt() - collateralAmount);
350
-
351
- instance.updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
352
-
353
- _unlinkPolicy(instance, policyNftId);
347
+ bundleInfo.lockedAmount = bundleInfo.lockedAmount - collateralAmount;
348
+ instance.getInstanceStore().updateBundle(bundleNftId, bundleInfo, KEEP_STATE());
354
349
  }
355
350
 
356
351
  /// @dev links policy to bundle
@@ -369,63 +364,19 @@ contract BundleService is
369
364
  bundleManager.linkPolicy(policyNftId);
370
365
  }
371
366
 
372
- /// @dev unlinks policy from bundle
373
- function _unlinkPolicy(IInstance instance, NftId policyNftId)
374
- internal
367
+ /// @dev unlinks policy from bundle
368
+ function unlinkPolicy(
369
+ IInstance instance,
370
+ NftId policyNftId
371
+ )
372
+ external
373
+ virtual
375
374
  {
376
- InstanceReader instanceReader = instance.getInstanceReader();
377
- IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
378
-
379
- // ensure policy has no open claims
380
- if (policyInfo.openClaimsCount > 0) {
381
- revert BundleManager.ErrorBundleManagerPolicyWithOpenClaims(
382
- policyNftId,
383
- policyInfo.openClaimsCount);
384
- }
385
-
386
375
  // ensure policy is closeable
387
- if ( TimestampLib.blockTimestamp() < policyInfo.expiredAt
388
- && policyInfo.payoutAmount < policyInfo.sumInsuredAmount)
389
- {
390
- revert BundleManager.ErrorBundleManagerPolicyNotCloseable(policyNftId);
376
+ if (!instance.getInstanceReader().policyIsCloseable(policyNftId)) {
377
+ revert ErrorBundleServicePolicyNotCloseable(policyNftId);
391
378
  }
392
-
393
- BundleManager bundleManager = instance.getBundleManager();
394
- bundleManager.unlinkPolicy(policyNftId);
395
- }
396
-
397
- // TODO move this to pool service
398
- function _processStakingByTreasury(
399
- InstanceReader instanceReader,
400
- NftId poolNftId,
401
- NftId bundleNftId,
402
- Amount stakingAmount
403
- )
404
- internal
405
- {
406
- // process token transfer(s)
407
- if(stakingAmount.gtz()) {
408
- IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(poolNftId);
409
- IComponents.PoolInfo memory poolInfo = abi.decode(componentInfo.data, (IComponents.PoolInfo));
410
379
 
411
- TokenHandler tokenHandler = componentInfo.tokenHandler;
412
- address bundleOwner = getRegistry().ownerOf(bundleNftId);
413
- Fee memory stakingFee = poolInfo.stakingFee;
414
-
415
- // pool fee and bundle capital book keeping
416
- if (FeeLib.gtz(stakingFee)) {
417
- (uint256 stakingFeeAmount, uint256 netAmount) = FeeLib.calculateFee(stakingFee, stakingAmount.toInt());
418
-
419
-
420
- // TODO: track staking fees in pool's state (issue #177)
421
- }
422
-
423
- // transfer full staking amount to pool wallet
424
- tokenHandler.transfer(
425
- bundleOwner,
426
- componentInfo.wallet,
427
- stakingAmount.toInt()
428
- );
429
- }
380
+ instance.getBundleManager().unlinkPolicy(policyNftId);
430
381
  }
431
382
  }