@etherisc/gif-next 0.0.2-f752d2a-551 → 0.0.2-f7b8c9f-518
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 +71 -0
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +166 -39
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +557 -0
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +119 -39
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +177 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +108 -156
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +67 -139
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +417 -88
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +360 -51
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +913 -530
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +1043 -556
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +224 -43
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +51 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/instance/base/IService.sol/IService.json +174 -53
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +263 -45
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +41 -23
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +4 -4
- package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +220 -52
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +55 -54
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +56 -55
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +22 -93
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +22 -93
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +10 -0
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{compensation/ICompensation.sol/ICompensation.json → distribution/IDistribution.sol/IDistribution.json} +2 -2
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{compensation/ICompensation.sol/ICompensationModule.json → distribution/IDistribution.sol/IDistributionModule.json} +2 -2
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +61 -51
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +61 -51
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +29 -14
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +28 -13
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +104 -1
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +126 -5
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +326 -221
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +326 -221
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +350 -79
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +630 -0
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +176 -74
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +446 -0
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +235 -50
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +325 -51
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +335 -53
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +466 -71
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +141 -12
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +5 -0
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +298 -39
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +745 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +34 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +489 -120
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +997 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +468 -0
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +107 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +127 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -37
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +55 -14
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +158 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +349 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +190 -37
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +78 -14
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +4 -0
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +557 -0
- 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/TestPool.sol/TestPool.dbg.json +1 -1
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +417 -88
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +1 -1
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +407 -56
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +204 -36
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +2 -2
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +267 -62
- 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 +89 -25
- 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/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +50 -11
- 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 +2 -2
- 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/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +99 -0
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
- 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/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.json +40 -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/BaseComponent.sol +12 -21
- package/contracts/components/Distribution.sol +155 -0
- package/contracts/components/IBaseComponent.sol +2 -2
- package/contracts/components/IDistributionComponent.sol +46 -0
- package/contracts/components/IPoolComponent.sol +15 -8
- package/contracts/components/IProductComponent.sol +26 -8
- package/contracts/components/Pool.sol +99 -27
- package/contracts/components/Product.sol +204 -22
- package/contracts/instance/IInstance.sol +12 -10
- package/contracts/instance/Instance.sol +28 -9
- package/contracts/instance/base/ComponentServiceBase.sol +13 -6
- package/contracts/instance/base/IInstanceBase.sol +11 -2
- package/contracts/instance/base/IKeyValueStore.sol +4 -3
- package/contracts/instance/base/InstanceBase.sol +19 -10
- package/contracts/instance/base/KeyValueStore.sol +12 -7
- package/contracts/instance/base/Lifecycle.sol +15 -10
- package/contracts/instance/base/ModuleBase.sol +22 -17
- package/contracts/instance/base/ServiceBase.sol +20 -13
- package/contracts/instance/module/access/Access.sol +3 -3
- package/contracts/instance/module/bundle/BundleModule.sol +10 -12
- package/contracts/instance/module/bundle/IBundle.sol +6 -11
- package/contracts/instance/module/component/ComponentModule.sol +34 -58
- package/contracts/instance/module/component/IComponent.sol +7 -32
- package/contracts/instance/module/distribution/DistributionModule.sol +17 -0
- package/contracts/instance/module/distribution/IDistribution.sol +10 -0
- package/contracts/instance/module/policy/IPolicy.sol +13 -10
- package/contracts/instance/module/policy/PolicyModule.sol +35 -20
- package/contracts/instance/module/pool/IPoolModule.sol +4 -4
- package/contracts/instance/module/pool/PoolModule.sol +23 -15
- package/contracts/instance/module/risk/IRisk.sol +18 -2
- package/contracts/instance/module/risk/RiskModule.sol +56 -2
- package/contracts/instance/module/treasury/ITreasury.sol +32 -51
- package/contracts/instance/module/treasury/TokenHandler.sol +2 -2
- package/contracts/instance/module/treasury/TreasuryModule.sol +68 -89
- package/contracts/instance/service/ComponentOwnerService.sol +200 -95
- package/contracts/instance/service/DistributionService.sol +54 -0
- package/contracts/instance/service/IComponentOwnerService.sol +0 -2
- package/contracts/instance/service/IDistributionService.sol +12 -0
- package/contracts/instance/service/IPoolService.sol +7 -0
- package/contracts/instance/service/IProductService.sol +56 -7
- package/contracts/instance/service/PoolService.sol +49 -23
- package/contracts/instance/service/ProductService.sol +248 -92
- package/contracts/registry/ChainNft.sol +43 -15
- package/contracts/registry/IChainNft.sol +3 -2
- package/contracts/registry/IRegistry.sol +42 -26
- package/contracts/registry/IRegistryService.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +6 -0
- package/contracts/registry/Registry.sol +384 -274
- package/contracts/registry/RegistryService.sol +368 -0
- package/contracts/registry/RegistryServiceManager.sol +43 -0
- package/contracts/shared/ContractDeployerLib.sol +72 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/INftOwnable.sol +22 -0
- package/contracts/shared/IRegisterable.sol +9 -16
- package/contracts/shared/IVersionable.sol +55 -11
- package/contracts/shared/NftOwnable.sol +136 -0
- package/contracts/shared/ProxyManager.sol +94 -0
- package/contracts/shared/Registerable.sol +62 -59
- package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
- package/contracts/shared/Versionable.sol +112 -54
- package/contracts/test/TestDistribution.sol +22 -0
- package/contracts/test/TestPool.sol +7 -2
- package/contracts/test/TestProduct.sol +37 -7
- package/contracts/test/TestRegisterable.sol +5 -6
- package/contracts/test/TestService.sol +5 -11
- package/contracts/types/Fee.sol +8 -3
- package/contracts/types/ObjectType.sol +24 -8
- package/contracts/types/ReferralId.sol +48 -0
- package/contracts/types/RiskId.sol +43 -0
- package/contracts/types/RoleId.sol +2 -2
- package/contracts/types/Version.sol +9 -0
- package/package.json +1 -1
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.json +0 -24
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
- package/contracts/experiment/statemachine/README.md +0 -112
- package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
- package/contracts/instance/module/compensation/ICompensation.sol +0 -10
- package/contracts/registry/IRegistryLinked.sol +0 -8
- package/contracts/shared/IOwnable.sol +0 -6
@@ -3,6 +3,8 @@ pragma solidity ^0.8.19;
|
|
3
3
|
|
4
4
|
import {Product} from "../../contracts/components/Product.sol";
|
5
5
|
import {NftId, toNftId} from "../../contracts/types/NftId.sol";
|
6
|
+
import {ReferralId} from "../types/ReferralId.sol";
|
7
|
+
import {RiskId} from "../../contracts/types/RiskId.sol";
|
6
8
|
import {Timestamp, blockTimestamp} from "../../contracts/types/Timestamp.sol";
|
7
9
|
import {Fee} from "../../contracts/types/Fee.sol";
|
8
10
|
|
@@ -10,26 +12,54 @@ contract TestProduct is Product {
|
|
10
12
|
|
11
13
|
event LogTestProductSender(address sender);
|
12
14
|
|
13
|
-
|
14
|
-
|
15
|
+
string public constant DEFAULT_RISK_NAME = "DEFAULT_RISK";
|
16
|
+
bool private defaultRiskCreated;
|
17
|
+
|
18
|
+
constructor(
|
19
|
+
address registry,
|
20
|
+
NftId instanceNftid,
|
21
|
+
address token,
|
22
|
+
bool isInterceptor,
|
23
|
+
address pool,
|
24
|
+
address distribution,
|
25
|
+
Fee memory productFee,
|
26
|
+
Fee memory processingFee,
|
27
|
+
address initialOwner
|
28
|
+
)
|
29
|
+
Product(registry, instanceNftid, token, isInterceptor, pool, distribution, productFee, processingFee, initialOwner)
|
15
30
|
// solhint-disable-next-line no-empty-blocks
|
16
|
-
{
|
31
|
+
{
|
32
|
+
}
|
33
|
+
|
34
|
+
function getDefaultRiskId() public pure returns (RiskId) {
|
35
|
+
return _toRiskId(DEFAULT_RISK_NAME);
|
36
|
+
}
|
17
37
|
|
18
38
|
function applyForPolicy(
|
19
39
|
uint256 sumInsuredAmount,
|
20
|
-
uint256 premiumAmount,
|
21
40
|
uint256 lifetime,
|
22
|
-
NftId bundleNftId
|
41
|
+
NftId bundleNftId,
|
42
|
+
ReferralId referralId
|
23
43
|
)
|
24
44
|
external
|
25
45
|
returns(NftId nftId)
|
26
46
|
{
|
47
|
+
RiskId riskId = getDefaultRiskId();
|
48
|
+
bytes memory applicationData = "";
|
49
|
+
|
50
|
+
if (!defaultRiskCreated) {
|
51
|
+
_createRisk(riskId, "");
|
52
|
+
defaultRiskCreated = true;
|
53
|
+
}
|
54
|
+
|
27
55
|
nftId = _createApplication(
|
28
56
|
msg.sender, // policy holder
|
57
|
+
riskId,
|
29
58
|
sumInsuredAmount,
|
30
|
-
premiumAmount,
|
31
59
|
lifetime,
|
32
|
-
|
60
|
+
applicationData,
|
61
|
+
bundleNftId,
|
62
|
+
referralId
|
33
63
|
);
|
34
64
|
}
|
35
65
|
|
@@ -8,12 +8,11 @@ import {Registerable} from "../../contracts/shared/Registerable.sol";
|
|
8
8
|
|
9
9
|
contract TestRegisterable is Registerable {
|
10
10
|
|
11
|
-
constructor(address registry, NftId registryNftId)
|
12
|
-
Registerable(registry, registryNftId)
|
11
|
+
constructor(address registry, NftId registryNftId, ObjectType objectType, bool isInterceptor, address initialOwner)
|
12
|
+
//Registerable(registry, registryNftId)
|
13
13
|
// solhint-disable-next-line no-empty-blocks
|
14
|
-
{
|
15
|
-
|
16
|
-
|
17
|
-
return TOKEN();
|
14
|
+
{
|
15
|
+
bytes memory data = "";
|
16
|
+
_initializeRegisterable(registry, registryNftId, objectType, isInterceptor, initialOwner, data);
|
18
17
|
}
|
19
18
|
}
|
@@ -8,25 +8,19 @@ import {ServiceBase} from "../../contracts/instance/base/ServiceBase.sol";
|
|
8
8
|
import {IVersionable} from "../../contracts/shared/IVersionable.sol";
|
9
9
|
import {Versionable} from "../../contracts/shared/Versionable.sol";
|
10
10
|
|
11
|
+
//import {IService} from "../../contracts/instance/base/IService.sol";
|
12
|
+
|
11
13
|
contract TestService is ServiceBase {
|
12
14
|
|
13
15
|
string public constant NAME = "TestService";
|
14
16
|
|
15
|
-
constructor(address registry, NftId registryNftId)
|
16
|
-
ServiceBase(registry, registryNftId)
|
17
|
+
constructor(address registry, NftId registryNftId, address initialOwner)
|
17
18
|
// solhint-disable-next-line no-empty-blocks
|
18
|
-
{}
|
19
|
-
|
20
|
-
function getVersion()
|
21
|
-
public
|
22
|
-
pure
|
23
|
-
virtual override (IVersionable, Versionable)
|
24
|
-
returns(Version)
|
25
19
|
{
|
26
|
-
|
20
|
+
_initializeServiceBase(registry, registryNftId, initialOwner);
|
27
21
|
}
|
28
22
|
|
29
|
-
function getName()
|
23
|
+
function getName() public pure override returns(string memory name) {
|
30
24
|
return NAME;
|
31
25
|
}
|
32
26
|
}
|
package/contracts/types/Fee.sol
CHANGED
@@ -11,8 +11,8 @@ struct Fee {
|
|
11
11
|
library FeeLib {
|
12
12
|
|
13
13
|
function calculateFee(
|
14
|
-
|
15
|
-
|
14
|
+
Fee memory fee,
|
15
|
+
uint256 amount
|
16
16
|
)
|
17
17
|
public
|
18
18
|
pure
|
@@ -35,7 +35,12 @@ library FeeLib {
|
|
35
35
|
return Fee(fractionalFee, fixedFee);
|
36
36
|
}
|
37
37
|
|
38
|
-
/// @dev Return the
|
38
|
+
/// @dev Return the percent fee struct (x%, 0)
|
39
|
+
function percentageFee(uint8 percent) public pure returns (Fee memory fee) {
|
40
|
+
return Fee(UFixedMathLib.toUFixed(percent, -2), 0);
|
41
|
+
}
|
42
|
+
|
43
|
+
/// @dev Return a zero fee struct (0, 0)
|
39
44
|
function zeroFee() public pure returns (Fee memory fee) {
|
40
45
|
return Fee(UFixed.wrap(0), 0);
|
41
46
|
}
|
@@ -37,36 +37,52 @@ function STAKE() pure returns (ObjectType) {
|
|
37
37
|
return toObjectType(60);
|
38
38
|
}
|
39
39
|
|
40
|
-
function
|
40
|
+
function COMPONENT() pure returns (ObjectType) {
|
41
41
|
return toObjectType(100);
|
42
42
|
}
|
43
43
|
|
44
|
-
function
|
44
|
+
function TREASURY() pure returns (ObjectType) {
|
45
|
+
return toObjectType(101);
|
46
|
+
}
|
47
|
+
|
48
|
+
function PRODUCT() pure returns (ObjectType) {
|
45
49
|
return toObjectType(110);
|
46
50
|
}
|
47
51
|
|
48
|
-
function
|
52
|
+
function DISTRIBUTION() pure returns (ObjectType) {
|
49
53
|
return toObjectType(120);
|
50
54
|
}
|
51
55
|
|
52
|
-
function
|
56
|
+
function ORACLE() pure returns (ObjectType) {
|
53
57
|
return toObjectType(130);
|
54
58
|
}
|
55
59
|
|
56
|
-
function
|
60
|
+
function POOL() pure returns (ObjectType) {
|
61
|
+
return toObjectType(140);
|
62
|
+
}
|
63
|
+
|
64
|
+
function RISK() pure returns (ObjectType) {
|
57
65
|
return toObjectType(200);
|
58
66
|
}
|
59
67
|
|
60
|
-
function
|
68
|
+
function POLICY() pure returns (ObjectType) {
|
61
69
|
return toObjectType(210);
|
62
70
|
}
|
63
71
|
|
72
|
+
function REFERRAL() pure returns (ObjectType) {
|
73
|
+
return toObjectType(212);
|
74
|
+
}
|
75
|
+
|
64
76
|
function CLAIM() pure returns (ObjectType) {
|
65
|
-
return toObjectType(
|
77
|
+
return toObjectType(214);
|
66
78
|
}
|
67
79
|
|
68
80
|
function PAYOUT() pure returns (ObjectType) {
|
69
|
-
return toObjectType(
|
81
|
+
return toObjectType(216);
|
82
|
+
}
|
83
|
+
|
84
|
+
function BUNDLE() pure returns (ObjectType) {
|
85
|
+
return toObjectType(220);
|
70
86
|
}
|
71
87
|
|
72
88
|
/// @dev Converts the uint8 to a ObjectType.
|
@@ -0,0 +1,48 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {Key32, KeyId, Key32Lib} from "./Key32.sol";
|
5
|
+
import {REFERRAL} from "./ObjectType.sol";
|
6
|
+
|
7
|
+
type ReferralId is bytes8;
|
8
|
+
|
9
|
+
// type bindings
|
10
|
+
using {
|
11
|
+
eqReferralId as ==,
|
12
|
+
neReferralId as !=,
|
13
|
+
ReferralIdLib.toKey32
|
14
|
+
} for ReferralId global;
|
15
|
+
|
16
|
+
// general pure free functions
|
17
|
+
|
18
|
+
// @dev Returns true iff risk ids a and b are identical
|
19
|
+
function eqReferralId(ReferralId a, ReferralId b) pure returns (bool isSame) {
|
20
|
+
return ReferralId.unwrap(a) == ReferralId.unwrap(b);
|
21
|
+
}
|
22
|
+
|
23
|
+
// @dev Returns true iff risk ids a and b are different
|
24
|
+
function neReferralId(ReferralId a, ReferralId b) pure returns (bool isDifferent) {
|
25
|
+
return ReferralId.unwrap(a) != ReferralId.unwrap(b);
|
26
|
+
}
|
27
|
+
|
28
|
+
library ReferralIdLib {
|
29
|
+
|
30
|
+
function zeroReferralId() public pure returns (ReferralId) {
|
31
|
+
return ReferralId.wrap(bytes8(0));
|
32
|
+
}
|
33
|
+
|
34
|
+
// @dev Converts a role string into a role id.
|
35
|
+
function toReferralId(string memory referral) public pure returns (ReferralId) {
|
36
|
+
return ReferralId.wrap(bytes8(keccak256(abi.encode(referral))));
|
37
|
+
}
|
38
|
+
|
39
|
+
/// @dev Returns the key32 value for the specified id
|
40
|
+
function toKey32(ReferralId id) public pure returns (Key32 key) {
|
41
|
+
return Key32Lib.toKey32(REFERRAL(), toKeyId(id));
|
42
|
+
}
|
43
|
+
|
44
|
+
/// @dev Returns the key id value for the specified id
|
45
|
+
function toKeyId(ReferralId id) public pure returns (KeyId keyId) {
|
46
|
+
return KeyId.wrap(bytes31(ReferralId.unwrap(id)));
|
47
|
+
}
|
48
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {Key32, KeyId, Key32Lib} from "./Key32.sol";
|
5
|
+
import {RISK} from "./ObjectType.sol";
|
6
|
+
|
7
|
+
type RiskId is bytes8;
|
8
|
+
|
9
|
+
// type bindings
|
10
|
+
using {
|
11
|
+
eqRiskId as ==,
|
12
|
+
neRiskId as !=,
|
13
|
+
RiskIdLib.toKey32
|
14
|
+
} for RiskId global;
|
15
|
+
|
16
|
+
// general pure free functions
|
17
|
+
|
18
|
+
// @dev Returns true iff risk ids a and b are identical
|
19
|
+
function eqRiskId(RiskId a, RiskId b) pure returns (bool isSame) {
|
20
|
+
return RiskId.unwrap(a) == RiskId.unwrap(b);
|
21
|
+
}
|
22
|
+
|
23
|
+
// @dev Returns true iff risk ids a and b are different
|
24
|
+
function neRiskId(RiskId a, RiskId b) pure returns (bool isDifferent) {
|
25
|
+
return RiskId.unwrap(a) != RiskId.unwrap(b);
|
26
|
+
}
|
27
|
+
|
28
|
+
library RiskIdLib {
|
29
|
+
// @dev Converts a role string into a role id.
|
30
|
+
function toRiskId(string memory risk) public pure returns (RiskId) {
|
31
|
+
return RiskId.wrap(bytes8(keccak256(abi.encode(risk))));
|
32
|
+
}
|
33
|
+
|
34
|
+
/// @dev Returns the key32 value for the specified nft id and object type.
|
35
|
+
function toKey32(RiskId id) public pure returns (Key32 key) {
|
36
|
+
return Key32Lib.toKey32(RISK(), toKeyId(id));
|
37
|
+
}
|
38
|
+
|
39
|
+
/// @dev Returns the key id value for the specified nft id
|
40
|
+
function toKeyId(RiskId id) public pure returns (KeyId keyId) {
|
41
|
+
return KeyId.wrap(bytes31(RiskId.unwrap(id)));
|
42
|
+
}
|
43
|
+
}
|
@@ -10,12 +10,12 @@ using {
|
|
10
10
|
} for RoleId global;
|
11
11
|
|
12
12
|
// general pure free functions
|
13
|
-
function
|
13
|
+
function DISTRIBUTION_OWNER_ROLE_NAME() pure returns (string memory) { return "DistributionOwnerRole"; }
|
14
14
|
function ORACLE_OWNER_ROLE_NAME() pure returns (string memory) { return "OracleOwnerRole"; }
|
15
15
|
function POOL_OWNER_ROLE_NAME() pure returns (string memory) { return "PoolOwnerRole"; }
|
16
16
|
function PRODUCT_OWNER_ROLE_NAME() pure returns (string memory) { return "ProductOwnerRole"; }
|
17
17
|
|
18
|
-
function
|
18
|
+
function DISTRIBUTION_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId("DistributionOwnerRole"); }
|
19
19
|
function ORACLE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId("OracleOwnerRole"); }
|
20
20
|
function POOL_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId("PoolOwnerRole"); }
|
21
21
|
function PRODUCT_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId("ProductOwnerRole"); }
|
@@ -23,6 +23,7 @@ using {
|
|
23
23
|
versionGt as >,
|
24
24
|
versionEq as ==,
|
25
25
|
VersionLib.toInt,
|
26
|
+
VersionLib.toUint64,
|
26
27
|
VersionLib.toMajorPart,
|
27
28
|
VersionLib.toVersionParts
|
28
29
|
}
|
@@ -34,6 +35,8 @@ function versionEq(Version a, Version b) pure returns(bool isSame) { return Vers
|
|
34
35
|
library VersionLib {
|
35
36
|
function toInt(Version version) external pure returns(uint) { return Version.unwrap(version); }
|
36
37
|
|
38
|
+
function toUint64(Version version) external pure returns(uint64) { return Version.unwrap(version); }
|
39
|
+
|
37
40
|
function toMajorPart(Version version)
|
38
41
|
external
|
39
42
|
pure
|
@@ -89,6 +92,12 @@ library VersionLib {
|
|
89
92
|
(major << 16) + (minor << 8) + patch));
|
90
93
|
}
|
91
94
|
|
95
|
+
// TODO check for overflow?
|
96
|
+
function toVersion(uint64 versionNumber) external pure returns(Version) {
|
97
|
+
//assert(versionNumber <= type(Version).max);
|
98
|
+
return Version.wrap(uint24(versionNumber));
|
99
|
+
}
|
100
|
+
|
92
101
|
function zeroVersion() external pure returns(Version) {
|
93
102
|
return Version.wrap(0);
|
94
103
|
}
|
package/package.json
CHANGED
@@ -1,10 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"_format": "hh-sol-artifact-1",
|
3
|
-
"contractName": "CompensationModule",
|
4
|
-
"sourceName": "contracts/instance/module/compensation/CompensationModule.sol",
|
5
|
-
"abi": [],
|
6
|
-
"bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220e083bd536daa38f4ab2da87a47489460180ca9e737890e3707e2279d6bddbb1d64736f6c63430008140033",
|
7
|
-
"deployedBytecode": "0x6080604052600080fdfea2646970667358221220e083bd536daa38f4ab2da87a47489460180ca9e737890e3707e2279d6bddbb1d64736f6c63430008140033",
|
8
|
-
"linkReferences": {},
|
9
|
-
"deployedLinkReferences": {}
|
10
|
-
}
|
@@ -1,24 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"_format": "hh-sol-artifact-1",
|
3
|
-
"contractName": "IRegistryLinked",
|
4
|
-
"sourceName": "contracts/registry/IRegistryLinked.sol",
|
5
|
-
"abi": [
|
6
|
-
{
|
7
|
-
"inputs": [],
|
8
|
-
"name": "getRegistry",
|
9
|
-
"outputs": [
|
10
|
-
{
|
11
|
-
"internalType": "contract IRegistry",
|
12
|
-
"name": "registry",
|
13
|
-
"type": "address"
|
14
|
-
}
|
15
|
-
],
|
16
|
-
"stateMutability": "view",
|
17
|
-
"type": "function"
|
18
|
-
}
|
19
|
-
],
|
20
|
-
"bytecode": "0x",
|
21
|
-
"deployedBytecode": "0x",
|
22
|
-
"linkReferences": {},
|
23
|
-
"deployedLinkReferences": {}
|
24
|
-
}
|
@@ -1,24 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"_format": "hh-sol-artifact-1",
|
3
|
-
"contractName": "IOwnable",
|
4
|
-
"sourceName": "contracts/shared/IOwnable.sol",
|
5
|
-
"abi": [
|
6
|
-
{
|
7
|
-
"inputs": [],
|
8
|
-
"name": "getOwner",
|
9
|
-
"outputs": [
|
10
|
-
{
|
11
|
-
"internalType": "address",
|
12
|
-
"name": "owner",
|
13
|
-
"type": "address"
|
14
|
-
}
|
15
|
-
],
|
16
|
-
"stateMutability": "view",
|
17
|
-
"type": "function"
|
18
|
-
}
|
19
|
-
],
|
20
|
-
"bytecode": "0x",
|
21
|
-
"deployedBytecode": "0x",
|
22
|
-
"linkReferences": {},
|
23
|
-
"deployedLinkReferences": {}
|
24
|
-
}
|
@@ -1,112 +0,0 @@
|
|
1
|
-
# State Machines
|
2
|
-
|
3
|
-
Most GIF objects have a life cycle defined by a state machine.
|
4
|
-
|
5
|
-
For each object type the set of possible states is defined together with its initial state and the set of valid state transitions.
|
6
|
-
|
7
|
-
## Object Types without States
|
8
|
-
|
9
|
-
* Protocol
|
10
|
-
* Chains
|
11
|
-
* Registries (both chain and main registry)
|
12
|
-
|
13
|
-
## Object Types with States
|
14
|
-
|
15
|
-
* Tokens
|
16
|
-
* Instances
|
17
|
-
* Products
|
18
|
-
* Oracles
|
19
|
-
* Pools
|
20
|
-
* Bundles
|
21
|
-
* Policies
|
22
|
-
* Claim (non-NFT)
|
23
|
-
* Payout (non-NFT)
|
24
|
-
|
25
|
-
### Simple State Machine
|
26
|
-
|
27
|
-
Valid states
|
28
|
-
|
29
|
-
* Active (initial state)
|
30
|
-
* Paused
|
31
|
-
* Archived (final state)
|
32
|
-
|
33
|
-
Valid state transitions:
|
34
|
-
|
35
|
-
* Active -> Paused
|
36
|
-
* Paused -> Active
|
37
|
-
* Paused -> Archived
|
38
|
-
|
39
|
-
|
40
|
-
Candidate object types for simple state machine
|
41
|
-
|
42
|
-
* Token
|
43
|
-
* Instance
|
44
|
-
* Product
|
45
|
-
* Oracle
|
46
|
-
* Pool
|
47
|
-
|
48
|
-
To discuss:
|
49
|
-
|
50
|
-
* Archived is final state
|
51
|
-
* What mechanism should exist to revert an unintended transition to 'Archived' state. Should there be such a mechanism?
|
52
|
-
* What mechanism should exist when the NFT of such an object is burned prematurely. Should there be such a mechanism
|
53
|
-
|
54
|
-
### Bundle State Machine
|
55
|
-
|
56
|
-
Valid states
|
57
|
-
|
58
|
-
* Active (initial state)
|
59
|
-
* Paused
|
60
|
-
* Expired (implicit state)
|
61
|
-
* Closed (final state)
|
62
|
-
|
63
|
-
Expired is not an explicit state.
|
64
|
-
A bundle is expired for block.timestamp >= expiredAt
|
65
|
-
|
66
|
-
### Policy State Machine
|
67
|
-
|
68
|
-
Valid states
|
69
|
-
|
70
|
-
* Applied (initial state)
|
71
|
-
* Revoked (final state)
|
72
|
-
* Declined (final state)
|
73
|
-
* Active
|
74
|
-
* Expired (implicit state)
|
75
|
-
* Closed (final state)
|
76
|
-
|
77
|
-
Expired is not an explicit state.
|
78
|
-
A policy is expired for block.timestamp >= expiredAt
|
79
|
-
|
80
|
-
To discuss:
|
81
|
-
|
82
|
-
* Should 'Closed' be less explicit using a closedAt state variable?
|
83
|
-
* Or even more lighweight? ie. block.timestamp >= expiredAt and no open claims
|
84
|
-
|
85
|
-
Valid state transitions:
|
86
|
-
|
87
|
-
* Applied -> Revoked
|
88
|
-
* Applied -> Declined
|
89
|
-
* Applied -> Active
|
90
|
-
* Active -> Closed (needs to be expired)
|
91
|
-
|
92
|
-
### Claim State Machine
|
93
|
-
|
94
|
-
Valid states
|
95
|
-
* Applied (initial state)
|
96
|
-
* Confirmed
|
97
|
-
* Declined (final state)
|
98
|
-
* Closed (final state)
|
99
|
-
|
100
|
-
Valid state transitions:
|
101
|
-
* Applied -> Confirmed
|
102
|
-
* Applied -> Declined
|
103
|
-
* Confirmed -> Closed
|
104
|
-
|
105
|
-
### Payout State Machine
|
106
|
-
|
107
|
-
Valid states
|
108
|
-
* Expected
|
109
|
-
* PaidOut
|
110
|
-
|
111
|
-
Valid state transitions:
|
112
|
-
* Expected -> PaidOut
|