@etherisc/gif-next 0.0.2-abde86b-349 → 0.0.2-ac4bee9-682
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/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +96 -37
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
- 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 +60 -13
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +139 -157
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +77 -17
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +102 -96
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +152 -86
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +104 -60
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +92 -81
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +29 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1429 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1979 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +151 -132
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +133 -127
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +249 -188
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +530 -229
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +53 -31
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +31 -86
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -40
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +148 -118
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -97
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +113 -135
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +91 -133
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +72 -40
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +172 -111
- 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 +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/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 +121 -139
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +77 -17
- 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 +87 -76
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +43 -9
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +97 -91
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +102 -47
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +72 -36
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +97 -119
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +205 -103
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +108 -60
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +72 -15
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +87 -115
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +213 -195
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +97 -130
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +294 -255
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +83 -47
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +82 -32
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +69 -33
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +142 -92
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +77 -17
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +175 -82
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +102 -58
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +29 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +56 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +65 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +80 -51
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +128 -73
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +29 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +154 -61
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +87 -47
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +165 -107
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +85 -45
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +138 -88
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +76 -26
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +66 -30
- 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 +72 -15
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +114 -35
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +116 -51
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +206 -165
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +161 -61
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +65 -29
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +123 -225
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +76 -66
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +425 -155
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +103 -63
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +42 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +21 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +66 -51
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +388 -19
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +87 -76
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- 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 +29 -0
- 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 +29 -0
- 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 +97 -91
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -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 +18 -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 +66 -8
- 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 +42 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +388 -35
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +84 -87
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +29 -21
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +154 -166
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +81 -51
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +82 -53
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +69 -33
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +144 -103
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
- 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 +32 -8
- 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 +28 -4
- 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 +2 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +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 +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 +60 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- 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/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- 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/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- 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 +44 -12
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +65 -61
- package/contracts/authorization/Authorization.sol +106 -38
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +4 -2
- package/contracts/authorization/IAuthorization.sol +13 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +2 -1
- package/contracts/distribution/Distribution.sol +6 -16
- package/contracts/distribution/DistributionService.sol +55 -36
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +431 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +12 -4
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +38 -6
- package/contracts/examples/unpermissioned/SimpleProduct.sol +17 -23
- package/contracts/instance/IInstance.sol +4 -1
- package/contracts/instance/IInstanceService.sol +2 -23
- package/contracts/instance/Instance.sol +20 -17
- package/contracts/instance/InstanceAdmin.sol +17 -28
- package/contracts/instance/InstanceAuthorizationV3.sol +9 -19
- package/contracts/instance/InstanceReader.sol +10 -34
- package/contracts/instance/InstanceService.sol +29 -80
- package/contracts/instance/module/IComponents.sol +7 -5
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +4 -15
- package/contracts/oracle/OracleService.sol +47 -36
- package/contracts/pool/BasicPool.sol +33 -24
- package/contracts/pool/BasicPoolAuthorization.sol +12 -2
- package/contracts/pool/BundleService.sol +88 -41
- package/contracts/pool/IBundleService.sol +11 -5
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +25 -24
- package/contracts/pool/Pool.sol +118 -126
- package/contracts/pool/PoolService.sol +203 -131
- package/contracts/product/ApplicationService.sol +9 -1
- package/contracts/product/BasicProduct.sol +8 -12
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +99 -58
- package/contracts/product/IClaimService.sol +2 -1
- package/contracts/product/IPolicyService.sol +6 -1
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +6 -0
- package/contracts/product/PolicyService.sol +76 -27
- package/contracts/product/PricingService.sol +8 -8
- package/contracts/product/Product.sol +56 -56
- package/contracts/registry/ChainNft.sol +6 -9
- package/contracts/registry/IRegistry.sol +6 -3
- package/contracts/registry/IRegistryService.sol +6 -4
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +22 -4
- package/contracts/registry/RegistryAdmin.sol +29 -31
- package/contracts/registry/RegistryService.sol +37 -55
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +202 -208
- package/contracts/registry/ServiceAuthorizationV3.sol +24 -20
- package/contracts/shared/Component.sol +58 -97
- package/contracts/shared/ComponentService.sol +285 -147
- package/contracts/shared/ComponentVerifyingService.sol +27 -15
- package/contracts/shared/ContractLib.sol +17 -1
- package/contracts/shared/IComponent.sol +10 -13
- package/contracts/shared/IComponentService.sol +38 -16
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -11
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/InstanceLinkedComponent.sol +66 -32
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +23 -3
- package/contracts/shared/Registerable.sol +15 -7
- package/contracts/shared/RegistryLinked.sol +6 -12
- package/contracts/shared/Service.sol +4 -7
- package/contracts/shared/TokenHandler.sol +324 -66
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +9 -4
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/Staking.sol +31 -24
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +69 -23
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/NftId.sol +1 -0
- package/contracts/type/ObjectType.sol +1 -0
- package/contracts/type/RiskId.sol +16 -2
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/StateId.sol +14 -1
- package/contracts/upgradeability/ProxyManager.sol +2 -1
- package/package.json +4 -3
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/shared/InitializableCustom.sol +0 -177
@@ -9,7 +9,7 @@ import {NftId} from "../type/NftId.sol";
|
|
9
9
|
import {Fee} from "../type/Fee.sol";
|
10
10
|
import {ReferralId} from "../type/Referral.sol";
|
11
11
|
import {RiskId} from "../type/RiskId.sol";
|
12
|
-
import {PRODUCT, DISTRIBUTION, PRICE} from "../type/ObjectType.sol";
|
12
|
+
import {PRODUCT, BUNDLE, DISTRIBUTION, PRICE} from "../type/ObjectType.sol";
|
13
13
|
import {IRegistry} from "../registry/IRegistry.sol";
|
14
14
|
|
15
15
|
import {IProductComponent} from "./IProductComponent.sol";
|
@@ -31,11 +31,8 @@ contract PricingService is
|
|
31
31
|
ComponentVerifyingService,
|
32
32
|
IPricingService
|
33
33
|
{
|
34
|
-
using UFixedLib for UFixed;
|
35
|
-
|
36
34
|
IDistributionService internal _distributionService;
|
37
35
|
|
38
|
-
|
39
36
|
function _initialize(
|
40
37
|
address owner,
|
41
38
|
bytes memory data
|
@@ -73,6 +70,9 @@ contract PricingService is
|
|
73
70
|
IPolicy.PremiumInfo memory premium
|
74
71
|
)
|
75
72
|
{
|
73
|
+
_checkNftType(productNftId, PRODUCT());
|
74
|
+
_checkNftType(bundleNftId, BUNDLE());
|
75
|
+
|
76
76
|
InstanceReader reader;
|
77
77
|
Amount netPremiumAmount;
|
78
78
|
|
@@ -101,7 +101,7 @@ contract PricingService is
|
|
101
101
|
|
102
102
|
IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
103
103
|
if(bundleInfo.poolNftId != productInfo.poolNftId) {
|
104
|
-
revert
|
104
|
+
revert ErrorPricingServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, productInfo.poolNftId);
|
105
105
|
}
|
106
106
|
|
107
107
|
// calculate fixed fees for product, pool, bundle
|
@@ -138,7 +138,7 @@ contract PricingService is
|
|
138
138
|
}
|
139
139
|
|
140
140
|
if (premium.distributionOwnerFeeFixAmount.toInt() < productInfo.minDistributionOwnerFee.fixedFee) {
|
141
|
-
revert
|
141
|
+
revert ErrorPricingServiceFeeCalculationMismatch(
|
142
142
|
premium.distributionFeeFixAmount,
|
143
143
|
premium.distributionFeeVarAmount,
|
144
144
|
premium.distributionOwnerFeeFixAmount,
|
@@ -149,7 +149,7 @@ contract PricingService is
|
|
149
149
|
}
|
150
150
|
|
151
151
|
if ((premium.distributionFeeVarAmount) != (premium.discountAmount + premium.distributionOwnerFeeVarAmount + premium.commissionAmount)) {
|
152
|
-
revert
|
152
|
+
revert ErrorPricingServiceFeeCalculationMismatch(
|
153
153
|
premium.distributionFeeFixAmount,
|
154
154
|
premium.distributionFeeVarAmount,
|
155
155
|
premium.distributionOwnerFeeFixAmount,
|
@@ -239,7 +239,7 @@ contract PricingService is
|
|
239
239
|
{
|
240
240
|
|
241
241
|
// if the referral is not valid, then the distribution owner gets everything
|
242
|
-
if (! _distributionService.referralIsValid(productInfo.distributionNftId, referralId)) {
|
242
|
+
if (productInfo.distributionNftId.eqz() || ! _distributionService.referralIsValid(productInfo.distributionNftId, referralId)) {
|
243
243
|
premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
|
244
244
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
|
245
245
|
premium.premiumAmount = premium.fullPremiumAmount;
|
@@ -3,20 +3,23 @@ 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 {
|
6
|
+
import {IComponent} from "../shared/IComponent.sol";
|
7
7
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
8
8
|
import {IRisk} from "../instance/module/IRisk.sol";
|
9
9
|
import {IApplicationService} from "./IApplicationService.sol";
|
10
10
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
11
11
|
import {IComponentService} from "../shared/IComponentService.sol";
|
12
|
+
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
13
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
12
14
|
import {IPolicyService} from "./IPolicyService.sol";
|
13
15
|
import {IRiskService} from "./IRiskService.sol";
|
14
16
|
import {IClaimService} from "./IClaimService.sol";
|
15
17
|
import {IPricingService} from "./IPricingService.sol";
|
16
18
|
import {IProductComponent} from "./IProductComponent.sol";
|
17
|
-
import {NftId} from "../type/NftId.sol";
|
19
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
20
|
+
import {ObjectType, COMPONENT, DISTRIBUTION, ORACLE, POOL, PRODUCT, BUNDLE, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
18
21
|
import {PayoutId} from "../type/PayoutId.sol";
|
19
|
-
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
22
|
+
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE } from "../type/ObjectType.sol";
|
20
23
|
import {ReferralId} from "../type/Referral.sol";
|
21
24
|
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
22
25
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -25,8 +28,9 @@ import {Timestamp} from "../type/Timestamp.sol";
|
|
25
28
|
|
26
29
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
27
30
|
import {IComponents} from "../instance/module/IComponents.sol";
|
28
|
-
import {
|
29
|
-
import {
|
31
|
+
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
32
|
+
import {IOracleComponent} from "../oracle/IOracleComponent.sol";
|
33
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
30
34
|
|
31
35
|
abstract contract Product is
|
32
36
|
InstanceLinkedComponent,
|
@@ -36,26 +40,23 @@ abstract contract Product is
|
|
36
40
|
bytes32 public constant PRODUCT_STORAGE_LOCATION_V1 = 0x0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800;
|
37
41
|
|
38
42
|
struct ProductStorage {
|
43
|
+
IComponents.ProductInfo _productInfo;
|
44
|
+
IComponentService _componentService;
|
39
45
|
IRiskService _riskService;
|
40
46
|
IApplicationService _applicationService;
|
41
47
|
IPolicyService _policyService;
|
42
48
|
IClaimService _claimService;
|
43
49
|
IPricingService _pricingService;
|
44
|
-
IComponentService _componentService;
|
45
|
-
NftId _poolNftId;
|
46
|
-
NftId _distributionNftId;
|
47
|
-
Pool _pool;
|
48
|
-
Distribution _distribution;
|
49
50
|
}
|
50
51
|
|
51
52
|
|
52
|
-
function
|
53
|
+
function registerComponent(address component)
|
53
54
|
external
|
54
55
|
virtual
|
55
56
|
onlyOwner()
|
57
|
+
returns (NftId componentNftId)
|
56
58
|
{
|
57
|
-
_getProductStorage()._componentService.
|
58
|
-
_approveTokenHandler(type(uint256).max);
|
59
|
+
return _getProductStorage()._componentService.registerComponent(component);
|
59
60
|
}
|
60
61
|
|
61
62
|
|
@@ -67,6 +68,7 @@ abstract contract Product is
|
|
67
68
|
external
|
68
69
|
virtual
|
69
70
|
restricted() // pool service role
|
71
|
+
onlyNftOfType(policyNftId, POLICY())
|
70
72
|
{
|
71
73
|
// default implementation does nothing
|
72
74
|
}
|
@@ -83,6 +85,7 @@ abstract contract Product is
|
|
83
85
|
public
|
84
86
|
view
|
85
87
|
override
|
88
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
86
89
|
returns (Amount premiumAmount)
|
87
90
|
{
|
88
91
|
IPolicy.PremiumInfo memory premium = _getProductStorage()._pricingService.calculatePremium(
|
@@ -120,35 +123,18 @@ abstract contract Product is
|
|
120
123
|
view
|
121
124
|
returns (IComponents.ProductInfo memory poolInfo)
|
122
125
|
{
|
123
|
-
|
124
|
-
|
125
|
-
return IComponents.ProductInfo({
|
126
|
-
distributionNftId: $._distributionNftId,
|
127
|
-
poolNftId: $._poolNftId,
|
128
|
-
isProcessingFundedClaims: false,
|
129
|
-
productFee: FeeLib.zero(),
|
130
|
-
processingFee: FeeLib.zero(),
|
131
|
-
distributionFee: FeeLib.zero(),
|
132
|
-
minDistributionOwnerFee: FeeLib.zero(),
|
133
|
-
poolFee: FeeLib.zero(),
|
134
|
-
stakingFee: FeeLib.zero(),
|
135
|
-
performanceFee: FeeLib.zero()
|
136
|
-
});
|
126
|
+
return _getProductStorage()._productInfo;
|
137
127
|
}
|
138
128
|
|
139
129
|
|
140
130
|
function _initializeProduct(
|
141
131
|
address registry,
|
142
132
|
NftId instanceNftId,
|
143
|
-
IAuthorization authorization,
|
144
|
-
address initialOwner,
|
145
133
|
string memory name,
|
146
134
|
address token,
|
147
|
-
|
148
|
-
|
149
|
-
address
|
150
|
-
// add NftId [] oracleNftIds (#527)
|
151
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
135
|
+
IComponents.ProductInfo memory productInfo,
|
136
|
+
IAuthorization authorization,
|
137
|
+
address initialOwner,
|
152
138
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
153
139
|
)
|
154
140
|
internal
|
@@ -162,24 +148,18 @@ abstract contract Product is
|
|
162
148
|
token,
|
163
149
|
PRODUCT(),
|
164
150
|
authorization,
|
165
|
-
|
151
|
+
productInfo.isInterceptingPolicyTransfers,
|
166
152
|
initialOwner,
|
167
|
-
registryData,
|
168
153
|
componentData);
|
169
154
|
|
170
155
|
ProductStorage storage $ = _getProductStorage();
|
171
|
-
|
172
|
-
// TODO refactor to go via registry for all components linked to this product (#527)
|
156
|
+
$._productInfo = productInfo;
|
173
157
|
$._riskService = IRiskService(_getServiceAddress(PRODUCT()));
|
174
158
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
175
159
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
176
160
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
177
161
|
$._pricingService = IPricingService(_getServiceAddress(PRICE()));
|
178
162
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
179
|
-
$._pool = Pool(pool);
|
180
|
-
$._distribution = Distribution(distribution);
|
181
|
-
$._poolNftId = getRegistry().getNftIdForAddress(pool);
|
182
|
-
$._distributionNftId = getRegistry().getNftIdForAddress(distribution);
|
183
163
|
|
184
164
|
_registerInterface(type(IProductComponent).interfaceId);
|
185
165
|
}
|
@@ -199,8 +179,11 @@ abstract contract Product is
|
|
199
179
|
function _createRisk(
|
200
180
|
RiskId id,
|
201
181
|
bytes memory data
|
202
|
-
)
|
203
|
-
|
182
|
+
)
|
183
|
+
internal
|
184
|
+
virtual
|
185
|
+
{
|
186
|
+
_getProductStorage()._riskService.createRisk(
|
204
187
|
id,
|
205
188
|
data
|
206
189
|
);
|
@@ -209,8 +192,11 @@ abstract contract Product is
|
|
209
192
|
function _updateRisk(
|
210
193
|
RiskId id,
|
211
194
|
bytes memory data
|
212
|
-
)
|
213
|
-
|
195
|
+
)
|
196
|
+
internal
|
197
|
+
virtual
|
198
|
+
{
|
199
|
+
_getProductStorage()._riskService.updateRisk(
|
214
200
|
id,
|
215
201
|
data
|
216
202
|
);
|
@@ -219,15 +205,18 @@ abstract contract Product is
|
|
219
205
|
function _updateRiskState(
|
220
206
|
RiskId id,
|
221
207
|
StateId state
|
222
|
-
)
|
223
|
-
|
208
|
+
)
|
209
|
+
internal
|
210
|
+
virtual
|
211
|
+
{
|
212
|
+
_getProductStorage()._riskService.updateRiskState(
|
224
213
|
id,
|
225
214
|
state
|
226
215
|
);
|
227
216
|
}
|
228
217
|
|
229
218
|
|
230
|
-
function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
|
219
|
+
function _getRiskInfo(RiskId id) internal virtual view returns (IRisk.RiskInfo memory info) {
|
231
220
|
return getInstance().getInstanceReader().getRiskInfo(id);
|
232
221
|
}
|
233
222
|
|
@@ -243,6 +232,7 @@ abstract contract Product is
|
|
243
232
|
bytes memory applicationData
|
244
233
|
)
|
245
234
|
internal
|
235
|
+
virtual
|
246
236
|
returns (NftId applicationNftId)
|
247
237
|
{
|
248
238
|
return _getProductStorage()._applicationService.create(
|
@@ -262,8 +252,10 @@ abstract contract Product is
|
|
262
252
|
Timestamp activateAt
|
263
253
|
)
|
264
254
|
internal
|
255
|
+
virtual
|
256
|
+
returns (Amount premiumAmount)
|
265
257
|
{
|
266
|
-
_getProductStorage()._policyService.createPolicy(
|
258
|
+
premiumAmount = _getProductStorage()._policyService.createPolicy(
|
267
259
|
applicationNftId,
|
268
260
|
activateAt);
|
269
261
|
}
|
@@ -272,6 +264,7 @@ abstract contract Product is
|
|
272
264
|
NftId policyNftId
|
273
265
|
)
|
274
266
|
internal
|
267
|
+
virtual
|
275
268
|
{
|
276
269
|
_getProductStorage()._policyService.decline(
|
277
270
|
policyNftId);
|
@@ -282,6 +275,7 @@ abstract contract Product is
|
|
282
275
|
Timestamp expireAt
|
283
276
|
)
|
284
277
|
internal
|
278
|
+
virtual
|
285
279
|
returns (Timestamp expiredAt)
|
286
280
|
{
|
287
281
|
expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
|
@@ -292,6 +286,7 @@ abstract contract Product is
|
|
292
286
|
Timestamp activateAt
|
293
287
|
)
|
294
288
|
internal
|
289
|
+
virtual
|
295
290
|
{
|
296
291
|
_getProductStorage()._policyService.collectPremium(
|
297
292
|
policyNftId,
|
@@ -303,6 +298,7 @@ abstract contract Product is
|
|
303
298
|
Timestamp activateAt
|
304
299
|
)
|
305
300
|
internal
|
301
|
+
virtual
|
306
302
|
{
|
307
303
|
_getProductStorage()._policyService.activate(
|
308
304
|
policyNftId,
|
@@ -313,6 +309,7 @@ abstract contract Product is
|
|
313
309
|
NftId policyNftId
|
314
310
|
)
|
315
311
|
internal
|
312
|
+
virtual
|
316
313
|
{
|
317
314
|
_getProductStorage()._policyService.close(
|
318
315
|
policyNftId);
|
@@ -324,6 +321,7 @@ abstract contract Product is
|
|
324
321
|
bytes memory claimData
|
325
322
|
)
|
326
323
|
internal
|
324
|
+
virtual
|
327
325
|
returns(ClaimId)
|
328
326
|
{
|
329
327
|
return _getProductStorage()._claimService.submit(
|
@@ -339,6 +337,7 @@ abstract contract Product is
|
|
339
337
|
bytes memory data
|
340
338
|
)
|
341
339
|
internal
|
340
|
+
virtual
|
342
341
|
{
|
343
342
|
_getProductStorage()._claimService.confirm(
|
344
343
|
policyNftId,
|
@@ -353,6 +352,7 @@ abstract contract Product is
|
|
353
352
|
bytes memory data
|
354
353
|
)
|
355
354
|
internal
|
355
|
+
virtual
|
356
356
|
{
|
357
357
|
_getProductStorage()._claimService.decline(
|
358
358
|
policyNftId,
|
@@ -365,6 +365,7 @@ abstract contract Product is
|
|
365
365
|
ClaimId claimId
|
366
366
|
)
|
367
367
|
internal
|
368
|
+
virtual
|
368
369
|
{
|
369
370
|
_getProductStorage()._claimService.close(
|
370
371
|
policyNftId,
|
@@ -378,6 +379,7 @@ abstract contract Product is
|
|
378
379
|
bytes memory data
|
379
380
|
)
|
380
381
|
internal
|
382
|
+
virtual
|
381
383
|
returns (PayoutId)
|
382
384
|
{
|
383
385
|
return _getProductStorage()._claimService.createPayout(
|
@@ -395,6 +397,7 @@ abstract contract Product is
|
|
395
397
|
bytes memory data
|
396
398
|
)
|
397
399
|
internal
|
400
|
+
virtual
|
398
401
|
returns (PayoutId)
|
399
402
|
{
|
400
403
|
return _getProductStorage()._claimService.createPayoutForBeneficiary(
|
@@ -410,23 +413,20 @@ abstract contract Product is
|
|
410
413
|
PayoutId payoutId
|
411
414
|
)
|
412
415
|
internal
|
416
|
+
virtual
|
413
417
|
{
|
414
418
|
_getProductStorage()._claimService.processPayout(
|
415
419
|
policyNftId,
|
416
420
|
payoutId);
|
417
421
|
}
|
418
422
|
|
419
|
-
function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
|
423
|
+
function _toRiskId(string memory riskName) internal virtual pure returns (RiskId riskId) {
|
420
424
|
return RiskIdLib.toRiskId(riskName);
|
421
425
|
}
|
422
426
|
|
423
|
-
function _getProductStorage() internal pure returns (ProductStorage storage $) {
|
427
|
+
function _getProductStorage() internal virtual pure returns (ProductStorage storage $) {
|
424
428
|
assembly {
|
425
429
|
$.slot := PRODUCT_STORAGE_LOCATION_V1
|
426
430
|
}
|
427
431
|
}
|
428
|
-
|
429
|
-
function _getRiskService() internal view returns (IRiskService) {
|
430
|
-
return _getProductStorage()._riskService;
|
431
|
-
}
|
432
432
|
}
|
@@ -104,10 +104,6 @@ contract ChainNft is ERC721Enumerable {
|
|
104
104
|
}
|
105
105
|
|
106
106
|
_safeMintWithInterceptorAddress(to, tokenId, interceptor);
|
107
|
-
|
108
|
-
if(interceptor != address(0)) {
|
109
|
-
ITransferInterceptor(interceptor).nftMint(to, tokenId);
|
110
|
-
}
|
111
107
|
}
|
112
108
|
|
113
109
|
|
@@ -115,11 +111,12 @@ contract ChainNft is ERC721Enumerable {
|
|
115
111
|
* @dev amend the open zeppelin transferFrom function by an interceptor call if such an interceptor is defined for the nft token id
|
116
112
|
* this allows distribution, product and pool components to be notified when distributors, policies and bundles are transferred.
|
117
113
|
*/
|
118
|
-
function transferFrom(address from, address to, uint256 tokenId) public override (
|
114
|
+
function transferFrom(address from, address to, uint256 tokenId) public override (IERC721, ERC721) {
|
119
115
|
super.transferFrom(from, to, tokenId);
|
120
116
|
|
121
117
|
if (_interceptor[tokenId] != address(0)) {
|
122
|
-
|
118
|
+
address operator = msg.sender;
|
119
|
+
ITransferInterceptor(_interceptor[tokenId]).nftTransferFrom(from, to, tokenId, operator);
|
123
120
|
}
|
124
121
|
}
|
125
122
|
|
@@ -241,10 +238,10 @@ contract ChainNft is ERC721Enumerable {
|
|
241
238
|
address interceptor
|
242
239
|
)
|
243
240
|
private
|
244
|
-
{
|
245
|
-
emit LogTokenInterceptorAddress(tokenId, interceptor);
|
246
|
-
|
241
|
+
{
|
247
242
|
_totalMinted++;
|
248
243
|
_safeMint(to, tokenId);
|
244
|
+
|
245
|
+
emit LogTokenInterceptorAddress(tokenId, interceptor);
|
249
246
|
}
|
250
247
|
}
|
@@ -65,9 +65,6 @@ interface IRegistry is IERC165 {
|
|
65
65
|
StateId state;
|
66
66
|
VersionPart version;
|
67
67
|
bytes32 salt;
|
68
|
-
address[] addresses;
|
69
|
-
string[] names;
|
70
|
-
ObjectType[] domains;
|
71
68
|
IServiceAuthorization auth;
|
72
69
|
Timestamp activatedAt;
|
73
70
|
Timestamp disabledAt;
|
@@ -124,10 +121,16 @@ interface IRegistry is IERC165 {
|
|
124
121
|
|
125
122
|
function ownerOf(NftId nftId) external view returns (address);
|
126
123
|
|
124
|
+
function isOwnerOf(NftId nftId, address expectedOwner) external view returns (bool);
|
125
|
+
|
127
126
|
function ownerOf(address contractAddress) external view returns (address);
|
128
127
|
|
129
128
|
function getObjectInfo(NftId nftId) external view returns (ObjectInfo memory info);
|
130
129
|
|
130
|
+
function isObjectType(NftId nftId, ObjectType expectedObjectType) external view returns (bool);
|
131
|
+
|
132
|
+
function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool);
|
133
|
+
|
131
134
|
function getObjectAddress(NftId nftId) external view returns (address objectAddress);
|
132
135
|
|
133
136
|
/// @dev Returns the object info for the specified object address.
|
@@ -21,10 +21,9 @@ interface IRegistryService is
|
|
21
21
|
|
22
22
|
error ErrorRegistryServiceNotService(address notService);
|
23
23
|
error ErrorRegistryServiceNotInstance(address notInstance);
|
24
|
-
error ErrorRegistryServiceNotComponent(address notComponent);
|
25
24
|
error ErrorRegistryServiceNotProduct(address notProduct);
|
26
|
-
error
|
27
|
-
error
|
25
|
+
error ErrorRegistryServiceNotComponent(address notComponent);
|
26
|
+
error ErrorRegistryServiceNotProductLinkedComponent(address notProductLinkedComponent);
|
28
27
|
|
29
28
|
error ErrorRegistryServiceRegisterableAddressInvalid(IRegisterable registerable, address found);
|
30
29
|
error ErrorRegistryServiceRegisterableTypeInvalid(IRegisterable registerable, ObjectType expected, ObjectType found);
|
@@ -47,7 +46,10 @@ interface IRegistryService is
|
|
47
46
|
function registerInstance(IRegisterable instance, address owner)
|
48
47
|
external returns(IRegistry.ObjectInfo memory info);
|
49
48
|
|
50
|
-
function
|
49
|
+
function registerProduct(IComponent product, address owner)
|
50
|
+
external returns(IRegistry.ObjectInfo memory info);
|
51
|
+
|
52
|
+
function registerProductLinkedComponent(IComponent component, ObjectType objectType, address owner)
|
51
53
|
external returns(IRegistry.ObjectInfo memory info);
|
52
54
|
|
53
55
|
function registerDistributor(IRegistry.ObjectInfo memory info) external returns(NftId nftId);
|
@@ -2,6 +2,5 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
interface ITransferInterceptor {
|
5
|
-
function
|
6
|
-
function nftTransferFrom(address from, address to, uint256 tokenId) external;
|
5
|
+
function nftTransferFrom(address from, address to, uint256 tokenId, address operator) external;
|
7
6
|
}
|
@@ -13,6 +13,7 @@ import {ObjectType, ObjectTypeLib, PROTOCOL, REGISTRY, SERVICE, INSTANCE, STAKE,
|
|
13
13
|
import {ChainNft} from "./ChainNft.sol";
|
14
14
|
import {IRegistry} from "./IRegistry.sol";
|
15
15
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
16
|
+
import {IStaking} from "../staking/IStaking.sol";
|
16
17
|
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
17
18
|
import {TokenRegistry} from "./TokenRegistry.sol";
|
18
19
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
@@ -342,6 +343,10 @@ contract Registry is
|
|
342
343
|
return CHAIN_NFT.ownerOf(nftId.toInt());
|
343
344
|
}
|
344
345
|
|
346
|
+
function isOwnerOf(NftId nftId, address expectedOwner) public view returns (bool) {
|
347
|
+
return CHAIN_NFT.ownerOf(nftId.toInt()) == expectedOwner;
|
348
|
+
}
|
349
|
+
|
345
350
|
function ownerOf(address contractAddress) public view returns (address) {
|
346
351
|
return CHAIN_NFT.ownerOf(_nftIdByAddress[contractAddress].toInt());
|
347
352
|
}
|
@@ -350,6 +355,15 @@ contract Registry is
|
|
350
355
|
return _info[nftId];
|
351
356
|
}
|
352
357
|
|
358
|
+
function isObjectType(address contractAddress, ObjectType expectedObjectType) external view returns (bool) {
|
359
|
+
NftId nftId = _nftIdByAddress[contractAddress];
|
360
|
+
return isObjectType(nftId, expectedObjectType);
|
361
|
+
}
|
362
|
+
|
363
|
+
function isObjectType(NftId nftId, ObjectType expectedObjectType) public view returns (bool) {
|
364
|
+
return _info[nftId].objectType == expectedObjectType;
|
365
|
+
}
|
366
|
+
|
353
367
|
function getObjectAddress(NftId nftId) external view returns (address) {
|
354
368
|
return _info[nftId].objectAddress;
|
355
369
|
}
|
@@ -627,6 +641,8 @@ contract Registry is
|
|
627
641
|
initialOwner: stakingOwner,
|
628
642
|
data: ""}),
|
629
643
|
true);
|
644
|
+
|
645
|
+
IStaking(_stakingAddress).initializeTokenHandler();
|
630
646
|
}
|
631
647
|
|
632
648
|
/// @dev Register the provided object info for the specified NFT ID.
|
@@ -691,13 +707,15 @@ contract Registry is
|
|
691
707
|
|
692
708
|
// components with instance parent
|
693
709
|
_coreContractCombinations[PRODUCT()][INSTANCE()] = true;
|
694
|
-
|
695
|
-
|
696
|
-
_coreContractCombinations[
|
710
|
+
|
711
|
+
// components with product parent
|
712
|
+
_coreContractCombinations[DISTRIBUTION()][PRODUCT()] = true;
|
713
|
+
_coreContractCombinations[ORACLE()][PRODUCT()] = true;
|
714
|
+
_coreContractCombinations[POOL()][PRODUCT()] = true;
|
697
715
|
|
698
716
|
// objects with component parents
|
699
|
-
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
700
717
|
_coreObjectCombinations[POLICY()][PRODUCT()] = true;
|
718
|
+
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
701
719
|
_coreObjectCombinations[BUNDLE()][POOL()] = true;
|
702
720
|
|
703
721
|
// staking
|