@etherisc/gif-next 0.0.2-ce3fd5e-324 → 0.0.2-ce86487-031
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 +48 -5
- 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/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- 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/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- 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 +1518 -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 +180 -360
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +283 -282
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +146 -72
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +180 -237
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +169 -64
- 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 +77 -78
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +193 -52
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +93 -126
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- 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 +469 -345
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +282 -101
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +120 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1010 -378
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- 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/IAccess.sol/IAccess.json +8 -116
- 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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -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 +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +802 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1055 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1432 -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 +437 -204
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +184 -50
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +235 -32
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +182 -331
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +311 -175
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +244 -433
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +468 -390
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +143 -53
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +97 -152
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +116 -34
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1280 -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 +150 -187
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +134 -56
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +20 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +46 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +180 -26
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +40 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +272 -148
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -55
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +300 -257
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +126 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +172 -159
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +141 -43
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +312 -272
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +47 -203
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +94 -32
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +182 -28
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +206 -124
- 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 +439 -39
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +370 -68
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -35
- 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 +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -138
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +104 -119
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1284 -203
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +76 -81
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +737 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +12 -16
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +977 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
- 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 +13 -7
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +21 -7
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +20 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +87 -4
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +566 -54
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +470 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1991 -0
- 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 +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +773 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +661 -85
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
- 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 +97 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -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 +39 -34
- 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 +47 -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 +149 -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 +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- 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 +219 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +100 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- 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 +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -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 +617 -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/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +162 -152
- package/contracts/distribution/DistributionService.sol +120 -133
- package/contracts/distribution/DistributionServiceManager.sol +11 -23
- package/contracts/distribution/IDistributionComponent.sol +28 -47
- package/contracts/distribution/IDistributionService.sol +19 -9
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +26 -17
- package/contracts/instance/IInstanceService.sol +46 -27
- package/contracts/instance/Instance.sol +114 -89
- package/contracts/instance/InstanceAdmin.sol +266 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +92 -52
- package/contracts/instance/InstanceService.sol +266 -131
- package/contracts/instance/InstanceServiceManager.sol +12 -26
- package/contracts/instance/InstanceStore.sol +132 -66
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
- package/contracts/instance/module/IAccess.sol +2 -10
- package/contracts/instance/module/IBundle.sol +1 -4
- package/contracts/instance/module/IComponents.sol +15 -10
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +13 -6
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +166 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +264 -196
- package/contracts/pool/BundleServiceManager.sol +11 -23
- package/contracts/pool/IBundleService.sol +36 -19
- package/contracts/pool/IPoolComponent.sol +10 -66
- package/contracts/pool/IPoolService.sol +60 -25
- package/contracts/pool/Pool.sol +170 -144
- package/contracts/pool/PoolService.sol +361 -205
- package/contracts/pool/PoolServiceManager.sol +11 -23
- package/contracts/product/ApplicationService.sol +124 -80
- package/contracts/product/ApplicationServiceManager.sol +11 -8
- package/contracts/product/BasicProduct.sol +52 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +53 -66
- package/contracts/product/ClaimServiceManager.sol +11 -8
- package/contracts/product/IApplicationService.sol +1 -1
- package/contracts/product/IClaimService.sol +13 -3
- package/contracts/product/IPolicyService.sol +16 -12
- package/contracts/product/IPricingService.sol +3 -1
- package/contracts/product/IProductComponent.sol +10 -11
- package/contracts/product/IProductService.sol +1 -8
- package/contracts/product/PolicyService.sol +319 -153
- package/contracts/product/PolicyServiceManager.sol +11 -26
- package/contracts/product/PricingService.sol +78 -53
- package/contracts/product/PricingServiceManager.sol +11 -23
- package/contracts/product/Product.sol +145 -109
- package/contracts/product/ProductService.sol +36 -147
- package/contracts/product/ProductServiceManager.sol +11 -26
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +54 -21
- package/contracts/registry/IRegistryService.sol +38 -35
- package/contracts/registry/Registry.sol +233 -124
- package/contracts/registry/RegistryAdmin.sol +365 -0
- package/contracts/registry/RegistryService.sol +67 -100
- package/contracts/registry/RegistryServiceManager.sol +23 -30
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +140 -130
- package/contracts/shared/ComponentService.sol +596 -96
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/IComponent.sol +21 -40
- package/contracts/shared/IComponentService.sol +108 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IPolicyHolder.sol +6 -1
- package/contracts/shared/IService.sol +9 -2
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +172 -0
- package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -73
- package/contracts/shared/Lifecycle.sol +77 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +4 -15
- package/contracts/shared/PolicyHolder.sol +22 -17
- package/contracts/shared/Registerable.sol +2 -2
- package/contracts/shared/Service.sol +32 -22
- package/contracts/shared/TokenHandler.sol +28 -1
- package/contracts/staking/IStaking.sol +167 -0
- package/contracts/staking/IStakingService.sol +105 -47
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +516 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +50 -0
- package/contracts/staking/StakingReader.sol +183 -0
- package/contracts/staking/StakingService.sol +288 -47
- package/contracts/staking/{StakeingServiceManager.sol → StakingServiceManager.sol} +13 -6
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +29 -3
- package/contracts/type/Blocknumber.sol +26 -3
- package/contracts/type/Fee.sol +17 -16
- package/contracts/type/NftId.sol +14 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +172 -63
- package/contracts/type/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +104 -62
- package/contracts/type/Seconds.sol +40 -1
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +27 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +17 -3
- package/contracts/type/UFixed.sol +34 -9
- package/contracts/type/Version.sol +4 -2
- package/contracts/{shared → upgradeability}/ProxyManager.sol +33 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +8 -5
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- 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/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
- 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/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +0 -628
- package/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
- package/contracts/instance/base/Lifecycle.sol +0 -120
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/registry/ReleaseManager.sol +0 -328
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -1,50 +1,46 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
3
5
|
|
4
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
5
7
|
import {Product} from "./Product.sol";
|
6
8
|
import {IComponents} from "../instance/module/IComponents.sol";
|
7
|
-
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
8
9
|
import {IInstance} from "../instance/IInstance.sol";
|
9
10
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
10
|
-
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
11
|
-
import {IRisk} from "../instance/module/IRisk.sol";
|
12
|
-
import {IBundle} from "../instance/module/IBundle.sol";
|
13
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
14
11
|
|
15
12
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
16
13
|
|
17
14
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
18
|
-
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
19
15
|
import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
20
|
-
import {
|
21
|
-
import {
|
22
|
-
import {APPLIED, COLLATERALIZED, ACTIVE, KEEP_STATE, CLOSED, DECLINED, CONFIRMED} from "../type/StateId.sol";
|
16
|
+
import {ObjectType, APPLICATION, COMPONENT, DISTRIBUTION, PRODUCT, POOL, POLICY, BUNDLE, CLAIM, PRICE} from "../type/ObjectType.sol";
|
17
|
+
import {APPLIED, COLLATERALIZED, ACTIVE, KEEP_STATE, CLOSED, DECLINED} from "../type/StateId.sol";
|
23
18
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
24
|
-
import {
|
19
|
+
import {ReferralId} from "../type/Referral.sol";
|
25
20
|
import {StateId} from "../type/StateId.sol";
|
26
21
|
import {VersionPart} from "../type/Version.sol";
|
27
22
|
|
28
|
-
import {
|
23
|
+
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
29
24
|
import {IApplicationService} from "./IApplicationService.sol";
|
30
25
|
import {IBundleService} from "../pool/IBundleService.sol";
|
31
26
|
import {IClaimService} from "./IClaimService.sol";
|
27
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
32
28
|
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
33
29
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
30
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
34
31
|
import {IPolicyService} from "./IPolicyService.sol";
|
35
32
|
import {IPoolService} from "../pool/IPoolService.sol";
|
36
33
|
import {IPricingService} from "./IPricingService.sol";
|
37
|
-
import {IService} from "../shared/IService.sol";
|
38
|
-
import {Service} from "../shared/Service.sol";
|
39
34
|
|
40
35
|
contract PolicyService is
|
41
|
-
|
36
|
+
ComponentVerifyingService,
|
42
37
|
IPolicyService
|
43
38
|
{
|
44
39
|
using NftIdLib for NftId;
|
45
40
|
using TimestampLib for Timestamp;
|
46
41
|
|
47
42
|
IApplicationService internal _applicationService;
|
43
|
+
IComponentService internal _componentService;
|
48
44
|
IBundleService internal _bundleService;
|
49
45
|
IClaimService internal _claimService;
|
50
46
|
IDistributionService internal _distributionService;
|
@@ -61,17 +57,20 @@ contract PolicyService is
|
|
61
57
|
virtual override
|
62
58
|
initializer
|
63
59
|
{
|
64
|
-
|
65
|
-
|
66
|
-
|
60
|
+
(
|
61
|
+
address registryAddress,,
|
62
|
+
//address managerAddress
|
63
|
+
address authority
|
64
|
+
) = abi.decode(data, (address, address, address));
|
67
65
|
|
68
|
-
initializeService(registryAddress,
|
66
|
+
initializeService(registryAddress, authority, owner);
|
69
67
|
|
70
68
|
VersionPart majorVersion = getVersion().toMajorPart();
|
71
|
-
|
69
|
+
_applicationService = IApplicationService(getRegistry().getServiceAddress(APPLICATION(), majorVersion));
|
72
70
|
_bundleService = IBundleService(getRegistry().getServiceAddress(BUNDLE(), majorVersion));
|
71
|
+
_componentService = IComponentService(getRegistry().getServiceAddress(COMPONENT(), majorVersion));
|
73
72
|
_claimService = IClaimService(getRegistry().getServiceAddress(CLAIM(), majorVersion));
|
74
|
-
|
73
|
+
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), majorVersion));
|
75
74
|
_distributionService = IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), majorVersion));
|
76
75
|
_pricingService = IPricingService(getRegistry().getServiceAddress(PRICE(), majorVersion));
|
77
76
|
|
@@ -79,29 +78,48 @@ contract PolicyService is
|
|
79
78
|
}
|
80
79
|
|
81
80
|
|
82
|
-
function getDomain() public pure override returns(ObjectType) {
|
83
|
-
return POLICY();
|
84
|
-
}
|
85
|
-
|
86
|
-
|
87
81
|
function _getAndVerifyInstanceAndProduct() internal view returns (Product product) {
|
88
82
|
IRegistry.ObjectInfo memory productInfo;
|
89
|
-
(, productInfo,) =
|
83
|
+
(, productInfo,) = _getAndVerifyActiveComponent(PRODUCT());
|
90
84
|
product = Product(productInfo.objectAddress);
|
91
85
|
}
|
92
|
-
|
86
|
+
|
93
87
|
|
94
88
|
function decline(
|
95
|
-
NftId policyNftId
|
89
|
+
NftId applicationNftId // = policyNftId
|
96
90
|
)
|
97
91
|
external
|
98
|
-
override
|
92
|
+
virtual override
|
99
93
|
{
|
100
|
-
|
94
|
+
(NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
95
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
96
|
+
|
97
|
+
// check policy is in state applied
|
98
|
+
if (instanceReader.getPolicyState(applicationNftId) != APPLIED()) {
|
99
|
+
revert ErrorPolicyServicePolicyStateNotApplied(applicationNftId);
|
100
|
+
}
|
101
|
+
|
102
|
+
// check policy matches with calling product
|
103
|
+
IPolicy.PolicyInfo memory applicationInfo = instanceReader.getPolicyInfo(applicationNftId);
|
104
|
+
if(applicationInfo.productNftId != productNftId) {
|
105
|
+
revert ErrorPolicyServicePolicyProductMismatch(
|
106
|
+
applicationNftId,
|
107
|
+
applicationInfo.productNftId,
|
108
|
+
productNftId);
|
109
|
+
}
|
110
|
+
|
111
|
+
|
112
|
+
// store updated policy info
|
113
|
+
instance.getInstanceStore().updatePolicyState(
|
114
|
+
applicationNftId,
|
115
|
+
DECLINED());
|
116
|
+
|
117
|
+
emit LogPolicyServicePolicyDeclined(applicationNftId);
|
101
118
|
}
|
102
119
|
|
120
|
+
event LogDebug(uint idx, string message);
|
103
121
|
|
104
|
-
/// @
|
122
|
+
/// @inheritdoc IPolicyService
|
105
123
|
function collateralize(
|
106
124
|
NftId applicationNftId, // = policyNftId
|
107
125
|
bool requirePremiumPayment,
|
@@ -111,9 +129,14 @@ contract PolicyService is
|
|
111
129
|
virtual override
|
112
130
|
{
|
113
131
|
// check caller is registered product
|
114
|
-
(NftId productNftId,, IInstance instance) =
|
132
|
+
(NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
115
133
|
InstanceReader instanceReader = instance.getInstanceReader();
|
116
134
|
|
135
|
+
// check policy is in state applied
|
136
|
+
if (instanceReader.getPolicyState(applicationNftId) != APPLIED()) {
|
137
|
+
revert ErrorPolicyServicePolicyStateNotApplied(applicationNftId);
|
138
|
+
}
|
139
|
+
|
117
140
|
// check policy matches with calling product
|
118
141
|
IPolicy.PolicyInfo memory applicationInfo = instanceReader.getPolicyInfo(applicationNftId);
|
119
142
|
if(applicationInfo.productNftId != productNftId) {
|
@@ -122,14 +145,21 @@ contract PolicyService is
|
|
122
145
|
applicationInfo.productNftId,
|
123
146
|
productNftId);
|
124
147
|
}
|
125
|
-
|
126
|
-
// check policy is in state applied
|
127
|
-
if (instanceReader.getPolicyState(applicationNftId) != APPLIED()) {
|
128
|
-
revert ErrorPolicyServicePolicyStateNotApplied(applicationNftId);
|
129
|
-
}
|
130
148
|
|
131
149
|
StateId newPolicyState = COLLATERALIZED();
|
132
150
|
|
151
|
+
// actual collateralizaion
|
152
|
+
(
|
153
|
+
Amount localCollateralAmount,
|
154
|
+
Amount totalCollateralAmount
|
155
|
+
) = _poolService.lockCollateral(
|
156
|
+
instance,
|
157
|
+
address(instanceReader.getComponentInfo(productNftId).token),
|
158
|
+
productNftId,
|
159
|
+
applicationNftId,
|
160
|
+
applicationInfo.bundleNftId,
|
161
|
+
applicationInfo.sumInsuredAmount);
|
162
|
+
|
133
163
|
// optional activation of policy
|
134
164
|
if(activateAt > zeroTimestamp()) {
|
135
165
|
newPolicyState = ACTIVE();
|
@@ -137,51 +167,35 @@ contract PolicyService is
|
|
137
167
|
applicationInfo.expiredAt = activateAt.addSeconds(applicationInfo.lifetime);
|
138
168
|
}
|
139
169
|
|
140
|
-
|
141
|
-
Amount netPremiumAmount = AmountLib.zero(); // > 0 if immediate premium payment
|
170
|
+
IPolicy.Premium memory premium;
|
142
171
|
|
143
|
-
// optional collection of
|
172
|
+
// optional: calculate the premium and update counters for collection at the end of this function
|
144
173
|
if(requirePremiumPayment) {
|
145
|
-
|
146
|
-
instance,
|
147
|
-
applicationNftId,
|
148
|
-
applicationInfo
|
174
|
+
premium = _calculateAndProcessPremium(
|
175
|
+
instance,
|
176
|
+
applicationNftId,
|
177
|
+
applicationInfo);
|
149
178
|
|
150
|
-
applicationInfo.premiumPaidAmount =
|
179
|
+
applicationInfo.premiumPaidAmount = AmountLib.toAmount(premium.premiumAmount);
|
151
180
|
}
|
152
181
|
|
153
182
|
// store updated policy info
|
154
|
-
instance.getInstanceStore().updatePolicy(
|
155
|
-
|
156
|
-
// lock collateral and update pool and bundle book keeping
|
157
|
-
// pool retention level: fraction of sum insured that product will cover from pool funds directly
|
158
|
-
// eg retention level 30%, payouts up to 30% of the sum insured will be made from the product's pool directly
|
159
|
-
// for the remaining 70% the pool owns a policy that will cover claims that exceed the 30% of the sum insured
|
160
|
-
// might also call pool component (for isVerifyingApplications pools)
|
161
|
-
_poolService.lockCollateral(
|
162
|
-
instance,
|
163
|
-
productNftId,
|
183
|
+
instance.getInstanceStore().updatePolicy(
|
164
184
|
applicationNftId,
|
165
|
-
applicationInfo,
|
166
|
-
|
185
|
+
applicationInfo,
|
186
|
+
newPolicyState);
|
167
187
|
|
168
|
-
// TODO
|
169
|
-
}
|
188
|
+
// TODO add calling pool contract if it needs to validate application
|
170
189
|
|
190
|
+
// TODO: add logging
|
171
191
|
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
pure
|
178
|
-
virtual
|
179
|
-
returns(Amount collateralAmount)
|
180
|
-
{
|
181
|
-
UFixed collateralUFixed = collateralizationLevel * sumInsuredAmount.toUFixed();
|
182
|
-
return AmountLib.toAmount(collateralUFixed.toInt());
|
183
|
-
}
|
192
|
+
// optional: transfer funds for premium
|
193
|
+
if(requirePremiumPayment) {
|
194
|
+
_transferFunds(instanceReader, applicationNftId, applicationInfo.productNftId, premium);
|
195
|
+
}
|
196
|
+
}
|
184
197
|
|
198
|
+
/// @inheritdoc IPolicyService
|
185
199
|
function collectPremium(
|
186
200
|
NftId policyNftId,
|
187
201
|
Timestamp activateAt
|
@@ -190,24 +204,30 @@ contract PolicyService is
|
|
190
204
|
virtual
|
191
205
|
{
|
192
206
|
// check caller is registered product
|
193
|
-
(
|
207
|
+
(,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
194
208
|
InstanceReader instanceReader = instance.getInstanceReader();
|
209
|
+
StateId stateId = instanceReader.getPolicyState(policyNftId);
|
210
|
+
|
211
|
+
// check policy is in state collateralized or active
|
212
|
+
if (!(stateId == COLLATERALIZED() || stateId == ACTIVE())) {
|
213
|
+
revert ErrorPolicyServicePolicyStateNotCollateralizedOrApplied(policyNftId);
|
214
|
+
}
|
215
|
+
|
195
216
|
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
196
217
|
|
197
|
-
if
|
218
|
+
// check if premium is already collected
|
219
|
+
if (policyInfo.premiumPaidAmount.gtz()) {
|
198
220
|
revert ErrorPolicyServicePremiumAlreadyPaid(policyNftId, policyInfo.premiumPaidAmount);
|
199
221
|
}
|
200
222
|
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
unpaidPremiumAmount);
|
223
|
+
// calculate premium
|
224
|
+
IPolicy.Premium memory premium = _calculateAndProcessPremium(
|
225
|
+
instance,
|
226
|
+
policyNftId,
|
227
|
+
policyInfo);
|
207
228
|
|
208
|
-
policyInfo.premiumPaidAmount =
|
229
|
+
policyInfo.premiumPaidAmount = AmountLib.toAmount(premium.premiumAmount);
|
209
230
|
|
210
|
-
_bundleService.increaseBalance(instance, policyInfo.bundleNftId, netPremiumAmount);
|
211
231
|
instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
|
212
232
|
|
213
233
|
if(activateAt.gtz() && policyInfo.activatedAt.eqz()) {
|
@@ -215,11 +235,14 @@ contract PolicyService is
|
|
215
235
|
}
|
216
236
|
|
217
237
|
// TODO: add logging
|
238
|
+
|
239
|
+
_transferFunds(instanceReader, policyNftId, policyInfo.productNftId, premium);
|
218
240
|
}
|
219
241
|
|
242
|
+
/// @inheritdoc IPolicyService
|
220
243
|
function activate(NftId policyNftId, Timestamp activateAt) public override {
|
221
244
|
// check caller is registered product
|
222
|
-
(,, IInstance instance) =
|
245
|
+
(,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
223
246
|
InstanceReader instanceReader = instance.getInstanceReader();
|
224
247
|
|
225
248
|
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
@@ -236,15 +259,54 @@ contract PolicyService is
|
|
236
259
|
// TODO: add logging
|
237
260
|
}
|
238
261
|
|
239
|
-
|
262
|
+
/// @inheritdoc IPolicyService
|
240
263
|
function expire(
|
241
|
-
NftId policyNftId
|
264
|
+
NftId policyNftId,
|
265
|
+
Timestamp expireAt
|
242
266
|
)
|
243
267
|
external
|
244
268
|
override
|
245
|
-
|
269
|
+
virtual
|
270
|
+
returns (Timestamp)
|
246
271
|
{
|
247
|
-
|
272
|
+
(NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
273
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
274
|
+
|
275
|
+
// check policy is in state applied
|
276
|
+
if (instanceReader.getPolicyState(policyNftId) != ACTIVE()) {
|
277
|
+
revert ErrorIPolicyServicePolicyNotActive(policyNftId, instanceReader.getPolicyState(policyNftId));
|
278
|
+
}
|
279
|
+
|
280
|
+
// check policy matches with calling product
|
281
|
+
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
282
|
+
if(policyInfo.productNftId != productNftId) {
|
283
|
+
revert ErrorPolicyServicePolicyProductMismatch(
|
284
|
+
policyNftId,
|
285
|
+
policyInfo.productNftId,
|
286
|
+
productNftId);
|
287
|
+
}
|
288
|
+
|
289
|
+
if (expireAt.eqz()) {
|
290
|
+
expireAt = TimestampLib.blockTimestamp();
|
291
|
+
}
|
292
|
+
|
293
|
+
// check preconditions
|
294
|
+
if (expireAt >= policyInfo.expiredAt) {
|
295
|
+
revert ErrorIPolicyServicePolicyExpirationTooLate(policyNftId, policyInfo.expiredAt, expireAt);
|
296
|
+
}
|
297
|
+
if (expireAt < TimestampLib.blockTimestamp()) {
|
298
|
+
revert ErrorIPolicyServicePolicyExpirationTooEarly(policyNftId, TimestampLib.blockTimestamp(), expireAt);
|
299
|
+
}
|
300
|
+
if (policyInfo.openClaimsCount > 0) {
|
301
|
+
revert ErrorIPolicyServiceOpenClaims(policyNftId, policyInfo.openClaimsCount);
|
302
|
+
}
|
303
|
+
|
304
|
+
policyInfo.expiredAt = expireAt;
|
305
|
+
instance.getInstanceStore().updatePolicy(policyNftId, policyInfo, KEEP_STATE());
|
306
|
+
|
307
|
+
emit LogPolicyServicePolicyExpirationUpdated(policyNftId, expireAt);
|
308
|
+
|
309
|
+
return expireAt;
|
248
310
|
}
|
249
311
|
|
250
312
|
function close(
|
@@ -253,7 +315,7 @@ contract PolicyService is
|
|
253
315
|
external
|
254
316
|
override
|
255
317
|
{
|
256
|
-
(,, IInstance instance) =
|
318
|
+
(,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
257
319
|
InstanceReader instanceReader = instance.getInstanceReader();
|
258
320
|
|
259
321
|
IPolicy.PolicyInfo memory policyInfo = instanceReader.getPolicyInfo(policyNftId);
|
@@ -284,6 +346,7 @@ contract PolicyService is
|
|
284
346
|
|
285
347
|
_poolService.releaseCollateral(
|
286
348
|
instance,
|
349
|
+
address(instanceReader.getComponentInfo(policyInfo.productNftId).token),
|
287
350
|
policyNftId,
|
288
351
|
policyInfo);
|
289
352
|
|
@@ -291,86 +354,189 @@ contract PolicyService is
|
|
291
354
|
}
|
292
355
|
|
293
356
|
|
294
|
-
|
357
|
+
/// @dev calculates the premium and updates all counters in the other services
|
358
|
+
function _calculateAndProcessPremium(
|
295
359
|
IInstance instance,
|
296
|
-
NftId
|
297
|
-
|
360
|
+
NftId applicationNftId,
|
361
|
+
IPolicy.PolicyInfo memory applicationInfo
|
298
362
|
)
|
299
363
|
internal
|
300
|
-
|
364
|
+
virtual
|
365
|
+
returns (
|
366
|
+
IPolicy.Premium memory premium
|
367
|
+
)
|
301
368
|
{
|
302
|
-
|
303
|
-
|
304
|
-
return AmountLib.zero();
|
305
|
-
}
|
369
|
+
NftId productNftId = applicationInfo.productNftId;
|
370
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
306
371
|
|
307
|
-
|
308
|
-
|
309
|
-
IPolicy.Premium memory premium = _pricingService.calculatePremium(
|
372
|
+
// calculate premium details
|
373
|
+
premium = _pricingService.calculatePremium(
|
310
374
|
productNftId,
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
if (
|
320
|
-
revert
|
321
|
-
policyNftId,
|
322
|
-
premiumExpectedAmount,
|
323
|
-
AmountLib.toAmount(premium.premiumAmount));
|
375
|
+
applicationInfo.riskId,
|
376
|
+
applicationInfo.sumInsuredAmount,
|
377
|
+
applicationInfo.lifetime,
|
378
|
+
applicationInfo.applicationData,
|
379
|
+
applicationInfo.bundleNftId,
|
380
|
+
applicationInfo.referralId);
|
381
|
+
|
382
|
+
// ensure the calculated premium is not higher than the expected premium from the application
|
383
|
+
if (applicationInfo.premiumAmount.toInt() < premium.premiumAmount) {
|
384
|
+
revert ErrorPolicyServicePremiumHigherThanExpected(applicationInfo.premiumAmount.toInt(), premium.premiumAmount);
|
324
385
|
}
|
325
386
|
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
387
|
+
// check if premium balance and allowance of policy holder is sufficient
|
388
|
+
{
|
389
|
+
TokenHandler tokenHandler = instanceReader.getComponentInfo(productNftId).tokenHandler;
|
390
|
+
address policyHolder = getRegistry().ownerOf(applicationNftId);
|
391
|
+
|
392
|
+
_checkPremiumBalanceAndAllowance(
|
393
|
+
tokenHandler.getToken(),
|
394
|
+
address(tokenHandler),
|
395
|
+
policyHolder,
|
396
|
+
applicationInfo.premiumAmount,
|
397
|
+
AmountLib.toAmount(premium.premiumAmount));
|
331
398
|
}
|
332
399
|
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
400
|
+
// update the counters
|
401
|
+
_processSale(
|
402
|
+
instanceReader,
|
403
|
+
instance.getInstanceStore(),
|
404
|
+
productNftId,
|
405
|
+
applicationInfo.bundleNftId,
|
406
|
+
applicationInfo.referralId,
|
407
|
+
premium);
|
408
|
+
}
|
340
409
|
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
410
|
+
/// @dev checks the balance and allowance of the policy holder
|
411
|
+
function _checkPremiumBalanceAndAllowance(
|
412
|
+
IERC20Metadata token,
|
413
|
+
address tokenHandlerAddress,
|
414
|
+
address policyHolder,
|
415
|
+
Amount premiumExpectedAmount,
|
416
|
+
Amount premiumAmount
|
417
|
+
)
|
418
|
+
internal
|
419
|
+
virtual
|
420
|
+
view
|
421
|
+
{
|
422
|
+
uint256 premium = premiumAmount.toInt();
|
423
|
+
uint256 balance = token.balanceOf(policyHolder);
|
424
|
+
uint256 allowance = token.allowance(policyHolder, tokenHandlerAddress);
|
425
|
+
|
426
|
+
if (balance < premium) {
|
427
|
+
revert ErrorPolicyServiceBalanceInsufficient(policyHolder, premium, balance);
|
345
428
|
}
|
346
429
|
|
347
|
-
|
348
|
-
|
349
|
-
ISetup.DistributionSetupInfo memory distributionSetupInfo = instance.getInstanceReader().getDistributionSetupInfo(productSetupInfo.distributionNftId);
|
350
|
-
address distributionWallet = distributionSetupInfo.wallet;
|
351
|
-
tokenHandler.transfer(policyOwner, distributionWallet, distributionFeeAmountToTransfer);
|
352
|
-
_distributionService.processSale(productSetupInfo.distributionNftId, policyInfo.referralId, premium, distributionFeeAmountToTransfer);
|
353
|
-
}
|
354
|
-
|
355
|
-
// move netpremium, bundleFee and poolFee to pool wallet
|
356
|
-
{
|
357
|
-
address poolWallet = instance.getInstanceReader().getComponentInfo(productSetupInfo.poolNftId).wallet;
|
358
|
-
tokenHandler.transfer(policyOwner, poolWallet, poolAmountToTransfer);
|
359
|
-
_poolService.processSale(policyInfo.bundleNftId, premium, poolAmountToTransfer);
|
430
|
+
if (allowance < premium) {
|
431
|
+
revert ErrorPolicyServiceAllowanceInsufficient(policyHolder, tokenHandlerAddress, premium, allowance);
|
360
432
|
}
|
433
|
+
}
|
361
434
|
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
435
|
+
/// @dev update counters by calling the involved services
|
436
|
+
function _processSale(
|
437
|
+
InstanceReader instanceReader,
|
438
|
+
InstanceStore instanceStore,
|
439
|
+
NftId productNftId,
|
440
|
+
NftId bundleNftId,
|
441
|
+
ReferralId referralId,
|
442
|
+
IPolicy.Premium memory premium
|
443
|
+
)
|
444
|
+
internal
|
445
|
+
virtual
|
446
|
+
{
|
447
|
+
(
|
448
|
+
NftId distributionNftId,
|
449
|
+
address distributionWallet,
|
450
|
+
address poolWallet,
|
451
|
+
address productWallet
|
452
|
+
) = _getDistributionNftAndWallets(
|
453
|
+
instanceReader,
|
454
|
+
productNftId);
|
455
|
+
|
456
|
+
// update product fees, distribution and pool fees
|
457
|
+
_componentService.increaseProductFees(
|
458
|
+
instanceStore,
|
459
|
+
productNftId,
|
460
|
+
AmountLib.toAmount(premium.productFeeVarAmount + premium.productFeeFixAmount));
|
461
|
+
|
462
|
+
// update distribution fees and distributor commission and pool fees
|
463
|
+
_distributionService.processSale(
|
464
|
+
distributionNftId,
|
465
|
+
referralId,
|
466
|
+
premium);
|
467
|
+
|
468
|
+
// update pool and bundle fees
|
469
|
+
_poolService.processSale(
|
470
|
+
bundleNftId,
|
471
|
+
premium);
|
472
|
+
}
|
373
473
|
|
374
|
-
|
474
|
+
/// @dev transfer the premium to the wallets the premium is distributed to
|
475
|
+
function _transferFunds(
|
476
|
+
InstanceReader instanceReader,
|
477
|
+
NftId policyNftId,
|
478
|
+
NftId productNftId,
|
479
|
+
IPolicy.Premium memory premium
|
480
|
+
)
|
481
|
+
internal
|
482
|
+
virtual
|
483
|
+
{
|
484
|
+
TokenHandler tokenHandler = instanceReader.getComponentInfo(productNftId).tokenHandler;
|
485
|
+
address policyHolder = getRegistry().ownerOf(policyNftId);
|
486
|
+
|
487
|
+
(
|
488
|
+
NftId distributionNftId,
|
489
|
+
address distributionWallet,
|
490
|
+
address poolWallet,
|
491
|
+
address productWallet
|
492
|
+
) = _getDistributionNftAndWallets(
|
493
|
+
instanceReader,
|
494
|
+
productNftId);
|
495
|
+
|
496
|
+
// TODO: centralize token handling (issue #471)
|
497
|
+
// transfer premium amounts to target wallets
|
498
|
+
tokenHandler.transfer(policyHolder, productWallet, premium.productFeeAmount);
|
499
|
+
tokenHandler.transfer(policyHolder, distributionWallet, premium.distributionFeeAndCommissionAmount);
|
500
|
+
tokenHandler.transfer(policyHolder, poolWallet, premium.poolPremiumAndFeeAmount);
|
501
|
+
}
|
502
|
+
|
503
|
+
|
504
|
+
function _getTokenHandlerAndProductWallet(
|
505
|
+
InstanceReader instanceReader,
|
506
|
+
NftId productNftId
|
507
|
+
)
|
508
|
+
internal
|
509
|
+
virtual
|
510
|
+
view
|
511
|
+
returns (
|
512
|
+
TokenHandler tokenHandler
|
513
|
+
)
|
514
|
+
{
|
515
|
+
tokenHandler = instanceReader.getComponentInfo(productNftId).tokenHandler;
|
516
|
+
}
|
517
|
+
|
518
|
+
function _getDistributionNftAndWallets(
|
519
|
+
InstanceReader instanceReader,
|
520
|
+
NftId productNftId
|
521
|
+
)
|
522
|
+
internal
|
523
|
+
virtual
|
524
|
+
view returns (
|
525
|
+
NftId distributionNftId,
|
526
|
+
address distributionWallet,
|
527
|
+
address poolWallet,
|
528
|
+
address productWallet
|
529
|
+
)
|
530
|
+
{
|
531
|
+
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
532
|
+
distributionNftId = productInfo.distributionNftId;
|
533
|
+
distributionWallet = instanceReader.getComponentInfo(distributionNftId).wallet;
|
534
|
+
poolWallet = instanceReader.getComponentInfo(productInfo.poolNftId).wallet;
|
535
|
+
productWallet = instanceReader.getComponentInfo(productNftId).wallet;
|
536
|
+
}
|
537
|
+
|
538
|
+
|
539
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
540
|
+
return POLICY();
|
375
541
|
}
|
376
542
|
}
|