@etherisc/gif-next 0.0.2-e016345-525 → 0.0.2-e04dbfc-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 +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +137 -58
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +37 -31
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +83 -3
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +449 -248
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +222 -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 +348 -184
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +100 -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 +83 -129
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +207 -33
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -81
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +283 -181
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +74 -60
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +33 -68
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +155 -68
- 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 +92 -42
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +188 -46
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +248 -191
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +207 -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 +149 -131
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +207 -33
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -45
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +113 -47
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +188 -46
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +305 -150
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +207 -33
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +139 -28
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +100 -7
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +163 -53
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +672 -320
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +188 -46
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +374 -197
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +113 -83
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +26 -38
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +422 -352
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
- 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 +68 -38
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +189 -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 +38 -8
- 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 +52 -22
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +91 -68
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +42 -36
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -21
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +188 -46
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +118 -201
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +50 -64
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -80
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -8
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +120 -175
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -21
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +472 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +265 -278
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +86 -56
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +139 -50
- 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 +157 -112
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +207 -33
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +260 -187
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +72 -74
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +69 -3
- 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 +105 -68
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +48 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -99
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +58 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +215 -187
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +727 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +68 -66
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +122 -78
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +48 -42
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +157 -112
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +131 -81
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +46 -28
- 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 +26 -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 +64 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +548 -429
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +22 -24
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -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 +324 -54
- 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 +51 -21
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +96 -138
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +44 -50
- 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 +113 -4
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- 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 +38 -8
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +28 -45
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -8
- 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/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +51 -21
- 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 +63 -162
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +112 -17
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +130 -6
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +191 -74
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- 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 +56 -32
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +30 -57
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +185 -54
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +39 -29
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +143 -129
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +33 -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 +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- 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 +33 -31
- 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 +30 -6
- 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 +101 -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 +4 -4
- 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 +43 -26
- package/contracts/accounting/AccountingServiceManager.sol +1 -1
- package/contracts/accounting/IAccountingService.sol +3 -0
- package/contracts/authorization/AccessAdmin.sol +293 -205
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +307 -231
- package/contracts/authorization/IAccessAdmin.sol +69 -36
- package/contracts/authorization/IAuthorization.sol +21 -1
- package/contracts/distribution/BasicDistribution.sol +12 -8
- package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
- package/contracts/distribution/Distribution.sol +14 -55
- package/contracts/distribution/DistributionService.sol +62 -30
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +0 -9
- package/contracts/distribution/IDistributionService.sol +18 -15
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
- package/contracts/examples/fire/FireProduct.sol +4 -3
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -1
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleProduct.sol +29 -4
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IInstance.sol +49 -15
- package/contracts/instance/IInstanceService.sol +15 -1
- package/contracts/instance/Instance.sol +80 -23
- package/contracts/instance/InstanceAdmin.sol +269 -104
- package/contracts/instance/InstanceAuthorizationV3.sol +49 -36
- package/contracts/instance/InstanceReader.sol +106 -35
- package/contracts/instance/InstanceService.sol +144 -73
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +11 -12
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +3 -2
- package/contracts/instance/module/IDistribution.sol +5 -2
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +20 -19
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPoolAuthorization.sol +21 -13
- package/contracts/pool/BundleService.sol +28 -58
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +13 -20
- package/contracts/pool/IPoolService.sol +50 -38
- package/contracts/pool/Pool.sol +9 -9
- package/contracts/pool/PoolLib.sol +309 -0
- package/contracts/pool/PoolService.sol +334 -190
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +28 -9
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +2 -0
- package/contracts/product/BasicProductAuthorization.sol +23 -8
- package/contracts/product/ClaimService.sol +165 -139
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +3 -0
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +11 -6
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +7 -7
- package/contracts/product/PolicyService.sol +112 -184
- package/contracts/product/PolicyServiceLib.sol +119 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +28 -19
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +55 -13
- package/contracts/product/RiskService.sol +76 -29
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +8 -15
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/Registry.sol +7 -2
- package/contracts/registry/RegistryAdmin.sol +143 -342
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +149 -117
- package/contracts/registry/ServiceAuthorizationV3.sol +159 -2
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +27 -19
- package/contracts/shared/ComponentService.sol +119 -116
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/ContractLib.sol +60 -3
- package/contracts/shared/IComponent.sol +3 -4
- package/contracts/shared/IComponentService.sol +4 -10
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +2 -2
- package/contracts/shared/NftOwnable.sol +6 -5
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +42 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +45 -92
- package/contracts/staking/IStaking.sol +12 -10
- package/contracts/staking/IStakingService.sol +19 -1
- package/contracts/staking/Staking.sol +57 -26
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingReader.sol +6 -16
- package/contracts/staking/StakingService.sol +71 -44
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/staking/StakingStore.sol +2 -1
- package/contracts/type/ObjectType.sol +47 -39
- package/contracts/type/RiskId.sol +9 -3
- 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 +54 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +2 -2
- 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/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- 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
@@ -0,0 +1,119 @@
|
|
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 activate(
|
14
|
+
NftId policyNftId,
|
15
|
+
IPolicy.PolicyInfo memory policyInfo,
|
16
|
+
Timestamp activateAt
|
17
|
+
)
|
18
|
+
external
|
19
|
+
pure
|
20
|
+
returns (IPolicy.PolicyInfo memory)
|
21
|
+
{
|
22
|
+
// fail if policy has already been activated and activateAt is different
|
23
|
+
if(! policyInfo.activatedAt.eqz() && activateAt != policyInfo.activatedAt) {
|
24
|
+
revert IPolicyService.ErrorPolicyServicePolicyAlreadyActivated(policyNftId);
|
25
|
+
}
|
26
|
+
|
27
|
+
// ignore if policy has already been activated and activateAt is the same
|
28
|
+
if (policyInfo.activatedAt == activateAt) {
|
29
|
+
return policyInfo;
|
30
|
+
}
|
31
|
+
|
32
|
+
policyInfo.activatedAt = activateAt;
|
33
|
+
policyInfo.expiredAt = activateAt.addSeconds(policyInfo.lifetime);
|
34
|
+
|
35
|
+
return policyInfo;
|
36
|
+
}
|
37
|
+
|
38
|
+
function expire(
|
39
|
+
InstanceReader instanceReader,
|
40
|
+
NftId policyNftId,
|
41
|
+
IPolicy.PolicyInfo memory policyInfo,
|
42
|
+
Timestamp expireAt
|
43
|
+
)
|
44
|
+
external
|
45
|
+
view
|
46
|
+
returns (IPolicy.PolicyInfo memory)
|
47
|
+
{
|
48
|
+
StateId policyState = instanceReader.getPolicyState(policyNftId);
|
49
|
+
|
50
|
+
checkExpiration(
|
51
|
+
expireAt,
|
52
|
+
policyNftId,
|
53
|
+
policyState,
|
54
|
+
policyInfo);
|
55
|
+
|
56
|
+
// effects
|
57
|
+
// update policyInfo with new expiredAt timestamp
|
58
|
+
if (expireAt.gtz()) {
|
59
|
+
policyInfo.expiredAt = expireAt;
|
60
|
+
} else {
|
61
|
+
policyInfo.expiredAt = TimestampLib.blockTimestamp();
|
62
|
+
}
|
63
|
+
|
64
|
+
return policyInfo;
|
65
|
+
}
|
66
|
+
|
67
|
+
function checkExpiration(
|
68
|
+
Timestamp newExpiredAt,
|
69
|
+
NftId policyNftId,
|
70
|
+
StateId policyState,
|
71
|
+
IPolicy.PolicyInfo memory policyInfo
|
72
|
+
)
|
73
|
+
public
|
74
|
+
view
|
75
|
+
{
|
76
|
+
if (policyState != COLLATERALIZED()) {
|
77
|
+
revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
|
78
|
+
}
|
79
|
+
if (TimestampLib.blockTimestamp() < policyInfo.activatedAt) {
|
80
|
+
revert IPolicyService.ErrorPolicyServicePolicyNotActive(policyNftId, policyState);
|
81
|
+
}
|
82
|
+
|
83
|
+
// check expiredAt represents a valid expiry time
|
84
|
+
if (newExpiredAt >= policyInfo.expiredAt) {
|
85
|
+
revert IPolicyService.ErrorPolicyServicePolicyExpirationTooLate(policyNftId, policyInfo.expiredAt, newExpiredAt);
|
86
|
+
}
|
87
|
+
|
88
|
+
if (newExpiredAt.gtz() && newExpiredAt < TimestampLib.blockTimestamp()) {
|
89
|
+
revert IPolicyService.ErrorPolicyServicePolicyExpirationTooEarly(policyNftId, TimestampLib.blockTimestamp(), newExpiredAt);
|
90
|
+
}
|
91
|
+
}
|
92
|
+
|
93
|
+
function policyIsCloseable(InstanceReader instanceReader, NftId policyNftId)
|
94
|
+
external
|
95
|
+
view
|
96
|
+
returns (bool isCloseable)
|
97
|
+
{
|
98
|
+
// policy already closed
|
99
|
+
if (instanceReader.getPolicyState(policyNftId) == CLOSED()) {
|
100
|
+
return false;
|
101
|
+
}
|
102
|
+
|
103
|
+
IPolicy.PolicyInfo memory info = instanceReader.getPolicyInfo(policyNftId);
|
104
|
+
|
105
|
+
if (info.productNftId.eqz()) { return false; } // not closeable: policy does not exist (or does not belong to this instance)
|
106
|
+
if (info.activatedAt.eqz()) { return false; } // not closeable: not yet activated
|
107
|
+
if (info.openClaimsCount > 0) { return false; } // not closeable: has open claims
|
108
|
+
|
109
|
+
// closeable: if sum of claims matches sum insured a policy may be closed prior to the expiry date
|
110
|
+
if (info.claimAmount == info.sumInsuredAmount) { return true; }
|
111
|
+
|
112
|
+
// not closeable: not yet expired
|
113
|
+
if (TimestampLib.blockTimestamp() < info.expiredAt) { return false; }
|
114
|
+
|
115
|
+
// all conditions to close the policy are met
|
116
|
+
return true;
|
117
|
+
}
|
118
|
+
|
119
|
+
}
|
@@ -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
|
@@ -86,6 +87,11 @@ contract PricingService is
|
|
86
87
|
// get instance reader from local instance variable
|
87
88
|
reader = instance.getInstanceReader();
|
88
89
|
|
90
|
+
NftId riskProductNftId = reader.getRiskInfo(riskId).productNftId;
|
91
|
+
if (productNftId != riskProductNftId) {
|
92
|
+
revert ErrorPricingServiceRiskProductMismatch(riskId, riskProductNftId, productNftId);
|
93
|
+
}
|
94
|
+
|
89
95
|
// calculate net premium
|
90
96
|
netPremiumAmount = IProductComponent(registryInfo.objectAddress).calculateNetPremium(
|
91
97
|
sumInsuredAmount,
|
@@ -98,6 +104,7 @@ contract PricingService is
|
|
98
104
|
{
|
99
105
|
// get configurations for all involed objects
|
100
106
|
IComponents.ProductInfo memory productInfo = reader.getProductInfo(productNftId);
|
107
|
+
IComponents.FeeInfo memory feeInfo = reader.getFeeInfo(productNftId);
|
101
108
|
|
102
109
|
IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
103
110
|
if(bundleInfo.poolNftId != productInfo.poolNftId) {
|
@@ -107,21 +114,22 @@ contract PricingService is
|
|
107
114
|
// calculate fixed fees for product, pool, bundle
|
108
115
|
premium = _getFixedFeeAmounts(
|
109
116
|
netPremiumAmount,
|
110
|
-
|
117
|
+
feeInfo,
|
111
118
|
bundleInfo
|
112
119
|
);
|
113
120
|
|
114
121
|
// calculate variable fees for product, pool, bundle
|
115
122
|
premium = _calculateVariableFeeAmounts(
|
116
123
|
premium,
|
117
|
-
|
124
|
+
feeInfo,
|
118
125
|
bundleInfo
|
119
126
|
);
|
120
127
|
|
121
128
|
// calculate distribution fee and (if applicable) commission
|
122
129
|
premium = _calculateDistributionOwnerFeeAmount(
|
123
130
|
premium,
|
124
|
-
|
131
|
+
feeInfo,
|
132
|
+
productInfo.distributionNftId,
|
125
133
|
referralId,
|
126
134
|
reader
|
127
135
|
);
|
@@ -137,7 +145,7 @@ contract PricingService is
|
|
137
145
|
revert ErrorPricingServiceTargetWalletAmountsMismatch();
|
138
146
|
}
|
139
147
|
|
140
|
-
if (premium.distributionOwnerFeeFixAmount.toInt() <
|
148
|
+
if (premium.distributionOwnerFeeFixAmount.toInt() < feeInfo.minDistributionOwnerFee.fixedFee) {
|
141
149
|
revert ErrorPricingServiceFeeCalculationMismatch(
|
142
150
|
premium.distributionFeeFixAmount,
|
143
151
|
premium.distributionFeeVarAmount,
|
@@ -164,7 +172,7 @@ contract PricingService is
|
|
164
172
|
// internal functions
|
165
173
|
function _getFixedFeeAmounts(
|
166
174
|
Amount netPremiumAmount,
|
167
|
-
IComponents.
|
175
|
+
IComponents.FeeInfo memory feeInfo,
|
168
176
|
IBundle.BundleInfo memory bundleInfo
|
169
177
|
)
|
170
178
|
internal
|
@@ -177,11 +185,11 @@ contract PricingService is
|
|
177
185
|
premium.netPremiumAmount = netPremiumAmount;
|
178
186
|
premium.fullPremiumAmount = netPremiumAmount;
|
179
187
|
|
180
|
-
Amount t = AmountLib.toAmount(
|
188
|
+
Amount t = AmountLib.toAmount(feeInfo.productFee.fixedFee);
|
181
189
|
premium.productFeeFixAmount = t;
|
182
190
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
183
191
|
|
184
|
-
t = AmountLib.toAmount(
|
192
|
+
t = AmountLib.toAmount(feeInfo.poolFee.fixedFee);
|
185
193
|
premium.poolFeeFixAmount = t;
|
186
194
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
187
195
|
|
@@ -189,14 +197,14 @@ contract PricingService is
|
|
189
197
|
premium.bundleFeeFixAmount = t;
|
190
198
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
191
199
|
|
192
|
-
t = AmountLib.toAmount(
|
200
|
+
t = AmountLib.toAmount(feeInfo.distributionFee.fixedFee);
|
193
201
|
premium.distributionFeeFixAmount = t;
|
194
202
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
195
203
|
}
|
196
204
|
|
197
205
|
function _calculateVariableFeeAmounts(
|
198
206
|
IPolicy.PremiumInfo memory premium,
|
199
|
-
IComponents.
|
207
|
+
IComponents.FeeInfo memory feeInfo,
|
200
208
|
IBundle.BundleInfo memory bundleInfo
|
201
209
|
)
|
202
210
|
internal
|
@@ -207,11 +215,11 @@ contract PricingService is
|
|
207
215
|
{
|
208
216
|
Amount netPremiumAmount = premium.netPremiumAmount;
|
209
217
|
|
210
|
-
Amount t = netPremiumAmount.multiplyWith(
|
218
|
+
Amount t = netPremiumAmount.multiplyWith(feeInfo.productFee.fractionalFee);
|
211
219
|
premium.productFeeVarAmount = t;
|
212
220
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
213
221
|
|
214
|
-
t = netPremiumAmount.multiplyWith(
|
222
|
+
t = netPremiumAmount.multiplyWith(feeInfo.poolFee.fractionalFee);
|
215
223
|
premium.poolFeeVarAmount = t;
|
216
224
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
217
225
|
|
@@ -219,7 +227,7 @@ contract PricingService is
|
|
219
227
|
premium.bundleFeeVarAmount = t;
|
220
228
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
221
229
|
|
222
|
-
t = netPremiumAmount.multiplyWith(
|
230
|
+
t = netPremiumAmount.multiplyWith(feeInfo.distributionFee.fractionalFee);
|
223
231
|
premium.distributionFeeVarAmount = t;
|
224
232
|
premium.fullPremiumAmount = premium.fullPremiumAmount + t;
|
225
233
|
|
@@ -228,7 +236,8 @@ contract PricingService is
|
|
228
236
|
|
229
237
|
function _calculateDistributionOwnerFeeAmount(
|
230
238
|
IPolicy.PremiumInfo memory premium,
|
231
|
-
IComponents.
|
239
|
+
IComponents.FeeInfo memory feeInfo,
|
240
|
+
NftId distributionNftId,
|
232
241
|
// ISetup.DistributionSetupInfo memory distInfo,
|
233
242
|
ReferralId referralId,
|
234
243
|
InstanceReader reader
|
@@ -239,14 +248,14 @@ contract PricingService is
|
|
239
248
|
{
|
240
249
|
|
241
250
|
// if the referral is not valid, then the distribution owner gets everything
|
242
|
-
if (
|
251
|
+
if (distributionNftId.eqz() || ! _distributionService.referralIsValid(distributionNftId, referralId)) {
|
243
252
|
premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
|
244
253
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
|
245
254
|
premium.premiumAmount = premium.fullPremiumAmount;
|
246
255
|
return premium;
|
247
256
|
}
|
248
257
|
|
249
|
-
Fee memory minDistributionOwnerFee =
|
258
|
+
Fee memory minDistributionOwnerFee = feeInfo.minDistributionOwnerFee;
|
250
259
|
|
251
260
|
// if the referral is valid, the the commission and discount are calculated based in the full premium
|
252
261
|
// 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);
|
@@ -3,21 +3,18 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
5
|
import {ClaimId} from "../type/ClaimId.sol";
|
6
|
-
import {
|
7
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
8
|
-
import {IRisk} from "../instance/module/IRisk.sol";
|
6
|
+
import {Fee} from "../type/Fee.sol";
|
9
7
|
import {IApplicationService} from "./IApplicationService.sol";
|
10
8
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
11
9
|
import {IComponentService} from "../shared/IComponentService.sol";
|
12
10
|
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
13
|
-
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
14
11
|
import {IPolicyService} from "./IPolicyService.sol";
|
15
12
|
import {IRiskService} from "./IRiskService.sol";
|
16
13
|
import {IClaimService} from "./IClaimService.sol";
|
17
14
|
import {IPricingService} from "./IPricingService.sol";
|
18
15
|
import {IProductComponent} from "./IProductComponent.sol";
|
19
|
-
import {NftId
|
20
|
-
import {
|
16
|
+
import {NftId} from "../type/NftId.sol";
|
17
|
+
import {COMPONENT, PRODUCT, BUNDLE, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
21
18
|
import {PayoutId} from "../type/PayoutId.sol";
|
22
19
|
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE, RISK } from "../type/ObjectType.sol";
|
23
20
|
import {ReferralId} from "../type/Referral.sol";
|
@@ -28,9 +25,6 @@ import {Timestamp} from "../type/Timestamp.sol";
|
|
28
25
|
|
29
26
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
30
27
|
import {IComponents} from "../instance/module/IComponents.sol";
|
31
|
-
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
32
|
-
import {IOracleComponent} from "../oracle/IOracleComponent.sol";
|
33
|
-
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
34
28
|
|
35
29
|
abstract contract Product is
|
36
30
|
InstanceLinkedComponent,
|
@@ -41,6 +35,7 @@ abstract contract Product is
|
|
41
35
|
|
42
36
|
struct ProductStorage {
|
43
37
|
IComponents.ProductInfo _productInfo;
|
38
|
+
IComponents.FeeInfo _feeInfo;
|
44
39
|
IComponentService _componentService;
|
45
40
|
IRiskService _riskService;
|
46
41
|
IApplicationService _applicationService;
|
@@ -126,6 +121,15 @@ abstract contract Product is
|
|
126
121
|
return _getProductStorage()._productInfo;
|
127
122
|
}
|
128
123
|
|
124
|
+
function getInitialFeeInfo()
|
125
|
+
public
|
126
|
+
virtual
|
127
|
+
view
|
128
|
+
returns (IComponents.FeeInfo memory feeInfo)
|
129
|
+
{
|
130
|
+
return _getProductStorage()._feeInfo;
|
131
|
+
}
|
132
|
+
|
129
133
|
|
130
134
|
function _initializeProduct(
|
131
135
|
address registry,
|
@@ -133,6 +137,7 @@ abstract contract Product is
|
|
133
137
|
string memory name,
|
134
138
|
address token,
|
135
139
|
IComponents.ProductInfo memory productInfo,
|
140
|
+
IComponents.FeeInfo memory feeInfo,
|
136
141
|
IAuthorization authorization,
|
137
142
|
address initialOwner,
|
138
143
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
@@ -154,6 +159,7 @@ abstract contract Product is
|
|
154
159
|
|
155
160
|
ProductStorage storage $ = _getProductStorage();
|
156
161
|
$._productInfo = productInfo;
|
162
|
+
$._feeInfo = feeInfo;
|
157
163
|
$._riskService = IRiskService(_getServiceAddress(RISK()));
|
158
164
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
159
165
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
@@ -177,13 +183,14 @@ abstract contract Product is
|
|
177
183
|
|
178
184
|
|
179
185
|
function _createRisk(
|
180
|
-
|
186
|
+
bytes32 id,
|
181
187
|
bytes memory data
|
182
188
|
)
|
183
189
|
internal
|
184
190
|
virtual
|
191
|
+
returns (RiskId riskId)
|
185
192
|
{
|
186
|
-
_getProductStorage()._riskService.createRisk(
|
193
|
+
return _getProductStorage()._riskService.createRisk(
|
187
194
|
id,
|
188
195
|
data
|
189
196
|
);
|
@@ -276,6 +283,21 @@ abstract contract Product is
|
|
276
283
|
expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
|
277
284
|
}
|
278
285
|
|
286
|
+
/// @dev adjust the activation date of the policy.
|
287
|
+
/// The policy must already have an activation date set.
|
288
|
+
/// Allowed values are from the current blocktime to the expiration date of the policy.
|
289
|
+
function _adjustActivation(
|
290
|
+
NftId policyNftId,
|
291
|
+
Timestamp activateAt
|
292
|
+
)
|
293
|
+
internal
|
294
|
+
virtual
|
295
|
+
{
|
296
|
+
_getProductStorage()._policyService.adjustActivation(
|
297
|
+
policyNftId,
|
298
|
+
activateAt);
|
299
|
+
}
|
300
|
+
|
279
301
|
function _collectPremium(
|
280
302
|
NftId policyNftId,
|
281
303
|
Timestamp activateAt
|
@@ -325,6 +347,18 @@ abstract contract Product is
|
|
325
347
|
claimData);
|
326
348
|
}
|
327
349
|
|
350
|
+
function _revokeClaim(
|
351
|
+
NftId policyNftId,
|
352
|
+
ClaimId claimId
|
353
|
+
)
|
354
|
+
internal
|
355
|
+
virtual
|
356
|
+
{
|
357
|
+
_getProductStorage()._claimService.revoke(
|
358
|
+
policyNftId,
|
359
|
+
claimId);
|
360
|
+
}
|
361
|
+
|
328
362
|
function _confirmClaim(
|
329
363
|
NftId policyNftId,
|
330
364
|
ClaimId claimId,
|
@@ -415,8 +449,16 @@ abstract contract Product is
|
|
415
449
|
payoutId);
|
416
450
|
}
|
417
451
|
|
418
|
-
function
|
419
|
-
|
452
|
+
function _cancelPayout(
|
453
|
+
NftId policyNftId,
|
454
|
+
PayoutId payoutId
|
455
|
+
)
|
456
|
+
internal
|
457
|
+
virtual
|
458
|
+
{
|
459
|
+
_getProductStorage()._claimService.cancelPayout(
|
460
|
+
policyNftId,
|
461
|
+
payoutId);
|
420
462
|
}
|
421
463
|
|
422
464
|
function _getProductStorage() internal virtual pure returns (ProductStorage storage $) {
|
@@ -2,28 +2,25 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IInstance} from "../instance/IInstance.sol";
|
5
|
-
import {
|
6
|
-
import {IPoolService} from "../pool/PoolService.sol";
|
7
|
-
import {IRiskService} from "./IRiskService.sol";
|
8
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
5
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
9
6
|
import {IRisk} from "../instance/module/IRisk.sol";
|
7
|
+
import {IRiskService} from "./IRiskService.sol";
|
10
8
|
|
9
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
11
10
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
12
|
-
import {ObjectType,
|
11
|
+
import {ObjectType, COMPONENT, PRODUCT, RISK} from "../type/ObjectType.sol";
|
13
12
|
import {ACTIVE, PAUSED, KEEP_STATE} from "../type/StateId.sol";
|
14
13
|
import {NftId} from "../type/NftId.sol";
|
15
|
-
import {RiskId} from "../type/RiskId.sol";
|
14
|
+
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
16
15
|
import {StateId} from "../type/StateId.sol";
|
17
16
|
import {RiskSet} from "../instance/RiskSet.sol";
|
18
|
-
import {
|
17
|
+
import {Service} from "../shared/Service.sol";
|
18
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
19
19
|
|
20
20
|
contract RiskService is
|
21
|
-
|
21
|
+
Service,
|
22
22
|
IRiskService
|
23
23
|
{
|
24
|
-
IInstanceService private _instanceService;
|
25
|
-
IPoolService internal _poolService;
|
26
|
-
IRegistryService private _registryService;
|
27
24
|
|
28
25
|
function _initialize(
|
29
26
|
address owner,
|
@@ -34,29 +31,32 @@ contract RiskService is
|
|
34
31
|
virtual override
|
35
32
|
{
|
36
33
|
(
|
37
|
-
address
|
38
|
-
address
|
34
|
+
address authority,
|
35
|
+
address registry
|
39
36
|
) = abi.decode(data, (address, address));
|
40
37
|
|
41
|
-
|
42
|
-
|
43
|
-
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
44
|
-
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
45
|
-
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
46
|
-
|
38
|
+
__Service_init(authority, registry, owner);
|
47
39
|
_registerInterface(type(IRiskService).interfaceId);
|
48
40
|
}
|
49
41
|
|
50
|
-
|
42
|
+
/// @inheritdoc IRiskService
|
51
43
|
function createRisk(
|
52
|
-
|
44
|
+
bytes32 id,
|
53
45
|
bytes memory data
|
54
46
|
)
|
55
47
|
external
|
56
|
-
|
48
|
+
restricted()
|
49
|
+
returns (RiskId riskId)
|
57
50
|
{
|
58
|
-
|
59
|
-
|
51
|
+
// checks
|
52
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
53
|
+
|
54
|
+
// effects
|
55
|
+
riskId = RiskIdLib.toRiskId(productNftId, id);
|
56
|
+
IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo({
|
57
|
+
productNftId: productNftId,
|
58
|
+
createdAt: TimestampLib.blockTimestamp(),
|
59
|
+
data: data});
|
60
60
|
|
61
61
|
instance.getInstanceStore().createRisk(
|
62
62
|
riskId,
|
@@ -73,12 +73,20 @@ contract RiskService is
|
|
73
73
|
RiskId riskId,
|
74
74
|
bytes memory data
|
75
75
|
)
|
76
|
-
external
|
76
|
+
external
|
77
|
+
restricted()
|
77
78
|
{
|
78
|
-
|
79
|
-
|
79
|
+
// checks
|
80
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
80
81
|
|
82
|
+
// effects
|
83
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
81
84
|
IRisk.RiskInfo memory riskInfo = instanceReader.getRiskInfo(riskId);
|
85
|
+
|
86
|
+
if (riskInfo.productNftId != productNftId) {
|
87
|
+
revert ErrorRiskServiceRiskProductMismatch(riskId, riskInfo.productNftId, productNftId);
|
88
|
+
}
|
89
|
+
|
82
90
|
riskInfo.data = data;
|
83
91
|
instance.getInstanceStore().updateRisk(riskId, riskInfo, KEEP_STATE());
|
84
92
|
}
|
@@ -88,9 +96,18 @@ contract RiskService is
|
|
88
96
|
RiskId riskId,
|
89
97
|
StateId state
|
90
98
|
)
|
91
|
-
external
|
99
|
+
external
|
100
|
+
restricted()
|
92
101
|
{
|
93
|
-
|
102
|
+
// checks
|
103
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
104
|
+
|
105
|
+
NftId riskProductNftId = instance.getInstanceReader().getRiskInfo(riskId).productNftId;
|
106
|
+
if (riskProductNftId != productNftId) {
|
107
|
+
revert ErrorRiskServiceRiskProductMismatch(riskId, riskProductNftId, productNftId);
|
108
|
+
}
|
109
|
+
|
110
|
+
// effects
|
94
111
|
instance.getInstanceStore().updateRiskState(riskId, state);
|
95
112
|
|
96
113
|
if (state == ACTIVE()) {
|
@@ -100,6 +117,36 @@ contract RiskService is
|
|
100
117
|
}
|
101
118
|
}
|
102
119
|
|
120
|
+
function _getAndVerifyActiveComponent(ObjectType expectedType)
|
121
|
+
internal
|
122
|
+
view
|
123
|
+
returns (
|
124
|
+
NftId componentNftId,
|
125
|
+
IInstance instance
|
126
|
+
)
|
127
|
+
{
|
128
|
+
IRegistry.ObjectInfo memory info;
|
129
|
+
address instanceAddress;
|
130
|
+
bool isActive = true;
|
131
|
+
|
132
|
+
if (expectedType != COMPONENT()) {
|
133
|
+
(info, instanceAddress) = ContractLib.getAndVerifyComponent(
|
134
|
+
getRegistry(),
|
135
|
+
msg.sender, // caller
|
136
|
+
expectedType,
|
137
|
+
isActive);
|
138
|
+
} else {
|
139
|
+
(info, instanceAddress) = ContractLib.getAndVerifyAnyComponent(
|
140
|
+
getRegistry(),
|
141
|
+
msg.sender,
|
142
|
+
isActive);
|
143
|
+
}
|
144
|
+
|
145
|
+
// get component nft id and instance
|
146
|
+
componentNftId = info.nftId;
|
147
|
+
instance = IInstance(instanceAddress);
|
148
|
+
}
|
149
|
+
|
103
150
|
|
104
151
|
function _getDomain() internal pure override returns(ObjectType) {
|
105
152
|
return RISK();
|
@@ -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)) {
|