@etherisc/gif-next 0.0.2-abde86b-349 → 0.0.2-ac2f4a6-957
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 +154 -94
- 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 +94 -58
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +120 -86
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +72 -60
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +81 -58
- 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 +1538 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2077 -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 +156 -96
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +137 -77
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +153 -106
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +222 -107
- 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 +29 -84
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +62 -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 +108 -125
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +72 -130
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +48 -40
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +160 -89
- 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 +135 -75
- 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 +76 -53
- 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 +89 -53
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +86 -47
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +48 -36
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +89 -66
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +82 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +180 -82
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +90 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +53 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +76 -53
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +136 -120
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +89 -53
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +209 -180
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +63 -47
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +66 -32
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -33
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +129 -54
- 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 +167 -82
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +81 -57
- 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 +58 -0
- 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 +116 -54
- 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 +139 -60
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +67 -47
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +149 -107
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +61 -45
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +129 -54
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +60 -26
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +42 -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 +48 -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 +92 -51
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +193 -165
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +145 -61
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +41 -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 +121 -223
- 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 +68 -28
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +350 -155
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +83 -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 +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +55 -28
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +321 -19
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +76 -53
- 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 +89 -53
- 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 +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +55 -28
- 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 +138 -78
- 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 +68 -42
- 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 +66 -53
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +45 -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 +28 -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 +53 -34
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +75 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +418 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -4
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +4 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +10 -10
- package/contracts/instance/IInstance.sol +4 -1
- package/contracts/instance/IInstanceService.sol +0 -20
- package/contracts/instance/Instance.sol +20 -17
- package/contracts/instance/InstanceAdmin.sol +16 -27
- package/contracts/instance/InstanceAuthorizationV3.sol +9 -19
- package/contracts/instance/InstanceReader.sol +9 -33
- package/contracts/instance/InstanceService.sol +14 -68
- package/contracts/instance/module/IComponents.sol +6 -3
- 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 +37 -27
- package/contracts/pool/BasicPool.sol +14 -26
- package/contracts/pool/BasicPoolAuthorization.sol +0 -1
- package/contracts/pool/BundleService.sol +75 -20
- package/contracts/pool/IBundleService.sol +9 -0
- package/contracts/pool/IPoolService.sol +2 -6
- package/contracts/pool/Pool.sol +11 -29
- package/contracts/pool/PoolService.sol +65 -69
- package/contracts/product/ApplicationService.sol +9 -1
- package/contracts/product/BasicProduct.sol +6 -6
- package/contracts/product/BasicProductAuthorization.sol +0 -1
- package/contracts/product/ClaimService.sol +97 -58
- package/contracts/product/IClaimService.sol +2 -1
- package/contracts/product/IPolicyService.sol +3 -0
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +6 -0
- package/contracts/product/PolicyService.sol +50 -13
- package/contracts/product/PricingService.sol +4 -7
- package/contracts/product/Product.sol +61 -38
- package/contracts/registry/ChainNft.sol +6 -9
- package/contracts/registry/IRegistry.sol +4 -3
- package/contracts/registry/IRegistryService.sol +6 -4
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +14 -4
- package/contracts/registry/RegistryAdmin.sol +7 -23
- package/contracts/registry/RegistryService.sol +37 -55
- package/contracts/registry/ReleaseLifecycle.sol +6 -3
- package/contracts/registry/ReleaseRegistry.sol +201 -191
- package/contracts/registry/ServiceAuthorizationV3.sol +14 -19
- package/contracts/shared/Component.sol +25 -28
- package/contracts/shared/ComponentService.sol +224 -130
- package/contracts/shared/ComponentVerifyingService.sol +22 -12
- package/contracts/shared/IComponent.sol +6 -2
- package/contracts/shared/IComponentService.sol +25 -13
- 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 +67 -25
- 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 -5
- package/contracts/shared/Service.sol +4 -7
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/Staking.sol +2 -3
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +1 -15
- 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 +15 -1
- package/contracts/type/RoleId.sol +0 -12
- package/contracts/type/StateId.sol +14 -1
- package/contracts/upgradeability/ProxyManager.sol +2 -1
- package/package.json +2 -1
- 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
@@ -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,25 @@ abstract contract Product is
|
|
36
40
|
bytes32 public constant PRODUCT_STORAGE_LOCATION_V1 = 0x0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800;
|
37
41
|
|
38
42
|
struct ProductStorage {
|
43
|
+
bool _isProcessingFundedClaims;
|
44
|
+
bool _hasDistribution;
|
45
|
+
uint8 _numberOfOracles;
|
39
46
|
IRiskService _riskService;
|
40
47
|
IApplicationService _applicationService;
|
41
48
|
IPolicyService _policyService;
|
42
49
|
IClaimService _claimService;
|
43
50
|
IPricingService _pricingService;
|
44
51
|
IComponentService _componentService;
|
45
|
-
NftId _poolNftId;
|
46
|
-
NftId _distributionNftId;
|
47
|
-
Pool _pool;
|
48
|
-
Distribution _distribution;
|
49
52
|
}
|
50
53
|
|
51
54
|
|
52
|
-
function
|
55
|
+
function registerComponent(address component)
|
53
56
|
external
|
54
57
|
virtual
|
55
58
|
onlyOwner()
|
59
|
+
returns (NftId componentNftId)
|
56
60
|
{
|
57
|
-
_getProductStorage()._componentService.
|
58
|
-
_approveTokenHandler(type(uint256).max);
|
61
|
+
return _getProductStorage()._componentService.registerComponent(component);
|
59
62
|
}
|
60
63
|
|
61
64
|
|
@@ -67,6 +70,7 @@ abstract contract Product is
|
|
67
70
|
external
|
68
71
|
virtual
|
69
72
|
restricted() // pool service role
|
73
|
+
onlyNftOfType(policyNftId, POLICY())
|
70
74
|
{
|
71
75
|
// default implementation does nothing
|
72
76
|
}
|
@@ -83,6 +87,7 @@ abstract contract Product is
|
|
83
87
|
public
|
84
88
|
view
|
85
89
|
override
|
90
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
86
91
|
returns (Amount premiumAmount)
|
87
92
|
{
|
88
93
|
IPolicy.PremiumInfo memory premium = _getProductStorage()._pricingService.calculatePremium(
|
@@ -123,9 +128,13 @@ abstract contract Product is
|
|
123
128
|
ProductStorage storage $ = _getProductStorage();
|
124
129
|
|
125
130
|
return IComponents.ProductInfo({
|
126
|
-
distributionNftId: $._distributionNftId,
|
127
|
-
poolNftId: $._poolNftId,
|
128
131
|
isProcessingFundedClaims: false,
|
132
|
+
hasDistribution: $._hasDistribution,
|
133
|
+
expectedNumberOfOracles: $._numberOfOracles,
|
134
|
+
numberOfOracles: 0,
|
135
|
+
poolNftId: NftIdLib.zero(),
|
136
|
+
distributionNftId: NftIdLib.zero(),
|
137
|
+
oracleNftId: new NftId[]($._numberOfOracles),
|
129
138
|
productFee: FeeLib.zero(),
|
130
139
|
processingFee: FeeLib.zero(),
|
131
140
|
distributionFee: FeeLib.zero(),
|
@@ -145,10 +154,9 @@ abstract contract Product is
|
|
145
154
|
string memory name,
|
146
155
|
address token,
|
147
156
|
bool isInterceptor,
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
157
|
+
bool isProcessingFundedClaims,
|
158
|
+
bool hasDistribution,
|
159
|
+
uint8 numberOfOracles,
|
152
160
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
153
161
|
)
|
154
162
|
internal
|
@@ -164,22 +172,18 @@ abstract contract Product is
|
|
164
172
|
authorization,
|
165
173
|
isInterceptor,
|
166
174
|
initialOwner,
|
167
|
-
registryData,
|
168
175
|
componentData);
|
169
176
|
|
170
177
|
ProductStorage storage $ = _getProductStorage();
|
171
|
-
|
172
|
-
|
178
|
+
$._isProcessingFundedClaims = isProcessingFundedClaims;
|
179
|
+
$._hasDistribution = hasDistribution;
|
180
|
+
$._numberOfOracles = numberOfOracles;
|
173
181
|
$._riskService = IRiskService(_getServiceAddress(PRODUCT()));
|
174
182
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
175
183
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
176
184
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
177
185
|
$._pricingService = IPricingService(_getServiceAddress(PRICE()));
|
178
186
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
179
|
-
$._pool = Pool(pool);
|
180
|
-
$._distribution = Distribution(distribution);
|
181
|
-
$._poolNftId = getRegistry().getNftIdForAddress(pool);
|
182
|
-
$._distributionNftId = getRegistry().getNftIdForAddress(distribution);
|
183
187
|
|
184
188
|
_registerInterface(type(IProductComponent).interfaceId);
|
185
189
|
}
|
@@ -199,8 +203,11 @@ abstract contract Product is
|
|
199
203
|
function _createRisk(
|
200
204
|
RiskId id,
|
201
205
|
bytes memory data
|
202
|
-
)
|
203
|
-
|
206
|
+
)
|
207
|
+
internal
|
208
|
+
virtual
|
209
|
+
{
|
210
|
+
_getProductStorage()._riskService.createRisk(
|
204
211
|
id,
|
205
212
|
data
|
206
213
|
);
|
@@ -209,8 +216,11 @@ abstract contract Product is
|
|
209
216
|
function _updateRisk(
|
210
217
|
RiskId id,
|
211
218
|
bytes memory data
|
212
|
-
)
|
213
|
-
|
219
|
+
)
|
220
|
+
internal
|
221
|
+
virtual
|
222
|
+
{
|
223
|
+
_getProductStorage()._riskService.updateRisk(
|
214
224
|
id,
|
215
225
|
data
|
216
226
|
);
|
@@ -219,15 +229,18 @@ abstract contract Product is
|
|
219
229
|
function _updateRiskState(
|
220
230
|
RiskId id,
|
221
231
|
StateId state
|
222
|
-
)
|
223
|
-
|
232
|
+
)
|
233
|
+
internal
|
234
|
+
virtual
|
235
|
+
{
|
236
|
+
_getProductStorage()._riskService.updateRiskState(
|
224
237
|
id,
|
225
238
|
state
|
226
239
|
);
|
227
240
|
}
|
228
241
|
|
229
242
|
|
230
|
-
function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
|
243
|
+
function _getRiskInfo(RiskId id) internal virtual view returns (IRisk.RiskInfo memory info) {
|
231
244
|
return getInstance().getInstanceReader().getRiskInfo(id);
|
232
245
|
}
|
233
246
|
|
@@ -243,6 +256,7 @@ abstract contract Product is
|
|
243
256
|
bytes memory applicationData
|
244
257
|
)
|
245
258
|
internal
|
259
|
+
virtual
|
246
260
|
returns (NftId applicationNftId)
|
247
261
|
{
|
248
262
|
return _getProductStorage()._applicationService.create(
|
@@ -262,6 +276,7 @@ abstract contract Product is
|
|
262
276
|
Timestamp activateAt
|
263
277
|
)
|
264
278
|
internal
|
279
|
+
virtual
|
265
280
|
{
|
266
281
|
_getProductStorage()._policyService.createPolicy(
|
267
282
|
applicationNftId,
|
@@ -272,6 +287,7 @@ abstract contract Product is
|
|
272
287
|
NftId policyNftId
|
273
288
|
)
|
274
289
|
internal
|
290
|
+
virtual
|
275
291
|
{
|
276
292
|
_getProductStorage()._policyService.decline(
|
277
293
|
policyNftId);
|
@@ -282,6 +298,7 @@ abstract contract Product is
|
|
282
298
|
Timestamp expireAt
|
283
299
|
)
|
284
300
|
internal
|
301
|
+
virtual
|
285
302
|
returns (Timestamp expiredAt)
|
286
303
|
{
|
287
304
|
expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
|
@@ -292,6 +309,7 @@ abstract contract Product is
|
|
292
309
|
Timestamp activateAt
|
293
310
|
)
|
294
311
|
internal
|
312
|
+
virtual
|
295
313
|
{
|
296
314
|
_getProductStorage()._policyService.collectPremium(
|
297
315
|
policyNftId,
|
@@ -303,6 +321,7 @@ abstract contract Product is
|
|
303
321
|
Timestamp activateAt
|
304
322
|
)
|
305
323
|
internal
|
324
|
+
virtual
|
306
325
|
{
|
307
326
|
_getProductStorage()._policyService.activate(
|
308
327
|
policyNftId,
|
@@ -313,6 +332,7 @@ abstract contract Product is
|
|
313
332
|
NftId policyNftId
|
314
333
|
)
|
315
334
|
internal
|
335
|
+
virtual
|
316
336
|
{
|
317
337
|
_getProductStorage()._policyService.close(
|
318
338
|
policyNftId);
|
@@ -324,6 +344,7 @@ abstract contract Product is
|
|
324
344
|
bytes memory claimData
|
325
345
|
)
|
326
346
|
internal
|
347
|
+
virtual
|
327
348
|
returns(ClaimId)
|
328
349
|
{
|
329
350
|
return _getProductStorage()._claimService.submit(
|
@@ -339,6 +360,7 @@ abstract contract Product is
|
|
339
360
|
bytes memory data
|
340
361
|
)
|
341
362
|
internal
|
363
|
+
virtual
|
342
364
|
{
|
343
365
|
_getProductStorage()._claimService.confirm(
|
344
366
|
policyNftId,
|
@@ -353,6 +375,7 @@ abstract contract Product is
|
|
353
375
|
bytes memory data
|
354
376
|
)
|
355
377
|
internal
|
378
|
+
virtual
|
356
379
|
{
|
357
380
|
_getProductStorage()._claimService.decline(
|
358
381
|
policyNftId,
|
@@ -365,6 +388,7 @@ abstract contract Product is
|
|
365
388
|
ClaimId claimId
|
366
389
|
)
|
367
390
|
internal
|
391
|
+
virtual
|
368
392
|
{
|
369
393
|
_getProductStorage()._claimService.close(
|
370
394
|
policyNftId,
|
@@ -378,6 +402,7 @@ abstract contract Product is
|
|
378
402
|
bytes memory data
|
379
403
|
)
|
380
404
|
internal
|
405
|
+
virtual
|
381
406
|
returns (PayoutId)
|
382
407
|
{
|
383
408
|
return _getProductStorage()._claimService.createPayout(
|
@@ -395,6 +420,7 @@ abstract contract Product is
|
|
395
420
|
bytes memory data
|
396
421
|
)
|
397
422
|
internal
|
423
|
+
virtual
|
398
424
|
returns (PayoutId)
|
399
425
|
{
|
400
426
|
return _getProductStorage()._claimService.createPayoutForBeneficiary(
|
@@ -410,23 +436,20 @@ abstract contract Product is
|
|
410
436
|
PayoutId payoutId
|
411
437
|
)
|
412
438
|
internal
|
439
|
+
virtual
|
413
440
|
{
|
414
441
|
_getProductStorage()._claimService.processPayout(
|
415
442
|
policyNftId,
|
416
443
|
payoutId);
|
417
444
|
}
|
418
445
|
|
419
|
-
function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
|
446
|
+
function _toRiskId(string memory riskName) internal virtual pure returns (RiskId riskId) {
|
420
447
|
return RiskIdLib.toRiskId(riskName);
|
421
448
|
}
|
422
449
|
|
423
|
-
function _getProductStorage() internal pure returns (ProductStorage storage $) {
|
450
|
+
function _getProductStorage() internal virtual pure returns (ProductStorage storage $) {
|
424
451
|
assembly {
|
425
452
|
$.slot := PRODUCT_STORAGE_LOCATION_V1
|
426
453
|
}
|
427
454
|
}
|
428
|
-
|
429
|
-
function _getRiskService() internal view returns (IRiskService) {
|
430
|
-
return _getProductStorage()._riskService;
|
431
|
-
}
|
432
455
|
}
|
@@ -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,14 @@ 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
|
+
|
131
132
|
function getObjectAddress(NftId nftId) external view returns (address objectAddress);
|
132
133
|
|
133
134
|
/// @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
|
}
|
@@ -342,6 +342,10 @@ contract Registry is
|
|
342
342
|
return CHAIN_NFT.ownerOf(nftId.toInt());
|
343
343
|
}
|
344
344
|
|
345
|
+
function isOwnerOf(NftId nftId, address expectedOwner) public view returns (bool) {
|
346
|
+
return CHAIN_NFT.ownerOf(nftId.toInt()) == expectedOwner;
|
347
|
+
}
|
348
|
+
|
345
349
|
function ownerOf(address contractAddress) public view returns (address) {
|
346
350
|
return CHAIN_NFT.ownerOf(_nftIdByAddress[contractAddress].toInt());
|
347
351
|
}
|
@@ -350,6 +354,10 @@ contract Registry is
|
|
350
354
|
return _info[nftId];
|
351
355
|
}
|
352
356
|
|
357
|
+
function isObjectType(NftId nftId, ObjectType expectedObjectType) external view returns (bool) {
|
358
|
+
return _info[nftId].objectType == expectedObjectType;
|
359
|
+
}
|
360
|
+
|
353
361
|
function getObjectAddress(NftId nftId) external view returns (address) {
|
354
362
|
return _info[nftId].objectAddress;
|
355
363
|
}
|
@@ -691,13 +699,15 @@ contract Registry is
|
|
691
699
|
|
692
700
|
// components with instance parent
|
693
701
|
_coreContractCombinations[PRODUCT()][INSTANCE()] = true;
|
694
|
-
|
695
|
-
|
696
|
-
_coreContractCombinations[
|
702
|
+
|
703
|
+
// components with product parent
|
704
|
+
_coreContractCombinations[DISTRIBUTION()][PRODUCT()] = true;
|
705
|
+
_coreContractCombinations[ORACLE()][PRODUCT()] = true;
|
706
|
+
_coreContractCombinations[POOL()][PRODUCT()] = true;
|
697
707
|
|
698
708
|
// objects with component parents
|
699
|
-
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
700
709
|
_coreObjectCombinations[POLICY()][PRODUCT()] = true;
|
710
|
+
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
701
711
|
_coreObjectCombinations[BUNDLE()][POOL()] = true;
|
702
712
|
|
703
713
|
// staking
|
@@ -115,21 +115,6 @@ contract RegistryAdmin is
|
|
115
115
|
address(service));
|
116
116
|
}
|
117
117
|
|
118
|
-
function revokeServiceRole(
|
119
|
-
IService service,
|
120
|
-
ObjectType domain,
|
121
|
-
VersionPart version
|
122
|
-
)
|
123
|
-
external
|
124
|
-
restricted()
|
125
|
-
{
|
126
|
-
_revokeRoleFromAccount(
|
127
|
-
RoleIdLib.roleForTypeAndVersion(
|
128
|
-
domain,
|
129
|
-
version),
|
130
|
-
address(service));
|
131
|
-
}
|
132
|
-
|
133
118
|
function grantServiceRoleForAllVersions(IService service, ObjectType domain)
|
134
119
|
external
|
135
120
|
restricted()
|
@@ -139,13 +124,11 @@ contract RegistryAdmin is
|
|
139
124
|
address(service));
|
140
125
|
}
|
141
126
|
|
142
|
-
function
|
127
|
+
function setServiceLocked(IService service, bool locked)
|
143
128
|
external
|
144
129
|
restricted()
|
145
130
|
{
|
146
|
-
|
147
|
-
RoleIdLib.roleForTypeAndAllVersions(domain),
|
148
|
-
address(service));
|
131
|
+
_setTargetClosed(address(service), locked);
|
149
132
|
}
|
150
133
|
|
151
134
|
/*function transferAdmin(address to)
|
@@ -188,6 +171,8 @@ contract RegistryAdmin is
|
|
188
171
|
true,
|
189
172
|
false);
|
190
173
|
|
174
|
+
_setTargetClosed(address(service), true);
|
175
|
+
|
191
176
|
// create service role
|
192
177
|
RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
|
193
178
|
serviceDomain,
|
@@ -330,12 +315,11 @@ contract RegistryAdmin is
|
|
330
315
|
name: RELEASE_REGISTRY_ROLE_NAME}));
|
331
316
|
|
332
317
|
FunctionInfo[] memory functions;
|
333
|
-
functions = new FunctionInfo[](
|
318
|
+
functions = new FunctionInfo[](4);
|
334
319
|
functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
|
335
320
|
functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
|
336
|
-
functions[2] = toFunction(RegistryAdmin.
|
337
|
-
functions[3] = toFunction(RegistryAdmin.
|
338
|
-
functions[4] = toFunction(RegistryAdmin.revokeServiceRole.selector, "revokeServiceRole");
|
321
|
+
functions[2] = toFunction(RegistryAdmin.grantServiceRole.selector, "grantServiceRole");
|
322
|
+
functions[3] = toFunction(RegistryAdmin.setServiceLocked.selector, "setServiceLocked");
|
339
323
|
_authorizeTargetFunctions(address(this), releaseRegistryRoleId, functions);
|
340
324
|
|
341
325
|
_grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
|
@@ -18,8 +18,6 @@ contract RegistryService is
|
|
18
18
|
Service,
|
19
19
|
IRegistryService
|
20
20
|
{
|
21
|
-
using NftIdLib for NftId;
|
22
|
-
|
23
21
|
// TODO update to real hash when registry is stable
|
24
22
|
bytes32 public constant REGISTRY_CREATION_CODE_HASH = bytes32(0);
|
25
23
|
|
@@ -60,7 +58,7 @@ contract RegistryService is
|
|
60
58
|
function registerInstance(IRegisterable instance, address owner)
|
61
59
|
external
|
62
60
|
virtual
|
63
|
-
restricted
|
61
|
+
restricted()
|
64
62
|
returns(
|
65
63
|
IRegistry.ObjectInfo memory info
|
66
64
|
)
|
@@ -75,29 +73,33 @@ contract RegistryService is
|
|
75
73
|
instance.linkToRegisteredNftId(); // asume safe
|
76
74
|
}
|
77
75
|
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
76
|
+
function registerProduct(
|
77
|
+
IComponent product,
|
78
|
+
address initialOwner
|
79
|
+
)
|
80
|
+
external
|
81
|
+
virtual
|
82
|
+
restricted()
|
83
|
+
returns(
|
84
|
+
IRegistry.ObjectInfo memory info
|
85
|
+
)
|
86
|
+
{
|
87
|
+
if(!product.supportsInterface(type(IProductComponent).interfaceId)) {
|
88
|
+
revert ErrorRegistryServiceNotProduct(address(product));
|
89
|
+
}
|
90
|
+
|
91
|
+
info = _getAndVerifyContractInfo(product, PRODUCT(), initialOwner);
|
92
|
+
info.nftId = getRegistry().register(info);
|
93
|
+
}
|
94
|
+
|
95
|
+
function registerProductLinkedComponent(
|
95
96
|
IComponent component,
|
96
97
|
ObjectType objectType,
|
97
98
|
address initialOwner
|
98
99
|
)
|
99
100
|
external
|
100
|
-
|
101
|
+
virtual
|
102
|
+
restricted()
|
101
103
|
returns(
|
102
104
|
IRegistry.ObjectInfo memory info
|
103
105
|
)
|
@@ -107,43 +109,18 @@ contract RegistryService is
|
|
107
109
|
revert ErrorRegistryServiceNotComponent(address(component));
|
108
110
|
}
|
109
111
|
|
112
|
+
if (!(objectType == DISTRIBUTION() || objectType == ORACLE() || objectType == POOL())) {
|
113
|
+
revert ErrorRegistryServiceNotProductLinkedComponent(address(component));
|
114
|
+
}
|
115
|
+
|
110
116
|
info = _getAndVerifyContractInfo(component, objectType, initialOwner);
|
111
117
|
info.nftId = getRegistry().register(info);
|
112
118
|
}
|
113
119
|
|
114
|
-
// function registerPool(IComponent pool, address owner)
|
115
|
-
// external
|
116
|
-
// restricted
|
117
|
-
// returns(
|
118
|
-
// IRegistry.ObjectInfo memory info
|
119
|
-
// )
|
120
|
-
// {
|
121
|
-
// if(!pool.supportsInterface(type(IPoolComponent).interfaceId)) {
|
122
|
-
// revert ErrorRegistryServiceNotPool(address(pool));
|
123
|
-
// }
|
124
|
-
|
125
|
-
// info = _getAndVerifyContractInfo(pool, POOL(), owner);
|
126
|
-
// info.nftId = getRegistry().register(info);
|
127
|
-
// }
|
128
|
-
|
129
|
-
// function registerDistribution(IComponent distribution, address owner)
|
130
|
-
// external
|
131
|
-
// restricted
|
132
|
-
// returns(
|
133
|
-
// IRegistry.ObjectInfo memory info
|
134
|
-
// )
|
135
|
-
// {
|
136
|
-
// if(!distribution.supportsInterface(type(IDistributionComponent).interfaceId)) {
|
137
|
-
// revert ErrorRegistryServiceNotDistribution(address(distribution));
|
138
|
-
// }
|
139
|
-
|
140
|
-
// info = _getAndVerifyContractInfo(distribution, DISTRIBUTION(), owner);
|
141
|
-
// info.nftId = getRegistry().register(info);
|
142
|
-
// }
|
143
|
-
|
144
120
|
function registerDistributor(IRegistry.ObjectInfo memory info)
|
145
121
|
external
|
146
|
-
|
122
|
+
virtual
|
123
|
+
restricted()
|
147
124
|
returns(NftId nftId)
|
148
125
|
{
|
149
126
|
_verifyObjectInfo(info, DISTRIBUTOR());
|
@@ -152,7 +129,8 @@ contract RegistryService is
|
|
152
129
|
|
153
130
|
function registerPolicy(IRegistry.ObjectInfo memory info)
|
154
131
|
external
|
155
|
-
|
132
|
+
virtual
|
133
|
+
restricted()
|
156
134
|
returns(NftId nftId)
|
157
135
|
{
|
158
136
|
_verifyObjectInfo(info, POLICY());
|
@@ -161,7 +139,8 @@ contract RegistryService is
|
|
161
139
|
|
162
140
|
function registerBundle(IRegistry.ObjectInfo memory info)
|
163
141
|
external
|
164
|
-
|
142
|
+
virtual
|
143
|
+
restricted()
|
165
144
|
returns(NftId nftId)
|
166
145
|
{
|
167
146
|
_verifyObjectInfo(info, BUNDLE());
|
@@ -170,7 +149,8 @@ contract RegistryService is
|
|
170
149
|
|
171
150
|
function registerStake(IRegistry.ObjectInfo memory info)
|
172
151
|
external
|
173
|
-
|
152
|
+
virtual
|
153
|
+
restricted()
|
174
154
|
returns(NftId nftId)
|
175
155
|
{
|
176
156
|
_verifyObjectInfo(info, STAKE());
|
@@ -185,6 +165,7 @@ contract RegistryService is
|
|
185
165
|
address expectedOwner // assume can be 0 when given by other service
|
186
166
|
)
|
187
167
|
internal
|
168
|
+
virtual
|
188
169
|
view
|
189
170
|
returns(
|
190
171
|
IRegistry.ObjectInfo memory info
|
@@ -224,6 +205,7 @@ contract RegistryService is
|
|
224
205
|
ObjectType expectedType
|
225
206
|
)
|
226
207
|
internal
|
208
|
+
virtual
|
227
209
|
view
|
228
210
|
{
|
229
211
|
if(info.objectAddress > address(0)) {
|