@etherisc/gif-next 0.0.2-b3e9a44-364 → 0.0.2-b43fece-589
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 +138 -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 +78 -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 +64 -60
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +65 -58
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +13 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +119 -135
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +114 -22
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +218 -159
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +81 -25
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +140 -96
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +121 -77
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +197 -145
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +508 -177
- 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 +37 -31
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +13 -84
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +46 -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 +94 -79
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +56 -130
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +32 -40
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +174 -103
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- 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/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 +119 -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 +60 -53
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -9
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +73 -53
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +70 -47
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +32 -36
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +73 -81
- 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 +125 -119
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +57 -69
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +32 -15
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +60 -92
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +90 -88
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +73 -92
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +149 -158
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +40 -52
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +50 -32
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +29 -33
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +118 -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 +106 -88
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +56 -60
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +70 -57
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +105 -54
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +13 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +80 -62
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +45 -49
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +133 -115
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +42 -46
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +118 -54
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +44 -26
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +26 -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 +0 -15
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +98 -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 +38 -53
- 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 +129 -61
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +25 -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 +52 -28
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +334 -155
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +67 -63
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +26 -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 +39 -28
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +305 -19
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +60 -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/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 +13 -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 +13 -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 +73 -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/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +50 -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 +26 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +39 -28
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +13 -0
- 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 +122 -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 +52 -42
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +50 -32
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +29 -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/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- 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 +12 -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 +0 -1
- package/contracts/distribution/Distribution.sol +4 -15
- package/contracts/distribution/DistributionService.sol +14 -7
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/examples/fire/FirePool.sol +19 -8
- package/contracts/examples/fire/FireProduct.sol +32 -12
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -2
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -4
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +11 -6
- package/contracts/examples/unpermissioned/SimpleProduct.sol +17 -23
- 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/InstanceService.sol +14 -68
- package/contracts/instance/module/IComponents.sol +7 -4
- 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 +20 -14
- package/contracts/pool/BasicPool.sol +22 -12
- package/contracts/pool/BasicPoolAuthorization.sol +12 -2
- package/contracts/pool/BundleService.sol +63 -39
- package/contracts/pool/IBundleService.sol +2 -5
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +23 -22
- package/contracts/pool/Pool.sol +111 -123
- package/contracts/pool/PoolService.sol +186 -128
- 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 +82 -51
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +6 -0
- package/contracts/product/PolicyService.sol +15 -10
- package/contracts/product/PricingService.sol +7 -7
- package/contracts/product/Product.sol +51 -54
- package/contracts/registry/ChainNft.sol +6 -9
- package/contracts/registry/IRegistry.sol +0 -3
- package/contracts/registry/IRegistryService.sol +6 -4
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +6 -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 +20 -15
- package/contracts/shared/Component.sol +25 -21
- package/contracts/shared/ComponentService.sol +235 -131
- package/contracts/shared/ComponentVerifyingService.sol +22 -14
- 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/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 +8 -4
- package/contracts/shared/Registerable.sol +15 -7
- package/contracts/shared/Service.sol +4 -7
- package/contracts/staking/Staking.sol +2 -3
- package/contracts/staking/StakingService.sol +14 -0
- package/contracts/type/RiskId.sol +1 -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 +1 -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/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
@@ -3,18 +3,21 @@ 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
22
|
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE } from "../type/ObjectType.sol";
|
20
23
|
import {ReferralId} from "../type/Referral.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
|
|
@@ -122,35 +123,18 @@ abstract contract Product is
|
|
122
123
|
view
|
123
124
|
returns (IComponents.ProductInfo memory poolInfo)
|
124
125
|
{
|
125
|
-
|
126
|
-
|
127
|
-
return IComponents.ProductInfo({
|
128
|
-
distributionNftId: $._distributionNftId,
|
129
|
-
poolNftId: $._poolNftId,
|
130
|
-
isProcessingFundedClaims: false,
|
131
|
-
productFee: FeeLib.zero(),
|
132
|
-
processingFee: FeeLib.zero(),
|
133
|
-
distributionFee: FeeLib.zero(),
|
134
|
-
minDistributionOwnerFee: FeeLib.zero(),
|
135
|
-
poolFee: FeeLib.zero(),
|
136
|
-
stakingFee: FeeLib.zero(),
|
137
|
-
performanceFee: FeeLib.zero()
|
138
|
-
});
|
126
|
+
return _getProductStorage()._productInfo;
|
139
127
|
}
|
140
128
|
|
141
129
|
|
142
130
|
function _initializeProduct(
|
143
131
|
address registry,
|
144
132
|
NftId instanceNftId,
|
145
|
-
IAuthorization authorization,
|
146
|
-
address initialOwner,
|
147
133
|
string memory name,
|
148
134
|
address token,
|
149
|
-
|
150
|
-
|
151
|
-
address
|
152
|
-
// add NftId [] oracleNftIds (#527)
|
153
|
-
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,
|
154
138
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
155
139
|
)
|
156
140
|
internal
|
@@ -164,24 +148,18 @@ abstract contract Product is
|
|
164
148
|
token,
|
165
149
|
PRODUCT(),
|
166
150
|
authorization,
|
167
|
-
|
151
|
+
productInfo.isInterceptingPolicyTransfers,
|
168
152
|
initialOwner,
|
169
|
-
registryData,
|
170
153
|
componentData);
|
171
154
|
|
172
155
|
ProductStorage storage $ = _getProductStorage();
|
173
|
-
|
174
|
-
// TODO refactor to go via registry for all components linked to this product (#527)
|
156
|
+
$._productInfo = productInfo;
|
175
157
|
$._riskService = IRiskService(_getServiceAddress(PRODUCT()));
|
176
158
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
177
159
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
178
160
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
179
161
|
$._pricingService = IPricingService(_getServiceAddress(PRICE()));
|
180
162
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
181
|
-
$._pool = Pool(pool);
|
182
|
-
$._distribution = Distribution(distribution);
|
183
|
-
$._poolNftId = getRegistry().getNftIdForAddress(pool);
|
184
|
-
$._distributionNftId = getRegistry().getNftIdForAddress(distribution);
|
185
163
|
|
186
164
|
_registerInterface(type(IProductComponent).interfaceId);
|
187
165
|
}
|
@@ -201,8 +179,11 @@ abstract contract Product is
|
|
201
179
|
function _createRisk(
|
202
180
|
RiskId id,
|
203
181
|
bytes memory data
|
204
|
-
)
|
205
|
-
|
182
|
+
)
|
183
|
+
internal
|
184
|
+
virtual
|
185
|
+
{
|
186
|
+
_getProductStorage()._riskService.createRisk(
|
206
187
|
id,
|
207
188
|
data
|
208
189
|
);
|
@@ -211,8 +192,11 @@ abstract contract Product is
|
|
211
192
|
function _updateRisk(
|
212
193
|
RiskId id,
|
213
194
|
bytes memory data
|
214
|
-
)
|
215
|
-
|
195
|
+
)
|
196
|
+
internal
|
197
|
+
virtual
|
198
|
+
{
|
199
|
+
_getProductStorage()._riskService.updateRisk(
|
216
200
|
id,
|
217
201
|
data
|
218
202
|
);
|
@@ -221,15 +205,18 @@ abstract contract Product is
|
|
221
205
|
function _updateRiskState(
|
222
206
|
RiskId id,
|
223
207
|
StateId state
|
224
|
-
)
|
225
|
-
|
208
|
+
)
|
209
|
+
internal
|
210
|
+
virtual
|
211
|
+
{
|
212
|
+
_getProductStorage()._riskService.updateRiskState(
|
226
213
|
id,
|
227
214
|
state
|
228
215
|
);
|
229
216
|
}
|
230
217
|
|
231
218
|
|
232
|
-
function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
|
219
|
+
function _getRiskInfo(RiskId id) internal virtual view returns (IRisk.RiskInfo memory info) {
|
233
220
|
return getInstance().getInstanceReader().getRiskInfo(id);
|
234
221
|
}
|
235
222
|
|
@@ -245,6 +232,7 @@ abstract contract Product is
|
|
245
232
|
bytes memory applicationData
|
246
233
|
)
|
247
234
|
internal
|
235
|
+
virtual
|
248
236
|
returns (NftId applicationNftId)
|
249
237
|
{
|
250
238
|
return _getProductStorage()._applicationService.create(
|
@@ -264,6 +252,7 @@ abstract contract Product is
|
|
264
252
|
Timestamp activateAt
|
265
253
|
)
|
266
254
|
internal
|
255
|
+
virtual
|
267
256
|
{
|
268
257
|
_getProductStorage()._policyService.createPolicy(
|
269
258
|
applicationNftId,
|
@@ -274,6 +263,7 @@ abstract contract Product is
|
|
274
263
|
NftId policyNftId
|
275
264
|
)
|
276
265
|
internal
|
266
|
+
virtual
|
277
267
|
{
|
278
268
|
_getProductStorage()._policyService.decline(
|
279
269
|
policyNftId);
|
@@ -284,6 +274,7 @@ abstract contract Product is
|
|
284
274
|
Timestamp expireAt
|
285
275
|
)
|
286
276
|
internal
|
277
|
+
virtual
|
287
278
|
returns (Timestamp expiredAt)
|
288
279
|
{
|
289
280
|
expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
|
@@ -294,6 +285,7 @@ abstract contract Product is
|
|
294
285
|
Timestamp activateAt
|
295
286
|
)
|
296
287
|
internal
|
288
|
+
virtual
|
297
289
|
{
|
298
290
|
_getProductStorage()._policyService.collectPremium(
|
299
291
|
policyNftId,
|
@@ -305,6 +297,7 @@ abstract contract Product is
|
|
305
297
|
Timestamp activateAt
|
306
298
|
)
|
307
299
|
internal
|
300
|
+
virtual
|
308
301
|
{
|
309
302
|
_getProductStorage()._policyService.activate(
|
310
303
|
policyNftId,
|
@@ -315,6 +308,7 @@ abstract contract Product is
|
|
315
308
|
NftId policyNftId
|
316
309
|
)
|
317
310
|
internal
|
311
|
+
virtual
|
318
312
|
{
|
319
313
|
_getProductStorage()._policyService.close(
|
320
314
|
policyNftId);
|
@@ -326,6 +320,7 @@ abstract contract Product is
|
|
326
320
|
bytes memory claimData
|
327
321
|
)
|
328
322
|
internal
|
323
|
+
virtual
|
329
324
|
returns(ClaimId)
|
330
325
|
{
|
331
326
|
return _getProductStorage()._claimService.submit(
|
@@ -341,6 +336,7 @@ abstract contract Product is
|
|
341
336
|
bytes memory data
|
342
337
|
)
|
343
338
|
internal
|
339
|
+
virtual
|
344
340
|
{
|
345
341
|
_getProductStorage()._claimService.confirm(
|
346
342
|
policyNftId,
|
@@ -355,6 +351,7 @@ abstract contract Product is
|
|
355
351
|
bytes memory data
|
356
352
|
)
|
357
353
|
internal
|
354
|
+
virtual
|
358
355
|
{
|
359
356
|
_getProductStorage()._claimService.decline(
|
360
357
|
policyNftId,
|
@@ -367,6 +364,7 @@ abstract contract Product is
|
|
367
364
|
ClaimId claimId
|
368
365
|
)
|
369
366
|
internal
|
367
|
+
virtual
|
370
368
|
{
|
371
369
|
_getProductStorage()._claimService.close(
|
372
370
|
policyNftId,
|
@@ -380,6 +378,7 @@ abstract contract Product is
|
|
380
378
|
bytes memory data
|
381
379
|
)
|
382
380
|
internal
|
381
|
+
virtual
|
383
382
|
returns (PayoutId)
|
384
383
|
{
|
385
384
|
return _getProductStorage()._claimService.createPayout(
|
@@ -397,6 +396,7 @@ abstract contract Product is
|
|
397
396
|
bytes memory data
|
398
397
|
)
|
399
398
|
internal
|
399
|
+
virtual
|
400
400
|
returns (PayoutId)
|
401
401
|
{
|
402
402
|
return _getProductStorage()._claimService.createPayoutForBeneficiary(
|
@@ -412,23 +412,20 @@ abstract contract Product is
|
|
412
412
|
PayoutId payoutId
|
413
413
|
)
|
414
414
|
internal
|
415
|
+
virtual
|
415
416
|
{
|
416
417
|
_getProductStorage()._claimService.processPayout(
|
417
418
|
policyNftId,
|
418
419
|
payoutId);
|
419
420
|
}
|
420
421
|
|
421
|
-
function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
|
422
|
+
function _toRiskId(string memory riskName) internal virtual pure returns (RiskId riskId) {
|
422
423
|
return RiskIdLib.toRiskId(riskName);
|
423
424
|
}
|
424
425
|
|
425
|
-
function _getProductStorage() internal pure returns (ProductStorage storage $) {
|
426
|
+
function _getProductStorage() internal virtual pure returns (ProductStorage storage $) {
|
426
427
|
assembly {
|
427
428
|
$.slot := PRODUCT_STORAGE_LOCATION_V1
|
428
429
|
}
|
429
430
|
}
|
430
|
-
|
431
|
-
function _getRiskService() internal view returns (IRiskService) {
|
432
|
-
return _getProductStorage()._riskService;
|
433
|
-
}
|
434
431
|
}
|
@@ -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
|
}
|
@@ -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
|
}
|
@@ -699,13 +699,15 @@ contract Registry is
|
|
699
699
|
|
700
700
|
// components with instance parent
|
701
701
|
_coreContractCombinations[PRODUCT()][INSTANCE()] = true;
|
702
|
-
|
703
|
-
|
704
|
-
_coreContractCombinations[
|
702
|
+
|
703
|
+
// components with product parent
|
704
|
+
_coreContractCombinations[DISTRIBUTION()][PRODUCT()] = true;
|
705
|
+
_coreContractCombinations[ORACLE()][PRODUCT()] = true;
|
706
|
+
_coreContractCombinations[POOL()][PRODUCT()] = true;
|
705
707
|
|
706
708
|
// objects with component parents
|
707
|
-
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
708
709
|
_coreObjectCombinations[POLICY()][PRODUCT()] = true;
|
710
|
+
_coreObjectCombinations[DISTRIBUTOR()][DISTRIBUTION()] = true;
|
709
711
|
_coreObjectCombinations[BUNDLE()][POOL()] = true;
|
710
712
|
|
711
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)) {
|
@@ -2,7 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {RELEASE} from "../type/ObjectType.sol";
|
5
|
-
import {SCHEDULED, DEPLOYING, ACTIVE, PAUSED, CLOSED
|
5
|
+
import {SCHEDULED, DEPLOYING, DEPLOYED, SKIPPED, ACTIVE, PAUSED, CLOSED} from "../type/StateId.sol";
|
6
6
|
import {Lifecycle} from "../shared/Lifecycle.sol";
|
7
7
|
|
8
8
|
contract ReleaseLifecycle is
|
@@ -18,9 +18,12 @@ contract ReleaseLifecycle is
|
|
18
18
|
{
|
19
19
|
setInitialState(RELEASE(), SCHEDULED());
|
20
20
|
|
21
|
+
setStateTransition(RELEASE(), SCHEDULED(), SKIPPED());
|
21
22
|
setStateTransition(RELEASE(), SCHEDULED(), DEPLOYING());
|
22
|
-
setStateTransition(RELEASE(), DEPLOYING(),
|
23
|
-
setStateTransition(RELEASE(), DEPLOYING(),
|
23
|
+
setStateTransition(RELEASE(), DEPLOYING(), SKIPPED());
|
24
|
+
setStateTransition(RELEASE(), DEPLOYING(), DEPLOYED());
|
25
|
+
setStateTransition(RELEASE(), DEPLOYED(), SKIPPED());
|
26
|
+
setStateTransition(RELEASE(), DEPLOYED(), ACTIVE());
|
24
27
|
setStateTransition(RELEASE(), ACTIVE(), PAUSED());
|
25
28
|
setStateTransition(RELEASE(), PAUSED(), ACTIVE());
|
26
29
|
}
|