@etherisc/gif-next 0.0.2-fd4ee14-428 → 0.0.2-fd5f17a-625
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 +49 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +29 -10
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1342 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -450
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +255 -233
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +67 -106
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +91 -160
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +152 -47
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -19
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +32 -44
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +28 -178
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +290 -141
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +52 -224
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -110
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +227 -238
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- 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/IComponents.sol/IComponents.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/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +43 -37
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +40 -315
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -144
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -85
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1248 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +402 -174
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -94
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +45 -290
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +220 -100
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +45 -576
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +264 -248
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +40 -87
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +31 -162
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +31 -94
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1096 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +185 -175
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +58 -105
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +114 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +184 -119
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +32 -79
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +242 -321
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +55 -106
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +113 -265
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +55 -126
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +35 -378
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +583 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +651 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +246 -42
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
- 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 +464 -99
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +336 -376
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -130
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -78
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +43 -16
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +0 -211
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +242 -185
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +69 -112
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -112
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +32 -37
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
- 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/IPolicyHolder.sol/IPolicyHolder.json +0 -42
- 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/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +32 -275
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +4 -136
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +0 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +27 -27
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +85 -105
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +85 -262
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +47 -94
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -138
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -82
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +146 -165
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +58 -22
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +55 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +566 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/{shared → authorization}/AccessAdmin.sol +135 -305
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +217 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +8 -5
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +21 -17
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +145 -111
- package/contracts/distribution/DistributionService.sol +80 -41
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +25 -39
- package/contracts/distribution/IDistributionService.sol +23 -3
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +14 -38
- package/contracts/instance/IInstanceService.sol +13 -18
- package/contracts/instance/Instance.sol +68 -102
- package/contracts/instance/InstanceAdmin.sol +221 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +54 -16
- package/contracts/instance/InstanceService.sol +112 -84
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +23 -5
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +1 -7
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +22 -22
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/Oracle.sol +73 -51
- package/contracts/oracle/OracleService.sol +4 -3
- package/contracts/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +192 -50
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +33 -5
- package/contracts/pool/IPoolComponent.sol +6 -60
- package/contracts/pool/IPoolService.sol +36 -26
- package/contracts/pool/Pool.sol +165 -138
- package/contracts/pool/PoolService.sol +165 -108
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +53 -59
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +120 -75
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +28 -5
- package/contracts/product/IPolicyService.sol +27 -32
- package/contracts/product/IPricingService.sol +7 -7
- package/contracts/product/IProductComponent.sol +7 -10
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +280 -182
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +44 -43
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +162 -114
- package/contracts/product/{ProductService.sol → RiskService.sol} +11 -38
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +65 -32
- package/contracts/registry/IRegistry.sol +63 -19
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +333 -213
- package/contracts/registry/RegistryAdmin.sol +260 -129
- package/contracts/registry/RegistryService.sol +6 -20
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +491 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +16 -17
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +30 -43
- package/contracts/shared/ComponentService.sol +99 -75
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +2 -2
- package/contracts/shared/IComponent.sol +4 -4
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -7
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IPolicyHolder.sol +0 -9
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +51 -23
- package/contracts/shared/KeyValueStore.sol +6 -2
- package/contracts/shared/Lifecycle.sol +16 -69
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +7 -7
- package/contracts/shared/PolicyHolder.sol +7 -53
- package/contracts/shared/Registerable.sol +4 -4
- package/contracts/shared/RegistryLinked.sol +3 -2
- package/contracts/shared/Service.sol +8 -9
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +3 -3
- package/contracts/staking/IStakingService.sol +12 -5
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +26 -41
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +12 -16
- package/contracts/staking/StakingService.sol +10 -14
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +15 -23
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +12 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ObjectType.sol +52 -18
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RoleId.sol +55 -82
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/StateId.sol +1 -0
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +34 -9
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +4 -5
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +6 -3
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -527
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -4,20 +4,20 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
5
|
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
6
6
|
|
7
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
7
8
|
import {Amount} from "../type/Amount.sol";
|
8
|
-
import {
|
9
|
+
import {BundleSet} from "./BundleSet.sol";
|
9
10
|
import {ChainNft} from "../registry/ChainNft.sol";
|
10
11
|
import {NftId} from "../type/NftId.sol";
|
11
12
|
import {RoleId} from "../type/RoleId.sol";
|
12
13
|
import {SecondsLib} from "../type/Seconds.sol";
|
13
14
|
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
14
|
-
import {ADMIN_ROLE,
|
15
|
+
import {ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
|
15
16
|
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
16
17
|
|
17
18
|
import {Service} from "../shared/Service.sol";
|
18
19
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
19
20
|
import {IService} from "../shared/IService.sol";
|
20
|
-
import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
|
21
21
|
|
22
22
|
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
23
23
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
@@ -29,12 +29,12 @@ import {IStakingService} from "../staking/IStakingService.sol";
|
|
29
29
|
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
30
30
|
|
31
31
|
import {Instance} from "./Instance.sol";
|
32
|
+
import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
|
32
33
|
import {IInstance} from "./IInstance.sol";
|
33
34
|
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
34
35
|
import {IInstanceService} from "./IInstanceService.sol";
|
35
36
|
import {InstanceReader} from "./InstanceReader.sol";
|
36
37
|
import {InstanceStore} from "./InstanceStore.sol";
|
37
|
-
import {InstanceAuthorizationsLib} from "./InstanceAuthorizationsLib.sol";
|
38
38
|
import {Seconds} from "../type/Seconds.sol";
|
39
39
|
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
40
40
|
|
@@ -54,13 +54,13 @@ contract InstanceService is
|
|
54
54
|
address internal _masterInstanceAdmin;
|
55
55
|
address internal _masterInstance;
|
56
56
|
address internal _masterInstanceReader;
|
57
|
-
address internal
|
57
|
+
address internal _masterInstanceBundleSet;
|
58
58
|
address internal _masterInstanceStore;
|
59
59
|
|
60
60
|
|
61
61
|
modifier onlyInstance() {
|
62
62
|
address instanceAddress = msg.sender;
|
63
|
-
NftId instanceNftId = getRegistry().
|
63
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
64
64
|
if (instanceNftId.eqz()) {
|
65
65
|
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
66
66
|
}
|
@@ -94,78 +94,36 @@ contract InstanceService is
|
|
94
94
|
_;
|
95
95
|
}
|
96
96
|
|
97
|
-
function
|
97
|
+
function createInstance()
|
98
98
|
external
|
99
99
|
returns (
|
100
100
|
Instance clonedInstance,
|
101
101
|
NftId clonedInstanceNftId
|
102
102
|
)
|
103
103
|
{
|
104
|
+
// tx sender will become instance owner
|
104
105
|
address instanceOwner = msg.sender;
|
105
|
-
AccessManagerExtendedInitializeable clonedAccessManager = AccessManagerExtendedInitializeable(
|
106
|
-
Clones.clone(_masterAccessManager));
|
107
|
-
|
108
|
-
// initially grants ADMIN_ROLE to this (being the instance service).
|
109
|
-
// This will allow the instance service to bootstrap the authorizations of the instance.
|
110
|
-
// Instance service will renounce ADMIN_ROLE when bootstraping is finished
|
111
|
-
clonedAccessManager.initialize(address(this));
|
112
|
-
|
113
|
-
clonedInstance = Instance(Clones.clone(_masterInstance));
|
114
|
-
clonedInstance.initialize(
|
115
|
-
address(clonedAccessManager),
|
116
|
-
address(getRegistry()),
|
117
|
-
instanceOwner);
|
118
|
-
// initialize and set before instance reader
|
119
|
-
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
120
|
-
clonedInstanceStore.initialize(address(clonedInstance));
|
121
|
-
clonedInstance.setInstanceStore(clonedInstanceStore);
|
122
|
-
|
123
|
-
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
124
|
-
clonedInstanceReader.initialize(address(clonedInstance));
|
125
|
-
clonedInstance.setInstanceReader(clonedInstanceReader);
|
126
|
-
|
127
|
-
BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
|
128
|
-
clonedBundleManager.initialize(address(clonedInstance));
|
129
|
-
clonedInstance.setBundleManager(clonedBundleManager);
|
130
|
-
|
131
|
-
InstanceAdmin clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
|
132
|
-
clonedAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAdmin), 0);
|
133
|
-
clonedInstanceAdmin.initialize(address(clonedInstance));
|
134
|
-
clonedInstance.setInstanceAdmin(clonedInstanceAdmin);
|
135
|
-
|
136
|
-
// TODO amend setters with instance specific , policy manager ...
|
137
|
-
|
138
|
-
// TODO library does external calls -> but it is registry and access manager -> find out is it best practice
|
139
|
-
InstanceAuthorizationsLib.grantInitialAuthorizations(
|
140
|
-
clonedAccessManager,
|
141
|
-
clonedInstanceAdmin,
|
142
|
-
clonedInstance,
|
143
|
-
clonedBundleManager,
|
144
|
-
clonedInstanceStore,
|
145
|
-
instanceOwner,
|
146
|
-
getRegistry(),
|
147
|
-
getVersion().toMajorPart());
|
148
106
|
|
149
|
-
|
107
|
+
// create instance admin and instance
|
108
|
+
InstanceAdmin instanceAdmin = _createInstanceAdmin();
|
109
|
+
clonedInstance = _createInstance(instanceAdmin, instanceOwner);
|
150
110
|
|
151
|
-
// register
|
152
|
-
|
153
|
-
|
111
|
+
// register cloned instance with registry
|
112
|
+
clonedInstanceNftId = _registryService.registerInstance(
|
113
|
+
clonedInstance, instanceOwner).nftId;
|
154
114
|
|
155
|
-
//
|
115
|
+
// register cloned instance as staking target
|
156
116
|
_stakingService.createInstanceTarget(
|
157
117
|
clonedInstanceNftId,
|
158
118
|
TargetManagerLib.getDefaultLockingPeriod(),
|
159
119
|
TargetManagerLib.getDefaultRewardRate());
|
160
120
|
|
121
|
+
// MUST be set after instance is set up and registered
|
122
|
+
instanceAdmin.initializeInstanceAuthorization(address(clonedInstance));
|
123
|
+
|
161
124
|
emit LogInstanceCloned(
|
162
|
-
|
163
|
-
address(
|
164
|
-
address(clonedInstance),
|
165
|
-
address(clonedInstanceStore),
|
166
|
-
address(clonedBundleManager),
|
167
|
-
address(clonedInstanceReader),
|
168
|
-
clonedInstanceNftId);
|
125
|
+
clonedInstanceNftId,
|
126
|
+
address(clonedInstance));
|
169
127
|
}
|
170
128
|
|
171
129
|
|
@@ -174,7 +132,7 @@ contract InstanceService is
|
|
174
132
|
virtual
|
175
133
|
onlyInstance()
|
176
134
|
{
|
177
|
-
NftId instanceNftId = getRegistry().
|
135
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
178
136
|
_stakingService.setInstanceLockingPeriod(
|
179
137
|
instanceNftId,
|
180
138
|
stakeLockingPeriod);
|
@@ -186,7 +144,7 @@ contract InstanceService is
|
|
186
144
|
virtual
|
187
145
|
onlyInstance()
|
188
146
|
{
|
189
|
-
NftId instanceNftId = getRegistry().
|
147
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
190
148
|
_stakingService.setInstanceRewardRate(
|
191
149
|
instanceNftId,
|
192
150
|
rewardRate);
|
@@ -198,7 +156,7 @@ contract InstanceService is
|
|
198
156
|
virtual
|
199
157
|
onlyInstance()
|
200
158
|
{
|
201
|
-
NftId instanceNftId = getRegistry().
|
159
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
202
160
|
_stakingService.refillInstanceRewardReserves(
|
203
161
|
instanceNftId,
|
204
162
|
rewardProvider,
|
@@ -212,7 +170,7 @@ contract InstanceService is
|
|
212
170
|
onlyInstance()
|
213
171
|
returns (Amount newBalance)
|
214
172
|
{
|
215
|
-
NftId instanceNftId = getRegistry().
|
173
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
216
174
|
_stakingService.withdrawInstanceRewardReserves(
|
217
175
|
instanceNftId,
|
218
176
|
dipAmount);
|
@@ -239,9 +197,10 @@ contract InstanceService is
|
|
239
197
|
instanceNftId).objectAddress);
|
240
198
|
|
241
199
|
// no revert in case already locked
|
242
|
-
|
243
|
-
|
244
|
-
|
200
|
+
// TODO refactor/implement
|
201
|
+
// instance.getInstanceAdmin().setTargetLockedByService(
|
202
|
+
// componentAddress,
|
203
|
+
// locked);
|
245
204
|
}
|
246
205
|
|
247
206
|
|
@@ -255,38 +214,39 @@ contract InstanceService is
|
|
255
214
|
returns(NftId masterInstanceNftId)
|
256
215
|
{
|
257
216
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
258
|
-
if(_masterAccessManager != address(0)) { revert ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet(); }
|
259
217
|
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
260
|
-
if(
|
218
|
+
if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
261
219
|
|
262
220
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
263
221
|
|
264
222
|
IInstance instance = IInstance(instanceAddress);
|
223
|
+
address accessManagerAddress = instance.authority();
|
265
224
|
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
266
225
|
address instanceAdminAddress = address(instanceAdmin);
|
267
226
|
InstanceReader instanceReader = instance.getInstanceReader();
|
268
227
|
address instanceReaderAddress = address(instanceReader);
|
269
|
-
|
228
|
+
BundleSet bundleManager = instance.getBundleSet();
|
270
229
|
address bundleManagerAddress = address(bundleManager);
|
271
230
|
InstanceStore instanceStore = instance.getInstanceStore();
|
272
231
|
address instanceStoreAddress = address(instanceStore);
|
273
232
|
|
233
|
+
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
274
234
|
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
275
235
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
276
|
-
if(bundleManagerAddress == address(0)) { revert
|
236
|
+
if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
277
237
|
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
278
238
|
|
279
239
|
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
280
|
-
if(bundleManager.authority() != instanceAdmin.authority()) { revert
|
240
|
+
if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
281
241
|
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
282
242
|
if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
|
283
243
|
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
284
244
|
|
285
|
-
_masterAccessManager =
|
245
|
+
_masterAccessManager = accessManagerAddress;
|
286
246
|
_masterInstanceAdmin = instanceAdminAddress;
|
287
247
|
_masterInstance = instanceAddress;
|
288
248
|
_masterInstanceReader = instanceReaderAddress;
|
289
|
-
|
249
|
+
_masterInstanceBundleSet = bundleManagerAddress;
|
290
250
|
_masterInstanceStore = instanceStoreAddress;
|
291
251
|
|
292
252
|
IInstance masterInstance = IInstance(_masterInstance);
|
@@ -314,7 +274,7 @@ contract InstanceService is
|
|
314
274
|
Instance instance = Instance(instanceInfo.objectAddress);
|
315
275
|
|
316
276
|
InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
317
|
-
upgradedInstanceReaderClone.
|
277
|
+
upgradedInstanceReaderClone.initializeWithInstance(address(instance));
|
318
278
|
instance.setInstanceReader(upgradedInstanceReaderClone);
|
319
279
|
}
|
320
280
|
|
@@ -340,6 +300,25 @@ contract InstanceService is
|
|
340
300
|
}
|
341
301
|
|
342
302
|
|
303
|
+
function initializeAuthorization(
|
304
|
+
NftId instanceNftId,
|
305
|
+
IInstanceLinkedComponent component
|
306
|
+
)
|
307
|
+
external
|
308
|
+
virtual
|
309
|
+
restricted()
|
310
|
+
{
|
311
|
+
(IInstance instance, ) = _validateInstanceAndComponent(
|
312
|
+
instanceNftId,
|
313
|
+
address(component));
|
314
|
+
|
315
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
316
|
+
instanceAdmin.initializeComponentAuthorization(
|
317
|
+
component,
|
318
|
+
component.getAuthorization());
|
319
|
+
}
|
320
|
+
|
321
|
+
|
343
322
|
function createComponentTarget(
|
344
323
|
NftId instanceNftId,
|
345
324
|
address targetAddress,
|
@@ -360,6 +339,53 @@ contract InstanceService is
|
|
360
339
|
);
|
361
340
|
}
|
362
341
|
|
342
|
+
/// @dev create new cloned instance admin
|
343
|
+
/// function used to setup a new instance
|
344
|
+
function _createInstanceAdmin()
|
345
|
+
internal
|
346
|
+
virtual
|
347
|
+
returns (InstanceAdmin clonedInstanceAdmin)
|
348
|
+
{
|
349
|
+
// start with setting up a new OZ access manager
|
350
|
+
AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
|
351
|
+
Clones.clone(_masterAccessManager));
|
352
|
+
|
353
|
+
// set up the instance admin
|
354
|
+
clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
|
355
|
+
clonedAccessManager.initialize(
|
356
|
+
address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
|
357
|
+
|
358
|
+
clonedInstanceAdmin.initialize(
|
359
|
+
clonedAccessManager,
|
360
|
+
InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
|
361
|
+
}
|
362
|
+
|
363
|
+
|
364
|
+
/// @dev create new cloned instance
|
365
|
+
/// function used to setup a new instance
|
366
|
+
function _createInstance(
|
367
|
+
InstanceAdmin instanceAdmin,
|
368
|
+
address instanceOwner
|
369
|
+
)
|
370
|
+
internal
|
371
|
+
virtual
|
372
|
+
returns (Instance clonedInstance)
|
373
|
+
{
|
374
|
+
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
375
|
+
BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
|
376
|
+
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
377
|
+
|
378
|
+
// clone instance
|
379
|
+
clonedInstance = Instance(Clones.clone(_masterInstance));
|
380
|
+
clonedInstance.initialize(
|
381
|
+
instanceAdmin,
|
382
|
+
clonedInstanceStore,
|
383
|
+
clonedBundleSet,
|
384
|
+
clonedInstanceReader,
|
385
|
+
getRegistry(),
|
386
|
+
instanceOwner);
|
387
|
+
}
|
388
|
+
|
363
389
|
|
364
390
|
/// all gif targets MUST be children of instanceNftId
|
365
391
|
function _createGifTarget(
|
@@ -379,12 +405,14 @@ contract InstanceService is
|
|
379
405
|
) = _validateInstanceAndComponent(instanceNftId, targetAddress);
|
380
406
|
|
381
407
|
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
382
|
-
|
408
|
+
|
409
|
+
// TODO refactor/implement
|
410
|
+
// instanceAdmin.createGifTarget(targetAddress, targetName);
|
411
|
+
|
383
412
|
// set proposed target config
|
384
|
-
// TODO restriction: gif targets are set only once and only here?
|
385
|
-
// assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
|
386
413
|
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
|
387
|
-
|
414
|
+
// TODO refactor/implement
|
415
|
+
// instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
|
388
416
|
}
|
389
417
|
}
|
390
418
|
|
@@ -394,8 +422,8 @@ contract InstanceService is
|
|
394
422
|
bytes memory data
|
395
423
|
)
|
396
424
|
internal
|
397
|
-
initializer
|
398
425
|
virtual override
|
426
|
+
initializer()
|
399
427
|
{
|
400
428
|
(
|
401
429
|
address registryAddress,,
|
@@ -403,12 +431,12 @@ contract InstanceService is
|
|
403
431
|
address authority
|
404
432
|
) = abi.decode(data, (address, address, address));
|
405
433
|
|
406
|
-
|
434
|
+
_initializeService(registryAddress, authority, owner);
|
407
435
|
|
408
436
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
409
437
|
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
410
438
|
|
411
|
-
|
439
|
+
_registerInterface(type(IInstanceService).interfaceId);
|
412
440
|
}
|
413
441
|
|
414
442
|
|
@@ -1,13 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
import {ProxyManager} from "../shared/ProxyManager.sol";
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
7
6
|
import {InstanceService} from "./InstanceService.sol";
|
8
|
-
import {Registry} from "../registry/Registry.sol";
|
9
|
-
import {RegistryService} from "../registry/RegistryService.sol";
|
10
|
-
import {REGISTRY} from "../type/ObjectType.sol";
|
11
7
|
|
12
8
|
contract InstanceServiceManager is ProxyManager {
|
13
9
|
|
@@ -7,7 +7,7 @@ import {Amount} from "../type/Amount.sol";
|
|
7
7
|
import {Key32} from "../type/Key32.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
9
9
|
import {ClaimId} from "../type/ClaimId.sol";
|
10
|
-
import {ObjectType, BUNDLE, POLICY, POOL, PRODUCT, COMPONENT, DISTRIBUTOR
|
10
|
+
import {ObjectType, BUNDLE, POLICY, POOL, PREMIUM, PRODUCT, COMPONENT, DISTRIBUTOR} from "../type/ObjectType.sol";
|
11
11
|
import {RequestId} from "../type/RequestId.sol";
|
12
12
|
import {RiskId} from "../type/RiskId.sol";
|
13
13
|
import {StateId} from "../type/StateId.sol";
|
@@ -27,21 +27,28 @@ import {IPolicy} from "./module/IPolicy.sol";
|
|
27
27
|
import {IOracle} from "../oracle/IOracle.sol";
|
28
28
|
import {IRisk} from "./module/IRisk.sol";
|
29
29
|
|
30
|
+
import {ObjectLifecycle} from "./base/ObjectLifecycle.sol";
|
31
|
+
|
30
32
|
|
31
33
|
contract InstanceStore is
|
32
34
|
AccessManagedUpgradeable,
|
33
35
|
BalanceStore,
|
34
36
|
KeyValueStore,
|
35
|
-
ObjectCounter
|
37
|
+
ObjectCounter,
|
38
|
+
ObjectLifecycle
|
36
39
|
{
|
37
|
-
|
40
|
+
|
41
|
+
/// @dev This initializer needs to be called from the instance itself.
|
42
|
+
function initialize()
|
38
43
|
public
|
39
44
|
initializer()
|
40
45
|
{
|
46
|
+
address instance = msg.sender;
|
41
47
|
address authority = IInstance(instance).authority();
|
42
|
-
__AccessManaged_init(authority);
|
43
48
|
|
44
|
-
|
49
|
+
__AccessManaged_init(authority);
|
50
|
+
// double initialization, safe
|
51
|
+
_initializeLifecycle();
|
45
52
|
}
|
46
53
|
|
47
54
|
//--- Component ---------------------------------------------------------//
|
@@ -109,6 +116,7 @@ contract InstanceStore is
|
|
109
116
|
|
110
117
|
//--- Distributor -------------------------------------------------------//
|
111
118
|
function createDistributor(NftId distributorNftId, IDistribution.DistributorInfo memory info) external restricted() {
|
119
|
+
_registerBalanceTarget(distributorNftId);
|
112
120
|
_create(_toNftKey32(distributorNftId, DISTRIBUTOR()), abi.encode(info));
|
113
121
|
}
|
114
122
|
|
@@ -187,6 +195,16 @@ contract InstanceStore is
|
|
187
195
|
_updateState(_toNftKey32(policyNftId, POLICY()), newState);
|
188
196
|
}
|
189
197
|
|
198
|
+
|
199
|
+
//--- Premium (Policy) ----------------------------------------------//
|
200
|
+
function createPremium(NftId policyNftId, IPolicy.PremiumInfo memory premium) external restricted() {
|
201
|
+
_create(_toNftKey32(policyNftId, PREMIUM()), abi.encode(premium));
|
202
|
+
}
|
203
|
+
|
204
|
+
function updatePremiumState(NftId policyNftId, StateId newState) external restricted() {
|
205
|
+
_updateState(_toNftKey32(policyNftId, PREMIUM()), newState);
|
206
|
+
}
|
207
|
+
|
190
208
|
//--- Claim -------------------------------------------------------------//
|
191
209
|
function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
|
192
210
|
_create(_toClaimKey32(policyNftId, claimId), abi.encode(claim));
|
@@ -0,0 +1,111 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
|
+
|
6
|
+
import {COMPONENT, BUNDLE, POLICY, REQUEST, RISK, CLAIM, PAYOUT, POOL, PREMIUM, PRODUCT, DISTRIBUTION, DISTRIBUTOR, DISTRIBUTOR_TYPE, REFERRAL} from "../../type/ObjectType.sol";
|
7
|
+
import {ACTIVE, PAUSED, ARCHIVED, CLOSED, APPLIED, COLLATERALIZED, REVOKED, SUBMITTED, CONFIRMED, DECLINED, EXPECTED, PAID, FULFILLED, FAILED, CANCELLED} from "../../type/StateId.sol";
|
8
|
+
import {Lifecycle} from "../../shared/Lifecycle.sol";
|
9
|
+
|
10
|
+
contract ObjectLifecycle is
|
11
|
+
Lifecycle,
|
12
|
+
Initializable
|
13
|
+
{
|
14
|
+
function _initializeLifecycle() internal onlyInitializing
|
15
|
+
{
|
16
|
+
_setupLifecycle();
|
17
|
+
}
|
18
|
+
|
19
|
+
function _setupLifecycle()
|
20
|
+
internal
|
21
|
+
override
|
22
|
+
{
|
23
|
+
_setupBundleLifecycle();
|
24
|
+
_setupComponentLifecycle();
|
25
|
+
_setupPolicyLifecycle();
|
26
|
+
_setupPremiumLifecycle();
|
27
|
+
_setupClaimLifecycle();
|
28
|
+
_setupPayoutLifecycle();
|
29
|
+
_setupRiskLifecycle();
|
30
|
+
_setupRequestLifecycle();
|
31
|
+
|
32
|
+
// setup dummy lifecycles to manage with key value store
|
33
|
+
_setUpPoolLifecycle();
|
34
|
+
_setUpProductLifecycle();
|
35
|
+
_setUpDistributionLifecycle();
|
36
|
+
}
|
37
|
+
|
38
|
+
function _setupComponentLifecycle() private {
|
39
|
+
setInitialState(COMPONENT(), ACTIVE());
|
40
|
+
setStateTransition(COMPONENT(), ACTIVE(), PAUSED());
|
41
|
+
setStateTransition(COMPONENT(), PAUSED(), ACTIVE());
|
42
|
+
setStateTransition(COMPONENT(), PAUSED(), ARCHIVED());
|
43
|
+
}
|
44
|
+
|
45
|
+
function _setupBundleLifecycle() private {
|
46
|
+
setInitialState(BUNDLE(), ACTIVE());
|
47
|
+
setStateTransition(BUNDLE(), ACTIVE(), PAUSED());
|
48
|
+
setStateTransition(BUNDLE(), ACTIVE(), CLOSED());
|
49
|
+
setStateTransition(BUNDLE(), PAUSED(), ACTIVE());
|
50
|
+
setStateTransition(BUNDLE(), PAUSED(), CLOSED());
|
51
|
+
}
|
52
|
+
|
53
|
+
function _setupPolicyLifecycle() private {
|
54
|
+
setInitialState(POLICY(), APPLIED());
|
55
|
+
setStateTransition(POLICY(), APPLIED(), REVOKED());
|
56
|
+
setStateTransition(POLICY(), APPLIED(), DECLINED());
|
57
|
+
setStateTransition(POLICY(), APPLIED(), COLLATERALIZED());
|
58
|
+
setStateTransition(POLICY(), COLLATERALIZED(), CLOSED());
|
59
|
+
}
|
60
|
+
|
61
|
+
function _setupPremiumLifecycle() private {
|
62
|
+
setInitialState(PREMIUM(), EXPECTED());
|
63
|
+
setStateTransition(PREMIUM(), EXPECTED(), PAID());
|
64
|
+
}
|
65
|
+
|
66
|
+
function _setupClaimLifecycle() private {
|
67
|
+
setInitialState(CLAIM(), SUBMITTED());
|
68
|
+
setStateTransition(CLAIM(), SUBMITTED(), CONFIRMED());
|
69
|
+
setStateTransition(CLAIM(), SUBMITTED(), DECLINED());
|
70
|
+
setStateTransition(CLAIM(), CONFIRMED(), CLOSED());
|
71
|
+
}
|
72
|
+
|
73
|
+
function _setupPayoutLifecycle() private {
|
74
|
+
setInitialState(PAYOUT(), EXPECTED());
|
75
|
+
// TODO: add state cancelled
|
76
|
+
setStateTransition(PAYOUT(), EXPECTED(), PAID());
|
77
|
+
}
|
78
|
+
|
79
|
+
function _setupRiskLifecycle() private {
|
80
|
+
setInitialState(RISK(), ACTIVE());
|
81
|
+
setStateTransition(RISK(), ACTIVE(), PAUSED());
|
82
|
+
setStateTransition(RISK(), PAUSED(), ACTIVE());
|
83
|
+
setStateTransition(RISK(), PAUSED(), ARCHIVED());
|
84
|
+
}
|
85
|
+
|
86
|
+
function _setupRequestLifecycle() private {
|
87
|
+
setInitialState(REQUEST(), ACTIVE());
|
88
|
+
setStateTransition(REQUEST(), ACTIVE(), FULFILLED());
|
89
|
+
setStateTransition(REQUEST(), ACTIVE(), FAILED());
|
90
|
+
setStateTransition(REQUEST(), FAILED(), FULFILLED());
|
91
|
+
setStateTransition(REQUEST(), ACTIVE(), CANCELLED());
|
92
|
+
}
|
93
|
+
|
94
|
+
// dummy lifecycle only
|
95
|
+
function _setUpPoolLifecycle() private {
|
96
|
+
setInitialState(POOL(), ACTIVE());
|
97
|
+
}
|
98
|
+
|
99
|
+
// dummy lifecycle only
|
100
|
+
function _setUpProductLifecycle() private {
|
101
|
+
setInitialState(PRODUCT(), ACTIVE());
|
102
|
+
}
|
103
|
+
|
104
|
+
// dummy lifecycles only
|
105
|
+
function _setUpDistributionLifecycle() private {
|
106
|
+
setInitialState(DISTRIBUTION(), ACTIVE());
|
107
|
+
setInitialState(DISTRIBUTOR(), ACTIVE());
|
108
|
+
setInitialState(DISTRIBUTOR_TYPE(), ACTIVE());
|
109
|
+
setInitialState(REFERRAL(), ACTIVE());
|
110
|
+
}
|
111
|
+
}
|
@@ -10,28 +10,27 @@ import {IRegistry} from "../../registry/IRegistry.sol";
|
|
10
10
|
import {LibNftIdSet} from "../../type/NftIdSet.sol";
|
11
11
|
import {NftId} from "../../type/NftId.sol";
|
12
12
|
|
13
|
-
contract
|
13
|
+
contract ObjectSet is
|
14
14
|
Cloneable
|
15
15
|
{
|
16
16
|
|
17
|
-
event
|
17
|
+
event LogObjectSetInitialized(address instance);
|
18
18
|
|
19
|
-
error
|
19
|
+
error ErrorObjectSetNftIdInvalid(NftId instanceNftId);
|
20
20
|
|
21
21
|
mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _activeObjects;
|
22
22
|
mapping(NftId compnentNftId => LibNftIdSet.Set objects) internal _allObjects;
|
23
|
-
IInstance internal _instance; // store instance address -> more flexible, instance may not be registered during
|
23
|
+
IInstance internal _instance; // store instance address -> more flexible, instance may not be registered during ObjectSet initialization
|
24
24
|
|
25
|
-
/// @dev
|
26
|
-
function initialize(
|
27
|
-
|
28
|
-
|
25
|
+
/// @dev This initializer needs to be called from the instance itself.
|
26
|
+
function initialize()
|
27
|
+
external
|
28
|
+
initializer()
|
29
29
|
{
|
30
|
-
|
31
|
-
__Cloneable_init(
|
32
|
-
_instance = instance;
|
30
|
+
_instance = IInstance(msg.sender);
|
31
|
+
__Cloneable_init(_instance.authority(), address(_instance.getRegistry()));
|
33
32
|
|
34
|
-
emit
|
33
|
+
emit LogObjectSetInitialized(address(_instance));
|
35
34
|
}
|
36
35
|
|
37
36
|
function getInstance() external view returns (IInstance) {
|
@@ -13,7 +13,7 @@ interface IBundle {
|
|
13
13
|
NftId poolNftId;
|
14
14
|
Fee fee; // bundle fee on net premium amounts
|
15
15
|
bytes filter; // required conditions for applications to be considered for collateralization by this bundle
|
16
|
-
|
16
|
+
Timestamp activatedAt;
|
17
17
|
Timestamp expiredAt; // no new policies starting with this timestamp
|
18
18
|
Timestamp closedAt; // no open policies, locked amount = 0
|
19
19
|
}
|
@@ -21,7 +21,6 @@ interface IComponents {
|
|
21
21
|
bytes data; // will hold component type specific additional info (eg encoded pool info)
|
22
22
|
}
|
23
23
|
|
24
|
-
|
25
24
|
struct ProductInfo {
|
26
25
|
NftId distributionNftId;
|
27
26
|
NftId poolNftId;
|
@@ -36,17 +35,12 @@ interface IComponents {
|
|
36
35
|
|
37
36
|
|
38
37
|
struct PoolInfo {
|
39
|
-
|
38
|
+
Amount maxBalanceAmount; // max balance amount allowed for pool
|
40
39
|
RoleId bundleOwnerRole; // the required role for bundle owners
|
41
|
-
// TODO maxCapitalAmount -> maxBalanceAmount
|
42
|
-
Amount maxCapitalAmount; // max capital amount allowed for pool
|
43
40
|
bool isInterceptingBundleTransfers; // intercepts nft transfers for bundles
|
44
41
|
bool isExternallyManaged; // funding bundles is restricted to book keeping, actual funds may be provided as needed to support payouts
|
45
42
|
bool isVerifyingApplications; // underwriting requires the pool component checks/confirms the applications
|
46
43
|
UFixed collateralizationLevel; // factor to calculate collateral for sum insurance (default 100%)
|
47
44
|
UFixed retentionLevel; // amount of collateral held in pool (default 100%)
|
48
|
-
Fee poolFee; // pool fee on net premium
|
49
|
-
Fee stakingFee; // pool fee on staked capital from investor
|
50
|
-
Fee performanceFee; // pool fee on profits from capital investors
|
51
45
|
}
|
52
46
|
}
|