@etherisc/gif-next 0.0.2-770fd3b-604 → 0.0.2-77a1ccf-469
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 +8 -8
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/components/Component.sol/Component.json +22 -145
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +79 -233
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IComponent.sol/IComponent.json +19 -92
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +57 -178
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +239 -104
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +23 -164
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +240 -155
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +27 -218
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +2 -2
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +343 -308
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +19 -184
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +469 -466
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +2 -2
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +79 -110
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +70 -284
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +196 -113
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +2 -2
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +18 -220
- 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 +2 -2
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- 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 +182 -331
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +665 -0
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +54 -276
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +182 -107
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +754 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +637 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +645 -268
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +300 -109
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.json +124 -206
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.json +26 -191
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +409 -0
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +369 -167
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.json +25 -290
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +12 -177
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +12 -177
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +65 -443
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +188 -141
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +42 -272
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +179 -104
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +42 -272
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +179 -104
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +71 -180
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +7 -7
- 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 +90 -264
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +182 -113
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +11 -11
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +34 -67
- 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/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +4 -30
- 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/IRegisterable.sol/IRegisterable.json +4 -30
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -21
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +12 -177
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -150
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +10 -62
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -23
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +171 -88
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +11 -74
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -23
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +13 -215
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- 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/shared/Versionable.sol/Versionable.json +0 -150
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +11 -74
- 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 +31 -269
- 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/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +6 -188
- 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/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +100 -0
- 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/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/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 +4 -0
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +100 -0
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +2 -2
- 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/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +25 -7
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/contracts/components/Component.sol +69 -84
- package/contracts/components/Distribution.sol +26 -31
- package/contracts/components/IComponent.sol +34 -16
- package/contracts/components/IDistributionComponent.sol +1 -22
- package/contracts/components/IPoolComponent.sol +89 -25
- package/contracts/components/IProductComponent.sol +3 -2
- package/contracts/components/Pool.sol +216 -92
- package/contracts/components/Product.sol +36 -25
- package/contracts/instance/BundleManager.sol +1 -1
- package/contracts/instance/IInstance.sol +7 -1
- package/contracts/instance/Instance.sol +17 -7
- package/contracts/instance/InstanceService.sol +67 -10
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/module/IBundle.sol +2 -1
- package/contracts/instance/module/IDistribution.sol +2 -0
- package/contracts/instance/module/IPolicy.sol +30 -3
- package/contracts/instance/module/ISetup.sol +5 -6
- package/contracts/instance/service/ApplicationService.sol +138 -57
- package/contracts/instance/service/ApplicationServiceManager.sol +35 -0
- package/contracts/instance/service/BundleService.sol +4 -3
- package/contracts/instance/service/BundleServiceManager.sol +1 -1
- package/contracts/instance/service/ClaimService.sol +151 -0
- package/contracts/instance/service/ClaimServiceManager.sol +35 -0
- package/contracts/instance/service/DistributionService.sol +146 -26
- package/contracts/instance/service/DistributionServiceManager.sol +1 -1
- package/contracts/instance/service/IApplicationService.sol +9 -9
- package/contracts/instance/service/IBundleService.sol +3 -2
- package/contracts/instance/service/IClaimService.sol +61 -0
- package/contracts/instance/service/IDistributionService.sol +23 -2
- package/contracts/instance/service/IPolicyService.sol +17 -35
- package/contracts/instance/service/PolicyService.sol +47 -169
- package/contracts/instance/service/PolicyServiceManager.sol +2 -2
- package/contracts/instance/service/PoolServiceManager.sol +1 -1
- package/contracts/instance/service/ProductServiceManager.sol +2 -2
- package/contracts/registry/IRegistryService.sol +10 -8
- package/contracts/registry/Registry.sol +3 -1
- package/contracts/registry/RegistryService.sol +62 -40
- package/contracts/registry/RegistryServiceManager.sol +13 -13
- package/contracts/registry/ReleaseManager.sol +18 -28
- package/contracts/registry/TokenRegistry.sol +13 -10
- package/contracts/shared/ERC165.sol +2 -1
- package/contracts/shared/INftOwnable.sol +4 -9
- package/contracts/shared/IRegistryLinked.sol +0 -3
- package/contracts/shared/IService.sol +2 -0
- package/contracts/shared/IVersionable.sol +4 -47
- package/contracts/shared/NftOwnable.sol +10 -80
- package/contracts/shared/ProxyManager.sol +98 -24
- package/contracts/shared/Registerable.sol +3 -10
- package/contracts/shared/RegistryLinked.sol +10 -26
- package/contracts/shared/Service.sol +10 -12
- package/contracts/shared/Versionable.sol +1 -90
- package/contracts/types/ClaimId.sol +52 -0
- package/contracts/types/ObjectType.sol +4 -4
- package/contracts/types/PayoutId.sol +54 -0
- package/contracts/types/RoleId.sol +10 -5
- package/contracts/types/Seconds.sol +54 -0
- package/contracts/types/Timestamp.sol +12 -13
- package/package.json +1 -1
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
@@ -19,10 +19,11 @@ import {TokenHandler} from "../../shared/TokenHandler.sol";
|
|
19
19
|
import {IVersionable} from "../../shared/IVersionable.sol";
|
20
20
|
import {Versionable} from "../../shared/Versionable.sol";
|
21
21
|
|
22
|
+
import {Seconds} from "../../types/Seconds.sol";
|
22
23
|
import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
|
23
24
|
import {UFixed, UFixedLib} from "../../types/UFixed.sol";
|
24
25
|
import {Blocknumber, blockNumber} from "../../types/Blocknumber.sol";
|
25
|
-
import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, BUNDLE} from "../../types/ObjectType.sol";
|
26
|
+
import {ObjectType, APPLICATION, INSTANCE, PRODUCT, POOL, POLICY, BUNDLE} from "../../types/ObjectType.sol";
|
26
27
|
import {APPLIED, UNDERWRITTEN, ACTIVE, KEEP_STATE, CLOSED} from "../../types/StateId.sol";
|
27
28
|
import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
|
28
29
|
import {Fee, FeeLib} from "../../types/Fee.sol";
|
@@ -35,6 +36,7 @@ import {Version, VersionLib} from "../../types/Version.sol";
|
|
35
36
|
import {IService} from "../../shared/IService.sol";
|
36
37
|
import {Service} from "../../shared/Service.sol";
|
37
38
|
import {ComponentService} from "../base/ComponentService.sol";
|
39
|
+
import {IApplicationService} from "./IApplicationService.sol";
|
38
40
|
import {IPolicyService} from "./IPolicyService.sol";
|
39
41
|
import {InstanceReader} from "../InstanceReader.sol";
|
40
42
|
import {IPoolService} from "./IPoolService.sol";
|
@@ -50,6 +52,7 @@ contract PolicyService is
|
|
50
52
|
|
51
53
|
IPoolService internal _poolService;
|
52
54
|
IBundleService internal _bundleService;
|
55
|
+
IApplicationService internal _applicationService;
|
53
56
|
|
54
57
|
event LogProductServiceSender(address sender);
|
55
58
|
|
@@ -58,8 +61,8 @@ contract PolicyService is
|
|
58
61
|
bytes memory data
|
59
62
|
)
|
60
63
|
internal
|
61
|
-
initializer
|
62
64
|
virtual override
|
65
|
+
initializer
|
63
66
|
{
|
64
67
|
address registryAddress;
|
65
68
|
address initialOwner;
|
@@ -69,6 +72,7 @@ contract PolicyService is
|
|
69
72
|
|
70
73
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getMajorVersion()));
|
71
74
|
_bundleService = IBundleService(getRegistry().getServiceAddress(BUNDLE(), getMajorVersion()));
|
75
|
+
_applicationService = IApplicationService(getRegistry().getServiceAddress(APPLICATION(), getMajorVersion()));
|
72
76
|
|
73
77
|
registerInterface(type(IPolicyService).interfaceId);
|
74
78
|
}
|
@@ -85,156 +89,6 @@ contract PolicyService is
|
|
85
89
|
product = Product(productInfo.objectAddress);
|
86
90
|
}
|
87
91
|
|
88
|
-
// TODO: no access restrictions
|
89
|
-
function calculatePremium(
|
90
|
-
RiskId riskId,
|
91
|
-
uint256 sumInsuredAmount,
|
92
|
-
uint256 lifetime,
|
93
|
-
bytes memory applicationData,
|
94
|
-
NftId bundleNftId,
|
95
|
-
ReferralId referralId
|
96
|
-
)
|
97
|
-
public
|
98
|
-
view
|
99
|
-
virtual override
|
100
|
-
returns (
|
101
|
-
uint256 premiumAmount,
|
102
|
-
uint256 productFeeAmount,
|
103
|
-
uint256 poolFeeAmount,
|
104
|
-
uint256 bundleFeeAmount,
|
105
|
-
uint256 distributionFeeAmount
|
106
|
-
)
|
107
|
-
{
|
108
|
-
Product product = _getAndVerifyInstanceAndProduct();
|
109
|
-
uint256 netPremiumAmount = product.calculateNetPremium(
|
110
|
-
sumInsuredAmount,
|
111
|
-
riskId,
|
112
|
-
lifetime,
|
113
|
-
applicationData
|
114
|
-
);
|
115
|
-
|
116
|
-
(
|
117
|
-
productFeeAmount,
|
118
|
-
poolFeeAmount,
|
119
|
-
bundleFeeAmount,
|
120
|
-
distributionFeeAmount
|
121
|
-
) = _calculateFeeAmounts(
|
122
|
-
netPremiumAmount,
|
123
|
-
product,
|
124
|
-
bundleNftId,
|
125
|
-
referralId
|
126
|
-
);
|
127
|
-
|
128
|
-
premiumAmount = netPremiumAmount + productFeeAmount;
|
129
|
-
premiumAmount += poolFeeAmount + bundleFeeAmount;
|
130
|
-
premiumAmount += distributionFeeAmount;
|
131
|
-
}
|
132
|
-
|
133
|
-
function _calculateFeeAmounts(
|
134
|
-
uint256 netPremiumAmount,
|
135
|
-
Product product,
|
136
|
-
NftId bundleNftId,
|
137
|
-
ReferralId referralId
|
138
|
-
)
|
139
|
-
internal
|
140
|
-
view
|
141
|
-
returns (
|
142
|
-
uint256 productFeeAmount,
|
143
|
-
uint256 poolFeeAmount,
|
144
|
-
uint256 bundleFeeAmount,
|
145
|
-
uint256 distributionFeeAmount
|
146
|
-
)
|
147
|
-
{
|
148
|
-
InstanceReader instanceReader;
|
149
|
-
{
|
150
|
-
IInstance instance = product.getInstance();
|
151
|
-
instanceReader = instance.getInstanceReader();
|
152
|
-
}
|
153
|
-
|
154
|
-
NftId poolNftId = product.getPoolNftId();
|
155
|
-
IBundle.BundleInfo memory bundleInfo = instanceReader.getBundleInfo(bundleNftId);
|
156
|
-
require(bundleInfo.poolNftId == poolNftId,"ERROR:PRS-035:BUNDLE_POOL_MISMATCH");
|
157
|
-
|
158
|
-
{
|
159
|
-
ISetup.ProductSetupInfo memory productSetupInfo = instanceReader.getProductSetupInfo(product.getProductNftId());
|
160
|
-
(productFeeAmount,) = FeeLib.calculateFee(productSetupInfo.productFee, netPremiumAmount);
|
161
|
-
}
|
162
|
-
{
|
163
|
-
ISetup.PoolSetupInfo memory poolSetupInfo = instanceReader.getPoolSetupInfo(poolNftId);
|
164
|
-
(poolFeeAmount,) = FeeLib.calculateFee(poolSetupInfo.poolFee, netPremiumAmount);
|
165
|
-
}
|
166
|
-
{
|
167
|
-
NftId distributionNftId = product.getDistributionNftId();
|
168
|
-
ISetup.DistributionSetupInfo memory distributionSetupInfo = instanceReader.getDistributionSetupInfo(distributionNftId);
|
169
|
-
(distributionFeeAmount,) = FeeLib.calculateFee(distributionSetupInfo.distributionFee, netPremiumAmount);
|
170
|
-
}
|
171
|
-
|
172
|
-
(bundleFeeAmount,) = FeeLib.calculateFee(bundleInfo.fee, netPremiumAmount);
|
173
|
-
}
|
174
|
-
|
175
|
-
|
176
|
-
function createApplication(
|
177
|
-
address applicationOwner,
|
178
|
-
RiskId riskId,
|
179
|
-
uint256 sumInsuredAmount,
|
180
|
-
uint256 lifetime,
|
181
|
-
bytes memory applicationData,
|
182
|
-
NftId bundleNftId,
|
183
|
-
ReferralId referralId
|
184
|
-
)
|
185
|
-
external
|
186
|
-
virtual override
|
187
|
-
returns (NftId policyNftId)
|
188
|
-
{
|
189
|
-
(IRegistry.ObjectInfo memory productInfo, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
190
|
-
// TODO: add validations (see create bundle in pool service)
|
191
|
-
|
192
|
-
policyNftId = getRegistryService().registerPolicy(
|
193
|
-
IRegistry.ObjectInfo(
|
194
|
-
zeroNftId(),
|
195
|
-
productInfo.nftId,
|
196
|
-
POLICY(),
|
197
|
-
false, // intercepting property for policies is defined on product
|
198
|
-
address(0),
|
199
|
-
applicationOwner,
|
200
|
-
""
|
201
|
-
)
|
202
|
-
);
|
203
|
-
|
204
|
-
(uint256 premiumAmount,,,,) = calculatePremium(
|
205
|
-
riskId,
|
206
|
-
sumInsuredAmount,
|
207
|
-
lifetime,
|
208
|
-
applicationData,
|
209
|
-
bundleNftId,
|
210
|
-
referralId
|
211
|
-
);
|
212
|
-
|
213
|
-
IPolicy.PolicyInfo memory policyInfo = IPolicy.PolicyInfo(
|
214
|
-
productInfo.nftId,
|
215
|
-
bundleNftId,
|
216
|
-
referralId,
|
217
|
-
riskId,
|
218
|
-
sumInsuredAmount,
|
219
|
-
premiumAmount,
|
220
|
-
0,
|
221
|
-
lifetime,
|
222
|
-
applicationData,
|
223
|
-
"",
|
224
|
-
0,
|
225
|
-
0,
|
226
|
-
0,
|
227
|
-
zeroTimestamp(),
|
228
|
-
zeroTimestamp(),
|
229
|
-
zeroTimestamp()
|
230
|
-
);
|
231
|
-
|
232
|
-
instance.createPolicy(policyNftId, policyInfo);
|
233
|
-
instance.updatePolicyState(policyNftId, APPLIED());
|
234
|
-
|
235
|
-
// TODO: add logging
|
236
|
-
}
|
237
|
-
|
238
92
|
function _getAndVerifyUnderwritingSetup(
|
239
93
|
IInstance instance,
|
240
94
|
InstanceReader instanceReader,
|
@@ -365,6 +219,7 @@ contract PolicyService is
|
|
365
219
|
pool.verifyApplication(
|
366
220
|
applicationNftId,
|
367
221
|
policyInfo.applicationData,
|
222
|
+
bundleNftId,
|
368
223
|
bundleInfo.filter,
|
369
224
|
collateralAmount);
|
370
225
|
}
|
@@ -428,9 +283,22 @@ contract PolicyService is
|
|
428
283
|
// TODO: add logging
|
429
284
|
}
|
430
285
|
|
286
|
+
|
287
|
+
function expire(
|
288
|
+
NftId policyNftId
|
289
|
+
)
|
290
|
+
external
|
291
|
+
override
|
292
|
+
// solhint-disable-next-line no-empty-blocks
|
293
|
+
{
|
294
|
+
|
295
|
+
}
|
296
|
+
|
431
297
|
function close(
|
432
298
|
NftId policyNftId
|
433
|
-
)
|
299
|
+
)
|
300
|
+
external
|
301
|
+
override
|
434
302
|
{
|
435
303
|
(, IInstance instance) = _getAndVerifyComponentInfoAndInstance(PRODUCT());
|
436
304
|
InstanceReader instanceReader = instance.getInstanceReader();
|
@@ -494,29 +362,39 @@ contract PolicyService is
|
|
494
362
|
// process token transfer(s)
|
495
363
|
if(premiumAmount > 0) {
|
496
364
|
ISetup.ProductSetupInfo memory productSetupInfo = instance.getInstanceReader().getProductSetupInfo(productNftId);
|
365
|
+
IPolicy.PolicyInfo memory policyInfo = instance.getInstanceReader().getPolicyInfo(policyNftId);
|
497
366
|
TokenHandler tokenHandler = productSetupInfo.tokenHandler;
|
498
367
|
address policyOwner = getRegistry().ownerOf(policyNftId);
|
499
368
|
ISetup.PoolSetupInfo memory poolSetupInfo = instance.getInstanceReader().getPoolSetupInfo(productSetupInfo.poolNftId);
|
500
369
|
address poolWallet = poolSetupInfo.wallet;
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
370
|
+
IPolicy.Premium memory premium = _applicationService.calculatePremium(
|
371
|
+
productNftId,
|
372
|
+
policyInfo.riskId,
|
373
|
+
policyInfo.sumInsuredAmount,
|
374
|
+
policyInfo.lifetime,
|
375
|
+
policyInfo.applicationData,
|
376
|
+
policyInfo.bundleNftId,
|
377
|
+
policyInfo.referralId
|
509
378
|
);
|
510
|
-
|
511
|
-
|
379
|
+
|
380
|
+
// if (FeeLib.feeIsZero(premium.productFeeAmount)) {
|
381
|
+
// tokenHandler.transfer(
|
382
|
+
// policyOwner,
|
383
|
+
// poolWallet,
|
384
|
+
// premiumAmount
|
385
|
+
// );
|
386
|
+
// } else {
|
512
387
|
address productWallet = productSetupInfo.wallet;
|
513
|
-
if (tokenHandler.getToken().allowance(policyOwner, address(tokenHandler)) < premiumAmount) {
|
514
|
-
revert ErrorIPolicyServiceInsufficientAllowance(policyOwner, address(tokenHandler), premiumAmount);
|
388
|
+
if (tokenHandler.getToken().allowance(policyOwner, address(tokenHandler)) < premium.premiumAmount) {
|
389
|
+
revert ErrorIPolicyServiceInsufficientAllowance(policyOwner, address(tokenHandler), premium.premiumAmount);
|
515
390
|
}
|
516
|
-
tokenHandler.transfer(policyOwner, productWallet,
|
517
|
-
tokenHandler.transfer(policyOwner, poolWallet,
|
518
|
-
netPremiumAmount =
|
519
|
-
|
391
|
+
tokenHandler.transfer(policyOwner, productWallet, premium.productFeeFixAmount + premium.productFeeVarAmount);
|
392
|
+
tokenHandler.transfer(policyOwner, poolWallet, premium.netPremiumAmount);
|
393
|
+
netPremiumAmount = premium.netPremiumAmount;
|
394
|
+
// TODO: also move distribution tokens to distribution wallet and call `Distribution.processSale` to update distribution balances
|
395
|
+
// }
|
396
|
+
// TODO: move pool/bundle related tokens too
|
397
|
+
|
520
398
|
}
|
521
399
|
|
522
400
|
// TODO: add logging
|
@@ -16,7 +16,7 @@ contract PolicyServiceManager is ProxyManager {
|
|
16
16
|
constructor(
|
17
17
|
address registryAddress
|
18
18
|
)
|
19
|
-
ProxyManager()
|
19
|
+
ProxyManager(registryAddress)
|
20
20
|
{
|
21
21
|
PolicyService svc = new PolicyService();
|
22
22
|
bytes memory data = abi.encode(registryAddress, address(this));
|
@@ -39,7 +39,7 @@ contract PolicyServiceManager is ProxyManager {
|
|
39
39
|
// address(_productService));
|
40
40
|
|
41
41
|
// implies that after this constructor call only upgrade functionality is available
|
42
|
-
_isDeployed = true;
|
42
|
+
// _isDeployed = true;
|
43
43
|
}
|
44
44
|
|
45
45
|
//--- view functions ----------------------------------------------------//
|
@@ -16,7 +16,7 @@ contract PoolServiceManager is ProxyManager {
|
|
16
16
|
constructor(
|
17
17
|
address registryAddress
|
18
18
|
)
|
19
|
-
ProxyManager()
|
19
|
+
ProxyManager(registryAddress)
|
20
20
|
{
|
21
21
|
PoolService poolSrv = new PoolService();
|
22
22
|
bytes memory data = abi.encode(registryAddress, address(this));
|
@@ -16,7 +16,7 @@ contract ProductServiceManager is ProxyManager {
|
|
16
16
|
constructor(
|
17
17
|
address registryAddress
|
18
18
|
)
|
19
|
-
ProxyManager()
|
19
|
+
ProxyManager(registryAddress)
|
20
20
|
{
|
21
21
|
ProductService svc = new ProductService();
|
22
22
|
bytes memory data = abi.encode(registryAddress, address(this));
|
@@ -39,7 +39,7 @@ contract ProductServiceManager is ProxyManager {
|
|
39
39
|
// address(_productService));
|
40
40
|
|
41
41
|
// implies that after this constructor call only upgrade functionality is available
|
42
|
-
_isDeployed = true;
|
42
|
+
// _isDeployed = true;
|
43
43
|
}
|
44
44
|
|
45
45
|
//--- view functions ----------------------------------------------------//
|
@@ -35,18 +35,18 @@ interface IRegistryService is
|
|
35
35
|
struct FunctionConfig
|
36
36
|
{
|
37
37
|
ObjectType serviceDomain;
|
38
|
-
bytes4
|
38
|
+
bytes4[] selectors;
|
39
39
|
}
|
40
40
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
41
|
+
function getFunctionConfigs()
|
42
|
+
external
|
43
|
+
pure
|
44
|
+
returns(
|
45
|
+
FunctionConfig[] memory config
|
46
|
+
);
|
47
47
|
|
48
48
|
// TODO used by service -> add owner arg
|
49
|
-
|
49
|
+
function registerInstance(IRegisterable instance, address owner)
|
50
50
|
external returns(IRegistry.ObjectInfo memory info);
|
51
51
|
|
52
52
|
function registerProduct(IComponent product, address owner)
|
@@ -58,6 +58,8 @@ interface IRegistryService is
|
|
58
58
|
function registerDistribution(IComponent distribution, address owner)
|
59
59
|
external returns(IRegistry.ObjectInfo memory info);
|
60
60
|
|
61
|
+
function registerDistributor(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
|
62
|
+
|
61
63
|
function registerPolicy(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
|
62
64
|
|
63
65
|
function registerBundle(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
|
@@ -5,7 +5,7 @@ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
|
5
5
|
|
6
6
|
import {NftId, toNftId, zeroNftId} from "../types/NftId.sol";
|
7
7
|
import {VersionPart} from "../types/Version.sol";
|
8
|
-
import {ObjectType, PROTOCOL, REGISTRY, TOKEN, SERVICE, INSTANCE, STAKE, PRODUCT, DISTRIBUTION, ORACLE, POOL, POLICY, BUNDLE} from "../types/ObjectType.sol";
|
8
|
+
import {ObjectType, PROTOCOL, REGISTRY, TOKEN, SERVICE, INSTANCE, STAKE, PRODUCT, DISTRIBUTION, DISTRIBUTOR, ORACLE, POOL, POLICY, BUNDLE} from "../types/ObjectType.sol";
|
9
9
|
|
10
10
|
import {ChainNft} from "./ChainNft.sol";
|
11
11
|
import {IRegistry} from "./IRegistry.sol";
|
@@ -452,6 +452,8 @@ contract Registry is
|
|
452
452
|
_coreContractCombinations[ORACLE()][INSTANCE()] = true;
|
453
453
|
_coreContractCombinations[POOL()][INSTANCE()] = true;
|
454
454
|
|
455
|
+
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
456
|
+
|
455
457
|
// product as parent, ONLY approved
|
456
458
|
_coreObjectCombinations[POLICY()][PRODUCT()] = true;
|
457
459
|
|
@@ -19,7 +19,7 @@ import {IRegisterable} from "../../contracts/shared/IRegisterable.sol";
|
|
19
19
|
import {Registerable} from "../../contracts/shared/Registerable.sol";
|
20
20
|
|
21
21
|
import {RoleId, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE} from "../../contracts/types/RoleId.sol";
|
22
|
-
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, DISTRIBUTION, POLICY, BUNDLE, STAKE} from "../../contracts/types/ObjectType.sol";
|
22
|
+
import {ObjectType, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE} from "../../contracts/types/ObjectType.sol";
|
23
23
|
import {StateId, ACTIVE, PAUSED} from "../../contracts/types/StateId.sol";
|
24
24
|
import {NftId, NftIdLib, zeroNftId} from "../../contracts/types/NftId.sol";
|
25
25
|
import {Fee, FeeLib} from "../../contracts/types/Fee.sol";
|
@@ -40,6 +40,33 @@ contract RegistryService is
|
|
40
40
|
// TODO update to real hash when registry is stable
|
41
41
|
bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
|
42
42
|
|
43
|
+
// From IService
|
44
|
+
function getDomain() public pure override(IService, Service) returns(ObjectType serviceDomain) {
|
45
|
+
return REGISTRY();
|
46
|
+
}
|
47
|
+
|
48
|
+
// from Versionable
|
49
|
+
|
50
|
+
/// @dev top level initializer
|
51
|
+
function _initialize(
|
52
|
+
address owner,
|
53
|
+
bytes memory data
|
54
|
+
)
|
55
|
+
internal
|
56
|
+
virtual override
|
57
|
+
initializer()
|
58
|
+
{
|
59
|
+
(
|
60
|
+
address registryAddress,
|
61
|
+
address initialAuthority
|
62
|
+
) = abi.decode(data, (address, address));
|
63
|
+
|
64
|
+
__AccessManaged_init(initialAuthority);
|
65
|
+
|
66
|
+
initializeService(registryAddress, owner);
|
67
|
+
registerInterface(type(IRegistryService).interfaceId);
|
68
|
+
}
|
69
|
+
|
43
70
|
function registerInstance(IRegisterable instance, address owner)
|
44
71
|
external
|
45
72
|
restricted
|
@@ -103,6 +130,15 @@ contract RegistryService is
|
|
103
130
|
info.nftId = getRegistry().register(info);
|
104
131
|
}
|
105
132
|
|
133
|
+
function registerDistributor(IRegistry.ObjectInfo memory info)
|
134
|
+
external
|
135
|
+
restricted
|
136
|
+
returns(NftId nftId)
|
137
|
+
{
|
138
|
+
_verifyObjectInfo(info, DISTRIBUTOR());
|
139
|
+
nftId = getRegistry().register(info);
|
140
|
+
}
|
141
|
+
|
106
142
|
function registerPolicy(IRegistry.ObjectInfo memory info)
|
107
143
|
external
|
108
144
|
restricted
|
@@ -133,33 +169,6 @@ contract RegistryService is
|
|
133
169
|
nftId = getRegistry().register(info);
|
134
170
|
}
|
135
171
|
|
136
|
-
// From IService
|
137
|
-
function getDomain() public pure override(IService, Service) returns(ObjectType serviceDomain) {
|
138
|
-
return REGISTRY();
|
139
|
-
}
|
140
|
-
|
141
|
-
// from Versionable
|
142
|
-
|
143
|
-
/// @dev top level initializer
|
144
|
-
function _initialize(
|
145
|
-
address owner,
|
146
|
-
bytes memory data
|
147
|
-
)
|
148
|
-
internal
|
149
|
-
initializer
|
150
|
-
virtual override
|
151
|
-
{
|
152
|
-
(
|
153
|
-
address initialAuthority,
|
154
|
-
address registry
|
155
|
-
) = abi.decode(data, (address, address));
|
156
|
-
|
157
|
-
__AccessManaged_init(initialAuthority);
|
158
|
-
|
159
|
-
initializeService(address(registry), owner);
|
160
|
-
registerInterface(type(IRegistryService).interfaceId);
|
161
|
-
}
|
162
|
-
|
163
172
|
// from IRegisterable
|
164
173
|
|
165
174
|
function getFunctionConfigs()
|
@@ -169,30 +178,43 @@ contract RegistryService is
|
|
169
178
|
FunctionConfig[] memory config
|
170
179
|
)
|
171
180
|
{
|
172
|
-
config = new FunctionConfig[](
|
181
|
+
config = new FunctionConfig[](8);
|
173
182
|
|
174
183
|
// order of service registrations MUST be reverse to this array
|
175
184
|
/*config[-1].serviceDomain = STAKE();
|
176
185
|
config[-1].selector = RegistryService.registerStake.selector;*/
|
177
186
|
|
178
187
|
config[0].serviceDomain = POLICY();
|
179
|
-
config[0].
|
188
|
+
config[0].selectors = new bytes4[](0);
|
189
|
+
|
190
|
+
config[1].serviceDomain = APPLICATION();
|
191
|
+
config[1].selectors = new bytes4[](1);
|
192
|
+
config[1].selectors[0] = RegistryService.registerPolicy.selector;
|
193
|
+
|
194
|
+
config[2].serviceDomain = CLAIM();
|
195
|
+
config[2].selectors = new bytes4[](0);
|
180
196
|
|
181
|
-
config[
|
182
|
-
config[
|
197
|
+
config[3].serviceDomain = BUNDLE();
|
198
|
+
config[3].selectors = new bytes4[](1);
|
199
|
+
config[3].selectors[0] = RegistryService.registerBundle.selector;
|
183
200
|
|
184
|
-
config[
|
185
|
-
config[
|
201
|
+
config[4].serviceDomain = PRODUCT();
|
202
|
+
config[4].selectors = new bytes4[](1);
|
203
|
+
config[4].selectors[0] = RegistryService.registerProduct.selector;
|
186
204
|
|
187
|
-
config[
|
188
|
-
config[
|
205
|
+
config[5].serviceDomain = POOL();
|
206
|
+
config[5].selectors = new bytes4[](1);
|
207
|
+
config[5].selectors[0] = RegistryService.registerPool.selector;
|
189
208
|
|
190
|
-
config[
|
191
|
-
config[
|
209
|
+
config[6].serviceDomain = DISTRIBUTION();
|
210
|
+
config[6].selectors = new bytes4[](2);
|
211
|
+
config[6].selectors[0] = RegistryService.registerDistribution.selector;
|
212
|
+
config[6].selectors[1] = RegistryService.registerDistributor.selector;
|
192
213
|
|
193
214
|
// registerInstance() have no restriction
|
194
|
-
config[
|
195
|
-
config[
|
215
|
+
config[7].serviceDomain = INSTANCE();
|
216
|
+
config[7].selectors = new bytes4[](1);
|
217
|
+
config[7].selectors[0] = RegistryService.registerInstance.selector;
|
196
218
|
}
|
197
219
|
|
198
220
|
// Internal
|
@@ -22,32 +22,32 @@ contract RegistryServiceManager is
|
|
22
22
|
/// @dev initializes proxy manager with registry service implementation and deploys registry
|
23
23
|
constructor(
|
24
24
|
address initialAuthority, // used by implementation
|
25
|
-
address
|
26
|
-
ProxyManager()
|
25
|
+
address registryAddress) // used by implementation
|
26
|
+
ProxyManager(registryAddress)
|
27
27
|
{
|
28
28
|
require(initialAuthority > address(0), "RegistryServiceManager: initial authority is 0");
|
29
|
-
require(
|
29
|
+
require(registryAddress > address(0), "RegistryServiceManager: registry is 0");
|
30
30
|
|
31
31
|
// implementation's initializer func `data` argument
|
32
|
-
|
33
|
-
|
34
|
-
registry);
|
35
|
-
|
32
|
+
RegistryService srv = new RegistryService();
|
33
|
+
bytes memory data = abi.encode(registryAddress, initialAuthority);
|
36
34
|
IVersionable versionable = deploy(
|
37
|
-
address(
|
38
|
-
|
35
|
+
address(srv),
|
36
|
+
data);
|
39
37
|
|
40
38
|
_registryService = RegistryService(address(versionable));
|
39
|
+
|
40
|
+
// _linkToNftOwnable(address(_registryService));
|
41
41
|
}
|
42
42
|
|
43
|
-
// from IRegisterable
|
43
|
+
// // from IRegisterable
|
44
44
|
|
45
|
-
// IMPORTANT: registry here and in constructor MUST be the same
|
46
|
-
function
|
45
|
+
// // IMPORTANT: registry here and in constructor MUST be the same
|
46
|
+
function linkOwnershipToServiceNft()
|
47
47
|
public
|
48
48
|
onlyOwner
|
49
49
|
{
|
50
|
-
_linkToNftOwnable(
|
50
|
+
_linkToNftOwnable(address(_registryService));
|
51
51
|
}
|
52
52
|
|
53
53
|
//--- view functions ----------------------------------------------------//
|