@etherisc/gif-next 0.0.2-f13c010-035 → 0.0.2-f13fd28-503
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 +27 -6
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +148 -62
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +149 -21
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +82 -12
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +106 -186
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -89
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +154 -108
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +75 -53
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -58
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +50 -3
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +101 -164
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +152 -33
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +258 -290
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +137 -129
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +90 -126
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +225 -162
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +641 -310
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +118 -39
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +77 -20
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +163 -56
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +362 -99
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +140 -40
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +550 -224
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +104 -74
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -27
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +410 -370
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- 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 +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- 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/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +74 -154
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +44 -58
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +58 -90
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +112 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +69 -27
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +57 -104
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +152 -33
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +127 -331
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +53 -87
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +56 -136
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -97
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +164 -217
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -128
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +302 -353
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +93 -51
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +105 -63
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -27
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +163 -175
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -179
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +74 -64
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +61 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +112 -56
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +150 -144
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +211 -180
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +76 -50
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +99 -76
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -38
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +163 -175
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +88 -73
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +54 -24
- 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 +50 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- 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 +88 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +262 -220
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +42 -20
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +318 -52
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- 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 +57 -75
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +225 -439
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +74 -64
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +44 -44
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +125 -282
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +44 -58
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -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 +27 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -89
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
- 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 +27 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +289 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +70 -30
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +65 -83
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +98 -3
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +49 -33
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +145 -176
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +62 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +151 -49
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +51 -25
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +129 -129
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
- 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/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -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 +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +62 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -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/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +18 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +177 -84
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +277 -229
- package/contracts/authorization/IAccessAdmin.sol +13 -7
- package/contracts/authorization/IAuthorization.sol +15 -1
- package/contracts/distribution/BasicDistribution.sol +6 -6
- package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
- package/contracts/distribution/Distribution.sol +32 -30
- package/contracts/distribution/DistributionService.sol +36 -34
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +5 -6
- package/contracts/examples/fire/FirePool.sol +22 -5
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +31 -8
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +7 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +33 -3
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +47 -21
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +13 -9
- package/contracts/instance/IInstanceService.sol +9 -9
- package/contracts/instance/Instance.sol +33 -18
- package/contracts/instance/InstanceAdmin.sol +247 -84
- package/contracts/instance/InstanceAuthorizationV3.sol +50 -31
- package/contracts/instance/InstanceReader.sol +162 -32
- package/contracts/instance/InstanceService.sol +73 -82
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +4 -4
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +92 -73
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +24 -3
- package/contracts/pool/BasicPoolAuthorization.sol +27 -8
- package/contracts/pool/BundleService.sol +47 -145
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +15 -43
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +58 -60
- package/contracts/pool/Pool.sol +106 -96
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +427 -214
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +15 -15
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +9 -11
- package/contracts/product/BasicProductAuthorization.sol +24 -10
- package/contracts/product/ClaimService.sol +157 -137
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +26 -11
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/PolicyService.sol +277 -261
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +23 -19
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +62 -39
- package/contracts/product/RiskService.sol +74 -25
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +10 -15
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/Registry.sol +16 -3
- package/contracts/registry/RegistryAdmin.sol +132 -226
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +129 -119
- package/contracts/registry/ServiceAuthorizationV3.sol +93 -40
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +61 -105
- package/contracts/shared/ComponentService.sol +301 -295
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +16 -14
- package/contracts/shared/ContractLib.sol +224 -9
- package/contracts/shared/IComponent.sol +4 -17
- package/contracts/shared/IComponentService.sol +16 -25
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +4 -20
- package/contracts/shared/NftOwnable.sol +4 -4
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +44 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +263 -105
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +6 -9
- package/contracts/staking/IStakingService.sol +11 -1
- package/contracts/staking/StakeManagerLib.sol +63 -7
- package/contracts/staking/Staking.sol +72 -39
- package/contracts/staking/StakingReader.sol +1 -1
- package/contracts/staking/StakingService.sol +56 -14
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +48 -21
- package/contracts/type/RiskId.sol +23 -6
- package/contracts/type/RoleId.sol +24 -4
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +9 -119
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +3 -3
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.json +0 -206
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentServiceHelperLib.sol +0 -118
@@ -0,0 +1,65 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
5
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
6
|
+
import {IPolicyService} from "../product/IPolicyService.sol";
|
7
|
+
import {NftId} from "../type/NftId.sol";
|
8
|
+
import {StateId, CLOSED, COLLATERALIZED} from "../type/StateId.sol";
|
9
|
+
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
10
|
+
|
11
|
+
library PolicyServiceLib {
|
12
|
+
|
13
|
+
function checkExpiration(
|
14
|
+
Timestamp newExpiredAt,
|
15
|
+
NftId policyNftId,
|
16
|
+
StateId policyState,
|
17
|
+
IPolicy.PolicyInfo memory policyInfo
|
18
|
+
)
|
19
|
+
external
|
20
|
+
view
|
21
|
+
{
|
22
|
+
if (policyState != COLLATERALIZED()) {
|
23
|
+
revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
|
24
|
+
}
|
25
|
+
if (TimestampLib.blockTimestamp() < policyInfo.activatedAt) {
|
26
|
+
revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
|
27
|
+
}
|
28
|
+
|
29
|
+
// check expiredAt represents a valid expiry time
|
30
|
+
if (newExpiredAt >= policyInfo.expiredAt) {
|
31
|
+
revert IPolicyService.ErrorPolicyServicePolicyExpirationTooLate(policyNftId, policyInfo.expiredAt, newExpiredAt);
|
32
|
+
}
|
33
|
+
|
34
|
+
if (newExpiredAt.gtz() && newExpiredAt < TimestampLib.blockTimestamp()) {
|
35
|
+
revert IPolicyService.ErrorPolicyServicePolicyExpirationTooEarly(policyNftId, TimestampLib.blockTimestamp(), newExpiredAt);
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
function policyIsCloseable(InstanceReader instanceReader, NftId policyNftId)
|
40
|
+
external
|
41
|
+
view
|
42
|
+
returns (bool isCloseable)
|
43
|
+
{
|
44
|
+
// policy already closed
|
45
|
+
if (instanceReader.getPolicyState(policyNftId) == CLOSED()) {
|
46
|
+
return false;
|
47
|
+
}
|
48
|
+
|
49
|
+
IPolicy.PolicyInfo memory info = instanceReader.getPolicyInfo(policyNftId);
|
50
|
+
|
51
|
+
if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
|
52
|
+
if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
|
53
|
+
if (info.openClaimsCount > 0) { return false; } // not closeable: has open claims
|
54
|
+
|
55
|
+
// closeable: if sum of claims matches sum insured a policy may be closed prior to the expiry date
|
56
|
+
if (info.claimAmount == info.sumInsuredAmount) { return true; }
|
57
|
+
|
58
|
+
// not closeable: not yet expired
|
59
|
+
if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
|
60
|
+
|
61
|
+
// all conditions to close the policy are met
|
62
|
+
return true;
|
63
|
+
}
|
64
|
+
|
65
|
+
}
|
@@ -17,7 +17,7 @@ contract PolicyServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
PolicyService svc = new PolicyService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|
@@ -42,14 +42,15 @@ contract PricingService is
|
|
42
42
|
initializer()
|
43
43
|
{
|
44
44
|
(
|
45
|
-
address
|
46
|
-
address
|
45
|
+
address authority,
|
46
|
+
address registry
|
47
47
|
) = abi.decode(data, (address, address));
|
48
48
|
|
49
|
-
|
50
|
-
_registerInterface(type(IPricingService).interfaceId);
|
49
|
+
__Service_init(authority, registry, owner);
|
51
50
|
|
52
51
|
_distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
52
|
+
|
53
|
+
_registerInterface(type(IPricingService).interfaceId);
|
53
54
|
}
|
54
55
|
|
55
56
|
/// @dev calculates the premium amount for the specified attributes
|
@@ -98,6 +99,7 @@ contract PricingService is
|
|
98
99
|
{
|
99
100
|
// get configurations for all involed objects
|
100
101
|
IComponents.ProductInfo memory productInfo = reader.getProductInfo(productNftId);
|
102
|
+
IComponents.FeeInfo memory feeInfo = reader.getFeeInfo(productNftId);
|
101
103
|
|
102
104
|
IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
103
105
|
if(bundleInfo.poolNftId != productInfo.poolNftId) {
|
@@ -107,21 +109,22 @@ contract PricingService is
|
|
107
109
|
// calculate fixed fees for product, pool, bundle
|
108
110
|
premium = _getFixedFeeAmounts(
|
109
111
|
netPremiumAmount,
|
110
|
-
|
112
|
+
feeInfo,
|
111
113
|
bundleInfo
|
112
114
|
);
|
113
115
|
|
114
116
|
// calculate variable fees for product, pool, bundle
|
115
117
|
premium = _calculateVariableFeeAmounts(
|
116
118
|
premium,
|
117
|
-
|
119
|
+
feeInfo,
|
118
120
|
bundleInfo
|
119
121
|
);
|
120
122
|
|
121
123
|
// calculate distribution fee and (if applicable) commission
|
122
124
|
premium = _calculateDistributionOwnerFeeAmount(
|
123
125
|
premium,
|
124
|
-
|
126
|
+
feeInfo,
|
127
|
+
productInfo.distributionNftId,
|
125
128
|
referralId,
|
126
129
|
reader
|
127
130
|
);
|
@@ -137,7 +140,7 @@ contract PricingService is
|
|
137
140
|
revert ErrorPricingServiceTargetWalletAmountsMismatch();
|
138
141
|
}
|
139
142
|
|
140
|
-
if (premium.distributionOwnerFeeFixAmount.toInt() <
|
143
|
+
if (premium.distributionOwnerFeeFixAmount.toInt() < feeInfo.minDistributionOwnerFee.fixedFee) {
|
141
144
|
revert ErrorPricingServiceFeeCalculationMismatch(
|
142
145
|
premium.distributionFeeFixAmount,
|
143
146
|
premium.distributionFeeVarAmount,
|
@@ -164,7 +167,7 @@ contract PricingService is
|
|
164
167
|
// internal functions
|
165
168
|
function _getFixedFeeAmounts(
|
166
169
|
Amount netPremiumAmount,
|
167
|
-
IComponents.
|
170
|
+
IComponents.FeeInfo memory feeInfo,
|
168
171
|
IBundle.BundleInfo memory bundleInfo
|
169
172
|
)
|
170
173
|
internal
|
@@ -177,11 +180,11 @@ contract PricingService is
|
|
177
180
|
premium.netPremiumAmount = netPremiumAmount;
|
178
181
|
premium.fullPremiumAmount = netPremiumAmount;
|
179
182
|
|
180
|
-
Amount t = AmountLib.toAmount(
|
183
|
+
Amount t = AmountLib.toAmount(feeInfo.productFee.fixedFee);
|
181
184
|
premium.productFeeFixAmount = t;
|
182
185
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
183
186
|
|
184
|
-
t = AmountLib.toAmount(
|
187
|
+
t = AmountLib.toAmount(feeInfo.poolFee.fixedFee);
|
185
188
|
premium.poolFeeFixAmount = t;
|
186
189
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
187
190
|
|
@@ -189,14 +192,14 @@ contract PricingService is
|
|
189
192
|
premium.bundleFeeFixAmount = t;
|
190
193
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
191
194
|
|
192
|
-
t = AmountLib.toAmount(
|
195
|
+
t = AmountLib.toAmount(feeInfo.distributionFee.fixedFee);
|
193
196
|
premium.distributionFeeFixAmount = t;
|
194
197
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
195
198
|
}
|
196
199
|
|
197
200
|
function _calculateVariableFeeAmounts(
|
198
201
|
IPolicy.PremiumInfo memory premium,
|
199
|
-
IComponents.
|
202
|
+
IComponents.FeeInfo memory feeInfo,
|
200
203
|
IBundle.BundleInfo memory bundleInfo
|
201
204
|
)
|
202
205
|
internal
|
@@ -207,11 +210,11 @@ contract PricingService is
|
|
207
210
|
{
|
208
211
|
Amount netPremiumAmount = premium.netPremiumAmount;
|
209
212
|
|
210
|
-
Amount t = netPremiumAmount.multiplyWith(
|
213
|
+
Amount t = netPremiumAmount.multiplyWith(feeInfo.productFee.fractionalFee);
|
211
214
|
premium.productFeeVarAmount = t;
|
212
215
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
213
216
|
|
214
|
-
t = netPremiumAmount.multiplyWith(
|
217
|
+
t = netPremiumAmount.multiplyWith(feeInfo.poolFee.fractionalFee);
|
215
218
|
premium.poolFeeVarAmount = t;
|
216
219
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
217
220
|
|
@@ -219,7 +222,7 @@ contract PricingService is
|
|
219
222
|
premium.bundleFeeVarAmount = t;
|
220
223
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
221
224
|
|
222
|
-
t = netPremiumAmount.multiplyWith(
|
225
|
+
t = netPremiumAmount.multiplyWith(feeInfo.distributionFee.fractionalFee);
|
223
226
|
premium.distributionFeeVarAmount = t;
|
224
227
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
225
228
|
|
@@ -228,7 +231,8 @@ contract PricingService is
|
|
228
231
|
|
229
232
|
function _calculateDistributionOwnerFeeAmount(
|
230
233
|
IPolicy.PremiumInfo memory premium,
|
231
|
-
IComponents.
|
234
|
+
IComponents.FeeInfo memory feeInfo,
|
235
|
+
NftId distributionNftId,
|
232
236
|
// ISetup.DistributionSetupInfo memory distInfo,
|
233
237
|
ReferralId referralId,
|
234
238
|
InstanceReader reader
|
@@ -239,14 +243,14 @@ contract PricingService is
|
|
239
243
|
{
|
240
244
|
|
241
245
|
// if the referral is not valid, then the distribution owner gets everything
|
242
|
-
if (
|
246
|
+
if (distributionNftId.eqz() || ! _distributionService.referralIsValid(distributionNftId, referralId)) {
|
243
247
|
premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
|
244
248
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
|
245
249
|
premium.premiumAmount = premium.fullPremiumAmount;
|
246
250
|
return premium;
|
247
251
|
}
|
248
252
|
|
249
|
-
Fee memory minDistributionOwnerFee =
|
253
|
+
Fee memory minDistributionOwnerFee = feeInfo.minDistributionOwnerFee;
|
250
254
|
|
251
255
|
// if the referral is valid, the the commission and discount are calculated based in the full premium
|
252
256
|
// the remaing amount goes to the distribution owner
|
@@ -12,14 +12,14 @@ contract PricingServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with pricing service implementation and deploys instance
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address
|
15
|
+
address registry,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
18
|
{
|
19
19
|
PricingService pricingSrv = new PricingService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
|
-
|
22
|
+
registry,
|
23
23
|
address(pricingSrv),
|
24
24
|
data,
|
25
25
|
salt);
|
@@ -19,7 +19,7 @@ import {IProductComponent} from "./IProductComponent.sol";
|
|
19
19
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
20
20
|
import {ObjectType, COMPONENT, DISTRIBUTION, ORACLE, POOL, PRODUCT, BUNDLE, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
21
21
|
import {PayoutId} from "../type/PayoutId.sol";
|
22
|
-
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE } from "../type/ObjectType.sol";
|
22
|
+
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE, RISK } from "../type/ObjectType.sol";
|
23
23
|
import {ReferralId} from "../type/Referral.sol";
|
24
24
|
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
25
25
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -40,15 +40,14 @@ abstract contract Product is
|
|
40
40
|
bytes32 public constant PRODUCT_STORAGE_LOCATION_V1 = 0x0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800;
|
41
41
|
|
42
42
|
struct ProductStorage {
|
43
|
-
|
44
|
-
|
45
|
-
|
43
|
+
IComponents.ProductInfo _productInfo;
|
44
|
+
IComponents.FeeInfo _feeInfo;
|
45
|
+
IComponentService _componentService;
|
46
46
|
IRiskService _riskService;
|
47
47
|
IApplicationService _applicationService;
|
48
48
|
IPolicyService _policyService;
|
49
49
|
IClaimService _claimService;
|
50
50
|
IPricingService _pricingService;
|
51
|
-
IComponentService _componentService;
|
52
51
|
}
|
53
52
|
|
54
53
|
|
@@ -125,38 +124,28 @@ abstract contract Product is
|
|
125
124
|
view
|
126
125
|
returns (IComponents.ProductInfo memory poolInfo)
|
127
126
|
{
|
128
|
-
|
127
|
+
return _getProductStorage()._productInfo;
|
128
|
+
}
|
129
129
|
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
oracleNftId: new NftId[]($._numberOfOracles),
|
138
|
-
productFee: FeeLib.zero(),
|
139
|
-
processingFee: FeeLib.zero(),
|
140
|
-
distributionFee: FeeLib.zero(),
|
141
|
-
minDistributionOwnerFee: FeeLib.zero(),
|
142
|
-
poolFee: FeeLib.zero(),
|
143
|
-
stakingFee: FeeLib.zero(),
|
144
|
-
performanceFee: FeeLib.zero()
|
145
|
-
});
|
130
|
+
function getInitialFeeInfo()
|
131
|
+
public
|
132
|
+
virtual
|
133
|
+
view
|
134
|
+
returns (IComponents.FeeInfo memory feeInfo)
|
135
|
+
{
|
136
|
+
return _getProductStorage()._feeInfo;
|
146
137
|
}
|
147
138
|
|
148
139
|
|
149
140
|
function _initializeProduct(
|
150
141
|
address registry,
|
151
142
|
NftId instanceNftId,
|
152
|
-
IAuthorization authorization,
|
153
|
-
address initialOwner,
|
154
143
|
string memory name,
|
155
144
|
address token,
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
145
|
+
IComponents.ProductInfo memory productInfo,
|
146
|
+
IComponents.FeeInfo memory feeInfo,
|
147
|
+
IAuthorization authorization,
|
148
|
+
address initialOwner,
|
160
149
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
161
150
|
)
|
162
151
|
internal
|
@@ -170,15 +159,14 @@ abstract contract Product is
|
|
170
159
|
token,
|
171
160
|
PRODUCT(),
|
172
161
|
authorization,
|
173
|
-
|
162
|
+
productInfo.isInterceptingPolicyTransfers,
|
174
163
|
initialOwner,
|
175
164
|
componentData);
|
176
165
|
|
177
166
|
ProductStorage storage $ = _getProductStorage();
|
178
|
-
$.
|
179
|
-
$.
|
180
|
-
$.
|
181
|
-
$._riskService = IRiskService(_getServiceAddress(PRODUCT()));
|
167
|
+
$._productInfo = productInfo;
|
168
|
+
$._feeInfo = feeInfo;
|
169
|
+
$._riskService = IRiskService(_getServiceAddress(RISK()));
|
182
170
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
183
171
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
184
172
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
@@ -240,11 +228,6 @@ abstract contract Product is
|
|
240
228
|
}
|
241
229
|
|
242
230
|
|
243
|
-
function _getRiskInfo(RiskId id) internal virtual view returns (IRisk.RiskInfo memory info) {
|
244
|
-
return getInstance().getInstanceReader().getRiskInfo(id);
|
245
|
-
}
|
246
|
-
|
247
|
-
|
248
231
|
function _createApplication(
|
249
232
|
address applicationOwner,
|
250
233
|
RiskId riskId,
|
@@ -277,8 +260,9 @@ abstract contract Product is
|
|
277
260
|
)
|
278
261
|
internal
|
279
262
|
virtual
|
263
|
+
returns (Amount premiumAmount)
|
280
264
|
{
|
281
|
-
_getProductStorage()._policyService.createPolicy(
|
265
|
+
premiumAmount = _getProductStorage()._policyService.createPolicy(
|
282
266
|
applicationNftId,
|
283
267
|
activateAt);
|
284
268
|
}
|
@@ -304,6 +288,21 @@ abstract contract Product is
|
|
304
288
|
expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
|
305
289
|
}
|
306
290
|
|
291
|
+
/// @dev adjust the activation date of the policy.
|
292
|
+
/// The policy must already have an activation date set.
|
293
|
+
/// Allowed values are from the current blocktime to the expiration date of the policy.
|
294
|
+
function _adjustActivation(
|
295
|
+
NftId policyNftId,
|
296
|
+
Timestamp activateAt
|
297
|
+
)
|
298
|
+
internal
|
299
|
+
virtual
|
300
|
+
{
|
301
|
+
_getProductStorage()._policyService.adjustActivation(
|
302
|
+
policyNftId,
|
303
|
+
activateAt);
|
304
|
+
}
|
305
|
+
|
307
306
|
function _collectPremium(
|
308
307
|
NftId policyNftId,
|
309
308
|
Timestamp activateAt
|
@@ -353,6 +352,18 @@ abstract contract Product is
|
|
353
352
|
claimData);
|
354
353
|
}
|
355
354
|
|
355
|
+
function _revokeClaim(
|
356
|
+
NftId policyNftId,
|
357
|
+
ClaimId claimId
|
358
|
+
)
|
359
|
+
internal
|
360
|
+
virtual
|
361
|
+
{
|
362
|
+
_getProductStorage()._claimService.revoke(
|
363
|
+
policyNftId,
|
364
|
+
claimId);
|
365
|
+
}
|
366
|
+
|
356
367
|
function _confirmClaim(
|
357
368
|
NftId policyNftId,
|
358
369
|
ClaimId claimId,
|
@@ -443,6 +454,18 @@ abstract contract Product is
|
|
443
454
|
payoutId);
|
444
455
|
}
|
445
456
|
|
457
|
+
function _cancelPayout(
|
458
|
+
NftId policyNftId,
|
459
|
+
PayoutId payoutId
|
460
|
+
)
|
461
|
+
internal
|
462
|
+
virtual
|
463
|
+
{
|
464
|
+
_getProductStorage()._claimService.cancelPayout(
|
465
|
+
policyNftId,
|
466
|
+
payoutId);
|
467
|
+
}
|
468
|
+
|
446
469
|
function _toRiskId(string memory riskName) internal virtual pure returns (RiskId riskId) {
|
447
470
|
return RiskIdLib.toRiskId(riskName);
|
448
471
|
}
|
@@ -4,25 +4,26 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IInstance} from "../instance/IInstance.sol";
|
5
5
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
6
6
|
import {IPoolService} from "../pool/PoolService.sol";
|
7
|
-
import {
|
7
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
8
8
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
9
9
|
import {IRisk} from "../instance/module/IRisk.sol";
|
10
|
+
import {IRiskService} from "./IRiskService.sol";
|
10
11
|
|
12
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
11
13
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
12
|
-
import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, REGISTRY} from "../type/ObjectType.sol";
|
13
|
-
import {KEEP_STATE} from "../type/StateId.sol";
|
14
|
+
import {ObjectType, COMPONENT, INSTANCE, PRODUCT, POOL, POLICY, REGISTRY, RISK} from "../type/ObjectType.sol";
|
15
|
+
import {ACTIVE, PAUSED, KEEP_STATE} from "../type/StateId.sol";
|
14
16
|
import {NftId} from "../type/NftId.sol";
|
15
17
|
import {RiskId} from "../type/RiskId.sol";
|
16
18
|
import {StateId} from "../type/StateId.sol";
|
17
|
-
import {
|
19
|
+
import {RiskSet} from "../instance/RiskSet.sol";
|
20
|
+
import {Service} from "../shared/Service.sol";
|
21
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
18
22
|
|
19
23
|
contract RiskService is
|
20
|
-
|
24
|
+
Service,
|
21
25
|
IRiskService
|
22
26
|
{
|
23
|
-
IInstanceService private _instanceService;
|
24
|
-
IPoolService internal _poolService;
|
25
|
-
IRegistryService private _registryService;
|
26
27
|
|
27
28
|
function _initialize(
|
28
29
|
address owner,
|
@@ -33,16 +34,11 @@ contract RiskService is
|
|
33
34
|
virtual override
|
34
35
|
{
|
35
36
|
(
|
36
|
-
address
|
37
|
-
address
|
37
|
+
address authority,
|
38
|
+
address registry
|
38
39
|
) = abi.decode(data, (address, address));
|
39
40
|
|
40
|
-
|
41
|
-
|
42
|
-
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
43
|
-
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
44
|
-
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
45
|
-
|
41
|
+
__Service_init(authority, registry, owner);
|
46
42
|
_registerInterface(type(IRiskService).interfaceId);
|
47
43
|
}
|
48
44
|
|
@@ -52,15 +48,25 @@ contract RiskService is
|
|
52
48
|
bytes memory data
|
53
49
|
)
|
54
50
|
external
|
55
|
-
|
51
|
+
restricted()
|
56
52
|
{
|
57
|
-
|
58
|
-
|
53
|
+
// checks
|
54
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
55
|
+
|
56
|
+
// effects
|
57
|
+
IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo({
|
58
|
+
productNftId: productNftId,
|
59
|
+
createdAt: TimestampLib.blockTimestamp(),
|
60
|
+
data: data});
|
59
61
|
|
60
62
|
instance.getInstanceStore().createRisk(
|
61
63
|
riskId,
|
62
64
|
riskInfo
|
63
65
|
);
|
66
|
+
|
67
|
+
// add risk to RiskSet
|
68
|
+
RiskSet riskSet = instance.getRiskSet();
|
69
|
+
riskSet.add(riskId);
|
64
70
|
}
|
65
71
|
|
66
72
|
|
@@ -68,11 +74,14 @@ contract RiskService is
|
|
68
74
|
RiskId riskId,
|
69
75
|
bytes memory data
|
70
76
|
)
|
71
|
-
external
|
77
|
+
external
|
78
|
+
restricted()
|
72
79
|
{
|
73
|
-
|
74
|
-
|
80
|
+
// checks
|
81
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
75
82
|
|
83
|
+
// effects
|
84
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
76
85
|
IRisk.RiskInfo memory riskInfo = instanceReader.getRiskInfo(riskId);
|
77
86
|
riskInfo.data = data;
|
78
87
|
instance.getInstanceStore().updateRisk(riskId, riskInfo, KEEP_STATE());
|
@@ -83,14 +92,54 @@ contract RiskService is
|
|
83
92
|
RiskId riskId,
|
84
93
|
StateId state
|
85
94
|
)
|
86
|
-
external
|
95
|
+
external
|
96
|
+
restricted()
|
87
97
|
{
|
88
|
-
|
98
|
+
// checks
|
99
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
100
|
+
|
101
|
+
// effects
|
89
102
|
instance.getInstanceStore().updateRiskState(riskId, state);
|
103
|
+
|
104
|
+
if (state == ACTIVE()) {
|
105
|
+
instance.getRiskSet().activate(riskId);
|
106
|
+
} else if (state == PAUSED()) {
|
107
|
+
instance.getRiskSet().pause(riskId);
|
108
|
+
}
|
109
|
+
}
|
110
|
+
|
111
|
+
function _getAndVerifyActiveComponent(ObjectType expectedType)
|
112
|
+
internal
|
113
|
+
view
|
114
|
+
returns (
|
115
|
+
NftId componentNftId,
|
116
|
+
IInstance instance
|
117
|
+
)
|
118
|
+
{
|
119
|
+
IRegistry.ObjectInfo memory info;
|
120
|
+
address instanceAddress;
|
121
|
+
bool isActive = true;
|
122
|
+
|
123
|
+
if (expectedType != COMPONENT()) {
|
124
|
+
(info, instanceAddress) = ContractLib.getAndVerifyComponent(
|
125
|
+
getRegistry(),
|
126
|
+
msg.sender, // caller
|
127
|
+
expectedType,
|
128
|
+
isActive);
|
129
|
+
} else {
|
130
|
+
(info, instanceAddress) = ContractLib.getAndVerifyAnyComponent(
|
131
|
+
getRegistry(),
|
132
|
+
msg.sender,
|
133
|
+
isActive);
|
134
|
+
}
|
135
|
+
|
136
|
+
// get component nft id and instance
|
137
|
+
componentNftId = info.nftId;
|
138
|
+
instance = IInstance(instanceAddress);
|
90
139
|
}
|
91
140
|
|
92
141
|
|
93
142
|
function _getDomain() internal pure override returns(ObjectType) {
|
94
|
-
return
|
143
|
+
return RISK();
|
95
144
|
}
|
96
145
|
}
|
@@ -17,7 +17,7 @@ contract RiskServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
RiskService svc = new RiskService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|
@@ -62,6 +62,7 @@ contract ChainNft is ERC721Enumerable {
|
|
62
62
|
// 3 -> staking
|
63
63
|
// >= 4 -> all other objects
|
64
64
|
_idNext = 4;
|
65
|
+
_totalMinted = 0;
|
65
66
|
}
|
66
67
|
|
67
68
|
/**
|
@@ -108,10 +109,11 @@ contract ChainNft is ERC721Enumerable {
|
|
108
109
|
|
109
110
|
|
110
111
|
/**
|
111
|
-
* @dev
|
112
|
-
*
|
112
|
+
* @dev Amend the open zeppelin transferFrom function by an interceptor call if such an interceptor is defined for the nft token id.
|
113
|
+
* This allows distribution, product and pool components to be notified when distributors, policies and bundles are transferred.
|
113
114
|
*/
|
114
115
|
function transferFrom(address from, address to, uint256 tokenId) public override (IERC721, ERC721) {
|
116
|
+
// default open zeppelin implementation of transferFrom
|
115
117
|
super.transferFrom(from, to, tokenId);
|
116
118
|
|
117
119
|
if (_interceptor[tokenId] != address(0)) {
|
@@ -3,13 +3,11 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
5
|
|
6
|
+
import {IRelease} from "./IRelease.sol";
|
7
|
+
|
6
8
|
import {NftId} from "../type/NftId.sol";
|
7
9
|
import {ObjectType} from "../type/ObjectType.sol";
|
8
10
|
import {VersionPart} from "../type/Version.sol";
|
9
|
-
import {Timestamp} from "../type/Timestamp.sol";
|
10
|
-
import {StateId} from "../type/StateId.sol";
|
11
|
-
|
12
|
-
import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
|
13
11
|
|
14
12
|
/// @title Chain Registry interface.
|
15
13
|
/// A chain registry holds all protocol relevant objects with basic metadata.
|
@@ -17,7 +15,9 @@ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol"
|
|
17
15
|
/// Registered objects are represented by NFTs.
|
18
16
|
/// When on mainnet registry is global and keeps arbitrary number of chain registries residing on different chain ids.
|
19
17
|
/// When not on mainnet registry keeps the only object residing on different chain id (on mainnet) - global registry.
|
20
|
-
interface IRegistry is
|
18
|
+
interface IRegistry is
|
19
|
+
IERC165
|
20
|
+
{
|
21
21
|
|
22
22
|
event LogRegistration(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
|
23
23
|
event LogServiceRegistration(VersionPart majorVersion, ObjectType domain);
|
@@ -61,15 +61,6 @@ interface IRegistry is IERC165 {
|
|
61
61
|
bytes data;
|
62
62
|
}
|
63
63
|
|
64
|
-
struct ReleaseInfo {
|
65
|
-
StateId state;
|
66
|
-
VersionPart version;
|
67
|
-
bytes32 salt;
|
68
|
-
IServiceAuthorization auth;
|
69
|
-
Timestamp activatedAt;
|
70
|
-
Timestamp disabledAt;
|
71
|
-
}
|
72
|
-
|
73
64
|
/// @dev Registers a registry contract for a specified chain.
|
74
65
|
/// Only one chain registry may be registered per chain
|
75
66
|
function registerRegistry(
|
@@ -104,7 +95,7 @@ interface IRegistry is IERC165 {
|
|
104
95
|
|
105
96
|
function getLatestVersion() external view returns (VersionPart);
|
106
97
|
|
107
|
-
function getReleaseInfo(VersionPart
|
98
|
+
function getReleaseInfo(VersionPart release) external view returns (IRelease.ReleaseInfo memory);
|
108
99
|
|
109
100
|
/// @dev Returns the number of supported chains.
|
110
101
|
function chainIds() external view returns (uint256);
|
@@ -127,8 +118,12 @@ interface IRegistry is IERC165 {
|
|
127
118
|
|
128
119
|
function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory info);
|
129
120
|
|
121
|
+
function getParentNftId(NftId nftId) external view returns (NftId parentNftId);
|
122
|
+
|
130
123
|
function isObjectType(NftId nftId, ObjectType expectedObjectType) external view returns (bool);
|
131
124
|
|
125
|
+
function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool);
|
126
|
+
|
132
127
|
function getObjectAddress(NftId nftId) external view returns (address objectAddress);
|
133
128
|
|
134
129
|
/// @dev Returns the object info for the specified object address.
|