@etherisc/gif-next 0.0.2-f29e479-370 → 0.0.2-f2df3e2-873
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.
- package/README.md +6 -83
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/components/Component.sol/Component.json +78 -89
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +139 -140
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +156 -64
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +181 -112
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +353 -176
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +162 -138
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +299 -245
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +83 -162
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +1206 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +64 -50
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.json +5 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +527 -400
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +175 -51
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +500 -612
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +472 -126
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +253 -236
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +305 -211
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +71 -23
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +8 -13
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +86 -31
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +40 -10
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +36 -11
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +56 -73
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.json +10 -0
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +291 -100
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +46 -22
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +422 -252
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +78 -14
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +373 -87
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +55 -7
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +579 -123
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +71 -47
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +200 -46
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +241 -188
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +251 -58
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +444 -25
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +430 -76
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +511 -14
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +80 -14
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +544 -153
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +51 -27
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +562 -52
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +24 -12
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +115 -52
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +16 -12
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +19 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -24
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +31 -12
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +2 -2
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -37
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +7 -7
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +23 -11
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +80 -14
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +3 -3
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +87 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +3 -3
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +6 -6
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +102 -27
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +2 -2
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +185 -0
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +83 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +40 -9
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +17 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +116 -7
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +23 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +124 -0
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +38 -7
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +2 -2
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
- package/contracts/components/Component.sol +99 -87
- package/contracts/components/Distribution.sol +18 -21
- package/contracts/components/IComponent.sol +40 -18
- package/contracts/components/IDistributionComponent.sol +1 -22
- package/contracts/components/IPoolComponent.sol +73 -47
- package/contracts/components/IProductComponent.sol +3 -2
- package/contracts/components/Pool.sol +178 -130
- package/contracts/components/Product.sol +157 -71
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +13 -0
- package/contracts/instance/BundleManager.sol +10 -9
- package/contracts/instance/Cloneable.sol +7 -2
- package/contracts/instance/IInstance.sol +37 -27
- package/contracts/instance/IInstanceService.sol +18 -9
- package/contracts/instance/Instance.sol +117 -98
- package/contracts/instance/InstanceAccessManager.sol +388 -158
- package/contracts/instance/InstanceReader.sol +36 -12
- package/contracts/instance/InstanceService.sol +193 -191
- package/contracts/instance/ObjectManager.sol +6 -8
- package/contracts/instance/base/ComponentService.sol +17 -30
- package/contracts/instance/base/KeyValueStore.sol +13 -5
- package/contracts/instance/base/Lifecycle.sol +23 -6
- package/contracts/instance/module/IAccess.sol +21 -14
- package/contracts/instance/module/IBundle.sol +8 -5
- package/contracts/instance/module/IComponents.sol +41 -0
- package/contracts/instance/module/IDistribution.sol +2 -1
- package/contracts/instance/module/IPolicy.sol +37 -7
- package/contracts/instance/module/ISetup.sol +7 -22
- package/contracts/instance/service/ApplicationService.sol +137 -50
- package/contracts/instance/service/BundleService.sol +221 -83
- package/contracts/instance/service/ClaimService.sol +114 -26
- package/contracts/instance/service/DistributionService.sol +174 -118
- package/contracts/instance/service/IApplicationService.sol +9 -13
- package/contracts/instance/service/IBundleService.sol +68 -26
- package/contracts/instance/service/IClaimService.sol +46 -15
- package/contracts/instance/service/IDistributionService.sol +20 -4
- package/contracts/instance/service/IPolicyService.sol +69 -21
- package/contracts/instance/service/IPoolService.sol +82 -3
- package/contracts/instance/service/PolicyService.sol +297 -232
- package/contracts/instance/service/PoolService.sol +214 -20
- package/contracts/instance/service/ProductService.sol +31 -54
- package/contracts/registry/ChainNft.sol +8 -0
- package/contracts/registry/IRegistry.sol +2 -0
- package/contracts/registry/IRegistryService.sol +4 -3
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +23 -20
- package/contracts/registry/RegistryService.sol +15 -16
- package/contracts/registry/ReleaseManager.sol +20 -18
- package/contracts/shared/IService.sol +4 -6
- package/contracts/shared/Registerable.sol +2 -2
- package/contracts/shared/Service.sol +21 -7
- package/contracts/shared/TokenHandler.sol +11 -5
- package/contracts/test/TestService.sol +1 -1
- package/contracts/types/Amount.sol +65 -0
- package/contracts/types/Blocknumber.sol +1 -0
- package/contracts/types/ClaimId.sol +25 -2
- package/contracts/types/Fee.sol +13 -5
- package/contracts/types/NftId.sol +8 -0
- package/contracts/types/ObjectType.sol +6 -5
- package/contracts/types/PayoutId.sol +33 -5
- package/contracts/types/Referral.sol +4 -0
- package/contracts/types/RoleId.sol +13 -6
- package/contracts/types/Seconds.sol +54 -0
- package/contracts/types/StateId.sol +7 -2
- package/contracts/types/Timestamp.sol +18 -13
- package/contracts/types/UFixed.sol +1 -0
- package/contracts/types/Version.sol +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
@@ -1,18 +1,6 @@
|
|
1
1
|
# GIF-Next (Generic Insurance Framework, next version)
|
2
2
|
|
3
3
|
|
4
|
-
```mermaid
|
5
|
-
graph TD
|
6
|
-
IPoolComponent --> IComponent
|
7
|
-
IComponent --> IRegisterable
|
8
|
-
IComponent --> ITransferInterceptor
|
9
|
-
IRegistryService --> IService
|
10
|
-
IService-->IRegisterable
|
11
|
-
IService-->IVersionable
|
12
|
-
IRegisterable-->INftOwnable
|
13
|
-
INftOwnable-->IERC165
|
14
|
-
```
|
15
|
-
|
16
4
|
## Add OpenZeppelin V5 Dependencies
|
17
5
|
|
18
6
|
```shell
|
@@ -40,6 +28,10 @@ This repository uses submodules. To checkout or update to the latest submodules,
|
|
40
28
|
git submodule update --recursive
|
41
29
|
```
|
42
30
|
|
31
|
+
## Example components
|
32
|
+
|
33
|
+
A (very early) example of a product and a pool can be found in the [gif-next-sandbox repository](https://github.com/etherisc/gif-next-sandbox).
|
34
|
+
|
43
35
|
## Hardhat
|
44
36
|
|
45
37
|
### NPM Commands
|
@@ -232,17 +224,7 @@ https://book.getfoundry.sh/reference/
|
|
232
224
|
|
233
225
|
## Style Guide
|
234
226
|
|
235
|
-
|
236
|
-
|
237
|
-
Documentation of the code should be written inline using [NatSpec](https://docs.soliditylang.org/en/latest/natspec-format.html).
|
238
|
-
|
239
|
-
### Naming conventions
|
240
|
-
|
241
|
-
Additionally, we use the following naming conventions:
|
242
|
-
|
243
|
-
- Function arguments and return types: If using custom data types, make the name include the type by appending the Type to the argument name, e.g. `function getInfo(NftId bundleNftId)` instead of `function getInfo(NftId bundleId)`. Background: Custom data types are lost when using the ABI or Typescript binding classes (e.g. instead of `NftID` a `uint96` is used), so the type needs to be included in the name to make it clear what the argument is without having to look at the documentation or checking the solidity source code.
|
244
|
-
- When naming a field or an attribute `id` and the context is not clear, call it `nftId` instead so its clear what type if id it is as there will be multiple ids for different kind of objects. Example: if you the function has a bundle nft id and a policy nft id as arguments, call them `bundleNftId` and `policyNftId` instead of `id` and `policyId`. In case of doubt, be a bit more verbose for the sake of clarity.
|
245
|
-
- When naming things, remember that the code will likely be used in Javascript/Typescript as well, so avoid names that are reserved in Javascript/Typescript. A list of reserved words in Javascript can be found [here](https://www.w3schools.com/js/js_reserved.asp) and a list of reserved words in Typescript can be found [here](https://www.tektutorialshub.com/typescript/identifiers-keywords-in-typescript/).
|
227
|
+
Please see https://docs.etherisc.com/gif-next/3.x/ for style guide and general coding rules.
|
246
228
|
|
247
229
|
### Automatic code formatting
|
248
230
|
|
@@ -257,7 +239,7 @@ We use solhint to lint the code.
|
|
257
239
|
To execute linting run `npm run lint`.
|
258
240
|
|
259
241
|
|
260
|
-
### Adding Brownie (Legacy)
|
242
|
+
### Adding Brownie (Legacy - don't do that :wink: )
|
261
243
|
|
262
244
|
python3 is already installed
|
263
245
|
|
@@ -405,65 +387,6 @@ Intercepting property
|
|
405
387
|
|
406
388
|
### Product
|
407
389
|
|
408
|
-
### Payout Handling
|
409
|
-
|
410
|
-
Pool specifies **retention level**.
|
411
|
-
Retention level defines up to which percentage of the sum insured the pool is payout out using its own/current funds.
|
412
|
-
Depending on the amount of a new payout the poolService decides to either execute the payout directly or to add the payout as a pending payout with a notification of the pool.
|
413
|
-
|
414
|
-
The sequence below sketches the small payout flow (payout < retention amount)
|
415
|
-
- retention level: 30%
|
416
|
-
- sum insured: 1000
|
417
|
-
- payout: 200
|
418
|
-
|
419
|
-
```mermaid
|
420
|
-
sequenceDiagram
|
421
|
-
participant customer
|
422
|
-
participant product
|
423
|
-
participant claimService
|
424
|
-
participant poolService
|
425
|
-
participant pool
|
426
|
-
product->>claimService: createPayout()
|
427
|
-
claimService ->> poolService: requestPayout()
|
428
|
-
poolService -->> pool: verifyPayout() *
|
429
|
-
poolService ->> poolService: processPayout()
|
430
|
-
poolService ->> customer: transfer token for payout
|
431
|
-
poolService ->> claimService: payoutExecuted()
|
432
|
-
poolService -->> customer: payoutExecutedCallback() **
|
433
|
-
```
|
434
|
-
|
435
|
-
*: if pool is configured to verify payouts before execution
|
436
|
-
|
437
|
-
**: callback only if customer is contract (IPolicyHolder)
|
438
|
-
|
439
|
-
The sequence below sketches the call flow for payouts larger than the retention amount
|
440
|
-
- retention level: 30%
|
441
|
-
- sum insured: 1000
|
442
|
-
- payout: 500
|
443
|
-
* locally available: 300
|
444
|
-
* via policy (re-insurance): 200
|
445
|
-
|
446
|
-
```mermaid
|
447
|
-
sequenceDiagram
|
448
|
-
participant customer
|
449
|
-
participant product
|
450
|
-
participant claimService
|
451
|
-
participant poolService
|
452
|
-
participant pool
|
453
|
-
pool ->> reinsuranceProduct: applyForPolicy()
|
454
|
-
product->>claimService: createPayout()
|
455
|
-
claimService ->> poolService: requestPayout()
|
456
|
-
poolService ->> pool: pendingPayoutAdded()
|
457
|
-
pool ->> pool: getReinsurancePolicy()
|
458
|
-
pool ->> reinsuranceProduct: claim()
|
459
|
-
reinsuranceProduct -->> reinsurancePool: createPayout
|
460
|
-
reinsurancePool ->> pool: transfer token for payout
|
461
|
-
reinsurancePool ->> pool: payoutExecutedCallback()
|
462
|
-
pool ->> poolService: processPendingPayout()
|
463
|
-
poolService ->> customer: transfer token for payout
|
464
|
-
poolService ->> claimService: payoutExecuted()
|
465
|
-
```
|
466
|
-
|
467
390
|
### Pool
|
468
391
|
|
469
392
|
### Distribution
|
@@ -80,11 +80,6 @@
|
|
80
80
|
"internalType": "NftId",
|
81
81
|
"name": "instanceNftId",
|
82
82
|
"type": "uint96"
|
83
|
-
},
|
84
|
-
{
|
85
|
-
"internalType": "address",
|
86
|
-
"name": "instance",
|
87
|
-
"type": "address"
|
88
83
|
}
|
89
84
|
],
|
90
85
|
"name": "ErrorComponentNotInstance",
|
@@ -107,29 +102,7 @@
|
|
107
102
|
"type": "error"
|
108
103
|
},
|
109
104
|
{
|
110
|
-
"inputs": [
|
111
|
-
{
|
112
|
-
"internalType": "address",
|
113
|
-
"name": "caller",
|
114
|
-
"type": "address"
|
115
|
-
},
|
116
|
-
{
|
117
|
-
"internalType": "uint64",
|
118
|
-
"name": "requiredRoleIdNum",
|
119
|
-
"type": "uint64"
|
120
|
-
}
|
121
|
-
],
|
122
|
-
"name": "ErrorComponentUnauthorized",
|
123
|
-
"type": "error"
|
124
|
-
},
|
125
|
-
{
|
126
|
-
"inputs": [
|
127
|
-
{
|
128
|
-
"internalType": "address",
|
129
|
-
"name": "newWallet",
|
130
|
-
"type": "address"
|
131
|
-
}
|
132
|
-
],
|
105
|
+
"inputs": [],
|
133
106
|
"name": "ErrorComponentWalletAddressIsSameAsCurrent",
|
134
107
|
"type": "error"
|
135
108
|
},
|
@@ -268,6 +241,12 @@
|
|
268
241
|
{
|
269
242
|
"anonymous": false,
|
270
243
|
"inputs": [
|
244
|
+
{
|
245
|
+
"indexed": false,
|
246
|
+
"internalType": "address",
|
247
|
+
"name": "oldWallet",
|
248
|
+
"type": "address"
|
249
|
+
},
|
271
250
|
{
|
272
251
|
"indexed": false,
|
273
252
|
"internalType": "address",
|
@@ -305,7 +284,7 @@
|
|
305
284
|
},
|
306
285
|
{
|
307
286
|
"inputs": [],
|
308
|
-
"name": "
|
287
|
+
"name": "COMPONENT_LOCATION_V1",
|
309
288
|
"outputs": [
|
310
289
|
{
|
311
290
|
"internalType": "bytes32",
|
@@ -355,6 +334,56 @@
|
|
355
334
|
"stateMutability": "view",
|
356
335
|
"type": "function"
|
357
336
|
},
|
337
|
+
{
|
338
|
+
"inputs": [],
|
339
|
+
"name": "getComponentInfo",
|
340
|
+
"outputs": [
|
341
|
+
{
|
342
|
+
"components": [
|
343
|
+
{
|
344
|
+
"internalType": "string",
|
345
|
+
"name": "name",
|
346
|
+
"type": "string"
|
347
|
+
},
|
348
|
+
{
|
349
|
+
"internalType": "contract IERC20Metadata",
|
350
|
+
"name": "token",
|
351
|
+
"type": "address"
|
352
|
+
},
|
353
|
+
{
|
354
|
+
"internalType": "contract TokenHandler",
|
355
|
+
"name": "tokenHandler",
|
356
|
+
"type": "address"
|
357
|
+
},
|
358
|
+
{
|
359
|
+
"internalType": "address",
|
360
|
+
"name": "wallet",
|
361
|
+
"type": "address"
|
362
|
+
},
|
363
|
+
{
|
364
|
+
"internalType": "Amount",
|
365
|
+
"name": "balanceAmount",
|
366
|
+
"type": "uint96"
|
367
|
+
},
|
368
|
+
{
|
369
|
+
"internalType": "Amount",
|
370
|
+
"name": "feeAmount",
|
371
|
+
"type": "uint96"
|
372
|
+
},
|
373
|
+
{
|
374
|
+
"internalType": "bytes",
|
375
|
+
"name": "data",
|
376
|
+
"type": "bytes"
|
377
|
+
}
|
378
|
+
],
|
379
|
+
"internalType": "struct IComponents.ComponentInfo",
|
380
|
+
"name": "info",
|
381
|
+
"type": "tuple"
|
382
|
+
}
|
383
|
+
],
|
384
|
+
"stateMutability": "view",
|
385
|
+
"type": "function"
|
386
|
+
},
|
358
387
|
{
|
359
388
|
"inputs": [],
|
360
389
|
"name": "getInitialInfo",
|
@@ -418,32 +447,6 @@
|
|
418
447
|
"stateMutability": "view",
|
419
448
|
"type": "function"
|
420
449
|
},
|
421
|
-
{
|
422
|
-
"inputs": [],
|
423
|
-
"name": "getInstanceReader",
|
424
|
-
"outputs": [
|
425
|
-
{
|
426
|
-
"internalType": "contract InstanceReader",
|
427
|
-
"name": "reader",
|
428
|
-
"type": "address"
|
429
|
-
}
|
430
|
-
],
|
431
|
-
"stateMutability": "view",
|
432
|
-
"type": "function"
|
433
|
-
},
|
434
|
-
{
|
435
|
-
"inputs": [],
|
436
|
-
"name": "getInstanceService",
|
437
|
-
"outputs": [
|
438
|
-
{
|
439
|
-
"internalType": "contract IInstanceService",
|
440
|
-
"name": "",
|
441
|
-
"type": "address"
|
442
|
-
}
|
443
|
-
],
|
444
|
-
"stateMutability": "view",
|
445
|
-
"type": "function"
|
446
|
-
},
|
447
450
|
{
|
448
451
|
"inputs": [],
|
449
452
|
"name": "getName",
|
@@ -496,19 +499,6 @@
|
|
496
499
|
"stateMutability": "view",
|
497
500
|
"type": "function"
|
498
501
|
},
|
499
|
-
{
|
500
|
-
"inputs": [],
|
501
|
-
"name": "getProductService",
|
502
|
-
"outputs": [
|
503
|
-
{
|
504
|
-
"internalType": "contract IProductService",
|
505
|
-
"name": "",
|
506
|
-
"type": "address"
|
507
|
-
}
|
508
|
-
],
|
509
|
-
"stateMutability": "view",
|
510
|
-
"type": "function"
|
511
|
-
},
|
512
502
|
{
|
513
503
|
"inputs": [],
|
514
504
|
"name": "getRegistry",
|
@@ -535,25 +525,6 @@
|
|
535
525
|
"stateMutability": "view",
|
536
526
|
"type": "function"
|
537
527
|
},
|
538
|
-
{
|
539
|
-
"inputs": [
|
540
|
-
{
|
541
|
-
"internalType": "ObjectType",
|
542
|
-
"name": "domain",
|
543
|
-
"type": "uint8"
|
544
|
-
}
|
545
|
-
],
|
546
|
-
"name": "getServiceAddress",
|
547
|
-
"outputs": [
|
548
|
-
{
|
549
|
-
"internalType": "address",
|
550
|
-
"name": "service",
|
551
|
-
"type": "address"
|
552
|
-
}
|
553
|
-
],
|
554
|
-
"stateMutability": "view",
|
555
|
-
"type": "function"
|
556
|
-
},
|
557
528
|
{
|
558
529
|
"inputs": [],
|
559
530
|
"name": "getToken",
|
@@ -619,7 +590,7 @@
|
|
619
590
|
},
|
620
591
|
{
|
621
592
|
"internalType": "bytes",
|
622
|
-
"name": "
|
593
|
+
"name": "registryData",
|
623
594
|
"type": "bytes"
|
624
595
|
}
|
625
596
|
],
|
@@ -682,7 +653,7 @@
|
|
682
653
|
},
|
683
654
|
{
|
684
655
|
"internalType": "bytes",
|
685
|
-
"name": "
|
656
|
+
"name": "registryData",
|
686
657
|
"type": "bytes"
|
687
658
|
}
|
688
659
|
],
|
@@ -744,6 +715,24 @@
|
|
744
715
|
"stateMutability": "nonpayable",
|
745
716
|
"type": "function"
|
746
717
|
},
|
718
|
+
{
|
719
|
+
"inputs": [
|
720
|
+
{
|
721
|
+
"internalType": "address",
|
722
|
+
"name": "to",
|
723
|
+
"type": "address"
|
724
|
+
},
|
725
|
+
{
|
726
|
+
"internalType": "uint256",
|
727
|
+
"name": "tokenId",
|
728
|
+
"type": "uint256"
|
729
|
+
}
|
730
|
+
],
|
731
|
+
"name": "nftMint",
|
732
|
+
"outputs": [],
|
733
|
+
"stateMutability": "nonpayable",
|
734
|
+
"type": "function"
|
735
|
+
},
|
747
736
|
{
|
748
737
|
"inputs": [
|
749
738
|
{
|