@etherisc/gif-next 3.0.0-9a6ca4b-922 → 3.0.0-a511887-523
Sign up to get free protection for your applications and to get access to all the features.
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +168 -53
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +154 -63
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +107 -20
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +114 -59
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +96 -96
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +20 -65
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +31 -55
- 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 +45 -3
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +18 -42
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +158 -67
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +41 -65
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +112 -49
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +227 -112
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +184 -93
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +124 -48
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +106 -19
- 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 +187 -76
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +41 -65
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +224 -113
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +41 -65
- 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 +193 -74
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +41 -65
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +192 -73
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +200 -81
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +41 -65
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +200 -81
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +41 -65
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
- 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/IBaseStore.sol/IBaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +117 -17
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +118 -31
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +180 -33
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +192 -146
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +43 -67
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2 -2
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +167 -56
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +148 -59
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
- 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 +158 -67
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +41 -65
- 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 +128 -52
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +113 -26
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +116 -53
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +184 -69
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +159 -68
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +119 -56
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +41 -65
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +199 -84
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +171 -80
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +106 -19
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +131 -55
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +113 -26
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +119 -56
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +25 -20
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +210 -95
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +172 -81
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +165 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +153 -62
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +112 -49
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +41 -65
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +211 -96
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +176 -85
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +106 -19
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +106 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +113 -26
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +113 -26
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +124 -48
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +106 -19
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +204 -89
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +169 -78
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +186 -71
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +160 -69
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +112 -49
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +161 -46
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +151 -60
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +155 -56
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +219 -185
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +1 -15
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +314 -96
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +192 -142
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +57 -77
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +302 -213
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +162 -55
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +192 -146
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +173 -144
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +32 -56
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +46 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +124 -31
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +198 -298
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +166 -91
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +24 -44
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +136 -30
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +113 -209
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +124 -48
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +44 -2
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +44 -2
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +117 -17
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +44 -2
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +106 -19
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +74 -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 +112 -49
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +46 -4
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +46 -4
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +116 -16
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +46 -4
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +105 -18
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +42 -29
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +30 -17
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +34 -34
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +74 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +132 -39
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +106 -19
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +195 -86
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +156 -71
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +46 -4
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +157 -42
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +149 -58
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +274 -200
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -2
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +16 -16
- 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/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +4 -4
- 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 +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +4 -4
- 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/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.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/VersionLib.json +10 -10
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +19 -6
- package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{IVersionable.sol/IVersionable.json → IUpgradeable.sol/IUpgradeable.json} +54 -4
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +109 -40
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/{Versionable.sol/Versionable.json → Upgradeable.sol/Upgradeable.json} +54 -4
- package/contracts/accounting/AccountingService.sol +2 -2
- package/contracts/accounting/AccountingServiceManager.sol +3 -3
- package/contracts/accounting/IAccountingService.sol +1 -1
- package/contracts/authorization/AccessAdmin.sol +19 -16
- package/contracts/authorization/AccessManagerCloneable.sol +24 -48
- package/contracts/authorization/Authorization.sol +2 -2
- package/contracts/authorization/IAccessAdmin.sol +2 -3
- package/contracts/authorization/IServiceAuthorization.sol +1 -1
- package/contracts/authorization/ServiceAuthorization.sol +4 -4
- package/contracts/distribution/BasicDistributionAuthorization.sol +5 -4
- package/contracts/distribution/DistributionService.sol +11 -8
- package/contracts/distribution/DistributionServiceManager.sol +3 -3
- package/contracts/instance/Instance.sol +2 -5
- package/contracts/instance/InstanceAdmin.sol +9 -14
- package/contracts/instance/InstanceAuthorizationV3.sol +4 -2
- package/contracts/instance/InstanceService.sol +4 -4
- package/contracts/instance/InstanceServiceManager.sol +3 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -1
- package/contracts/oracle/Oracle.sol +3 -2
- package/contracts/oracle/OracleService.sol +1 -1
- package/contracts/oracle/OracleServiceManager.sol +3 -3
- package/contracts/pool/BasicPoolAuthorization.sol +5 -4
- package/contracts/pool/BundleService.sol +5 -5
- package/contracts/pool/BundleServiceManager.sol +3 -3
- package/contracts/pool/PoolLib.sol +7 -4
- package/contracts/pool/PoolService.sol +3 -3
- package/contracts/pool/PoolServiceManager.sol +3 -3
- package/contracts/product/ApplicationService.sol +4 -5
- package/contracts/product/ApplicationServiceManager.sol +3 -3
- package/contracts/product/BasicProductAuthorization.sol +5 -4
- package/contracts/product/ClaimService.sol +1 -1
- package/contracts/product/ClaimServiceManager.sol +3 -3
- package/contracts/product/PolicyService.sol +1 -1
- package/contracts/product/PolicyServiceManager.sol +3 -3
- package/contracts/product/PricingService.sol +1 -1
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/RiskService.sol +1 -1
- package/contracts/product/RiskServiceManager.sol +3 -3
- package/contracts/registry/IRegistry.sol +20 -14
- package/contracts/registry/IRegistryService.sol +10 -14
- package/contracts/registry/IRelease.sol +0 -3
- package/contracts/registry/Registry.sol +124 -78
- package/contracts/registry/RegistryAdmin.sol +9 -15
- package/contracts/registry/RegistryAuthorization.sol +2 -1
- package/contracts/registry/RegistryService.sol +96 -78
- package/contracts/registry/RegistryServiceManager.sol +3 -3
- package/contracts/registry/ReleaseAdmin.sol +14 -12
- package/contracts/registry/ReleaseRegistry.sol +52 -50
- package/contracts/registry/ServiceAuthorizationV3.sol +4 -3
- package/contracts/shared/Component.sol +24 -17
- package/contracts/shared/ComponentService.sol +28 -101
- package/contracts/shared/ComponentServiceManager.sol +3 -3
- package/contracts/shared/IComponent.sol +5 -3
- package/contracts/shared/IComponentService.sol +0 -14
- package/contracts/shared/IInstanceLinkedComponent.sol +4 -7
- package/contracts/shared/IRegisterable.sol +8 -3
- package/contracts/shared/IRegistryLinked.sol +3 -1
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/IVersionable.sol +19 -0
- package/contracts/shared/InstanceLinkedComponent.sol +33 -78
- package/contracts/shared/NftOwnable.sol +1 -14
- package/contracts/shared/PolicyHolder.sol +2 -2
- package/contracts/shared/Registerable.sol +36 -18
- package/contracts/shared/RegistryLinked.sol +11 -4
- package/contracts/shared/Service.sol +6 -5
- package/contracts/shared/TokenHandler.sol +4 -1
- package/contracts/shared/Versionable.sol +47 -0
- package/contracts/staking/IStaking.sol +2 -2
- package/contracts/staking/Staking.sol +7 -17
- package/contracts/staking/StakingManager.sol +3 -3
- package/contracts/staking/StakingService.sol +10 -7
- package/contracts/staking/StakingServiceManager.sol +3 -4
- package/contracts/staking/StakingStore.sol +10 -8
- package/contracts/type/Version.sol +15 -16
- package/contracts/upgradeability/{IVersionable.sol → IUpgradeable.sol} +13 -19
- package/contracts/upgradeability/ProxyManager.sol +46 -50
- package/contracts/upgradeability/{Versionable.sol → Upgradeable.sol} +25 -14
- package/package.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +0 -4
@@ -12,7 +12,7 @@ import {NftId} from "../type/NftId.sol";
|
|
12
12
|
import {ObjectType, COMPONENT} from "../type/ObjectType.sol";
|
13
13
|
import {Registerable} from "../shared/Registerable.sol";
|
14
14
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
15
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
15
|
+
import {Version, VersionPart, VersionLib} from "../type/Version.sol";
|
16
16
|
|
17
17
|
|
18
18
|
abstract contract Component is
|
@@ -23,9 +23,12 @@ abstract contract Component is
|
|
23
23
|
bytes32 public constant COMPONENT_LOCATION_V1 = 0xffe8d4462baed26a47154f4b8f6db497d2f772496965791d25bd456e342b7f00;
|
24
24
|
|
25
25
|
struct ComponentStorage {
|
26
|
-
|
27
|
-
bool _isInterceptor;
|
26
|
+
// slot 0
|
28
27
|
IComponentService _componentService;
|
28
|
+
// slot 1
|
29
|
+
string _name; // unique (per instance) component name -> make pure to save gas?
|
30
|
+
// slot 2
|
31
|
+
bytes _data;
|
29
32
|
}
|
30
33
|
|
31
34
|
|
@@ -44,7 +47,7 @@ abstract contract Component is
|
|
44
47
|
}
|
45
48
|
}
|
46
49
|
|
47
|
-
|
50
|
+
/// @dev requires component parent to be registered
|
48
51
|
function __Component_init(
|
49
52
|
address authority,
|
50
53
|
address registry,
|
@@ -75,7 +78,6 @@ abstract contract Component is
|
|
75
78
|
// set component state
|
76
79
|
ComponentStorage storage $ = _getComponentStorage();
|
77
80
|
$._name = name;
|
78
|
-
$._isInterceptor = isInterceptor;
|
79
81
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
80
82
|
|
81
83
|
_registerInterface(type(IAccessManaged).interfaceId);
|
@@ -93,6 +95,17 @@ abstract contract Component is
|
|
93
95
|
_nftTransferFrom(from, to, tokenId, operator);
|
94
96
|
}
|
95
97
|
|
98
|
+
/// @inheritdoc IComponent
|
99
|
+
function withdrawFees(Amount amount)
|
100
|
+
external
|
101
|
+
virtual
|
102
|
+
restricted()
|
103
|
+
onlyOwner()
|
104
|
+
returns (Amount withdrawnAmount)
|
105
|
+
{
|
106
|
+
return _withdrawFees(amount);
|
107
|
+
}
|
108
|
+
|
96
109
|
|
97
110
|
function getWallet() public view virtual returns (address walletAddress) {
|
98
111
|
return getTokenHandler().getWallet();
|
@@ -110,10 +123,6 @@ abstract contract Component is
|
|
110
123
|
return getComponentInfo().name;
|
111
124
|
}
|
112
125
|
|
113
|
-
function getVersion() public view virtual returns (Version version) {
|
114
|
-
return VersionLib.toVersion(1, 0, 0);
|
115
|
-
}
|
116
|
-
|
117
126
|
function getComponentInfo() public virtual view returns (IComponents.ComponentInfo memory info) {
|
118
127
|
if (isRegistered()) {
|
119
128
|
return _getComponentInfo();
|
@@ -129,14 +138,6 @@ abstract contract Component is
|
|
129
138
|
}
|
130
139
|
|
131
140
|
|
132
|
-
function isNftInterceptor() public virtual view returns(bool isInterceptor) {
|
133
|
-
if (isRegistered()) {
|
134
|
-
return getRegistry().getObjectInfo(address(this)).isInterceptor;
|
135
|
-
} else {
|
136
|
-
return _getComponentStorage()._isInterceptor;
|
137
|
-
}
|
138
|
-
}
|
139
|
-
|
140
141
|
|
141
142
|
function isRegistered() public virtual view returns (bool) {
|
142
143
|
return getRegistry().getNftIdForAddress(address(this)).gtz();
|
@@ -170,6 +171,12 @@ abstract contract Component is
|
|
170
171
|
// empty default implementation
|
171
172
|
}
|
172
173
|
|
174
|
+
function _withdrawFees(Amount amount)
|
175
|
+
internal
|
176
|
+
returns (Amount withdrawnAmount)
|
177
|
+
{
|
178
|
+
return _getComponentStorage()._componentService.withdrawFees(amount);
|
179
|
+
}
|
173
180
|
|
174
181
|
/// @dev Sets the components wallet to the specified address.
|
175
182
|
/// Depending on the source of the component information this function needs to be overwritten.
|
@@ -49,7 +49,7 @@ contract ComponentService is
|
|
49
49
|
)
|
50
50
|
internal
|
51
51
|
virtual override
|
52
|
-
|
52
|
+
onlyInitializing()
|
53
53
|
{
|
54
54
|
(
|
55
55
|
address authority,
|
@@ -74,26 +74,21 @@ contract ComponentService is
|
|
74
74
|
restricted()
|
75
75
|
returns (NftId componentNftId)
|
76
76
|
{
|
77
|
-
// checks
|
78
77
|
// check sender is registered product
|
79
78
|
IRegistry registry = getRegistry();
|
80
|
-
if (!registry.isObjectType(msg.sender, PRODUCT())) {
|
79
|
+
if (!registry.isObjectType(msg.sender, PRODUCT(), getRelease())) {
|
81
80
|
revert ErrorComponentServiceCallerNotProduct(msg.sender);
|
82
81
|
}
|
83
82
|
|
84
|
-
// check provided address is product contract
|
85
|
-
if (!_isInstanceLinkedComponent(componentAddress)) {
|
86
|
-
revert ErrorComponentServiceNotComponent(componentAddress);
|
87
|
-
}
|
88
|
-
|
89
83
|
NftId productNftId = registry.getNftIdForAddress(msg.sender);
|
90
84
|
IInstance instance = IInstance(
|
91
85
|
registry.getObjectAddress(
|
92
86
|
registry.getParentNftId(productNftId)));
|
93
87
|
|
94
|
-
componentNftId =
|
88
|
+
componentNftId = _register(
|
95
89
|
instance,
|
96
|
-
componentAddress,
|
90
|
+
componentAddress,
|
91
|
+
COMPONENT(),
|
97
92
|
productNftId, // product is parent of component to be registered
|
98
93
|
address(0)); // token will be inhereited from product
|
99
94
|
}
|
@@ -210,23 +205,18 @@ contract ComponentService is
|
|
210
205
|
nonReentrant()
|
211
206
|
returns (NftId productNftId)
|
212
207
|
{
|
213
|
-
// checks
|
214
208
|
// check sender is registered instance
|
215
209
|
IRegistry registry = getRegistry();
|
216
|
-
if (!registry.isObjectType(msg.sender, INSTANCE())) {
|
210
|
+
if (!registry.isObjectType(msg.sender, INSTANCE(), getRelease())) {
|
217
211
|
revert ErrorComponentServiceCallerNotInstance(msg.sender);
|
218
212
|
}
|
219
213
|
|
220
|
-
// check provided address is product contract
|
221
|
-
if (!_isProduct(productAddress)) {
|
222
|
-
revert ErrorComponentServiceNotProduct(productAddress);
|
223
|
-
}
|
224
|
-
|
225
214
|
IInstance instance = IInstance(msg.sender);
|
226
215
|
NftId instanceNftId = registry.getNftIdForAddress(msg.sender);
|
227
|
-
productNftId =
|
216
|
+
productNftId = _register(
|
228
217
|
instance,
|
229
218
|
productAddress,
|
219
|
+
PRODUCT(),
|
230
220
|
instanceNftId, // instance is parent of product to be registered
|
231
221
|
token);
|
232
222
|
|
@@ -236,25 +226,6 @@ contract ComponentService is
|
|
236
226
|
token);
|
237
227
|
}
|
238
228
|
|
239
|
-
|
240
|
-
function _isProduct(address target) internal view virtual returns (bool) {
|
241
|
-
if (!_isInstanceLinkedComponent(target)) {
|
242
|
-
return false;
|
243
|
-
}
|
244
|
-
|
245
|
-
return IInstanceLinkedComponent(target).getInitialInfo().objectType == PRODUCT();
|
246
|
-
}
|
247
|
-
|
248
|
-
|
249
|
-
function _isInstanceLinkedComponent(address target) internal view virtual returns (bool) {
|
250
|
-
if (!ContractLib.isContract(target)) {
|
251
|
-
return false;
|
252
|
-
}
|
253
|
-
|
254
|
-
return ContractLib.supportsInterface(target, type(IInstanceLinkedComponent).interfaceId);
|
255
|
-
}
|
256
|
-
|
257
|
-
|
258
229
|
/// @inheritdoc IComponentService
|
259
230
|
function setProductFees(
|
260
231
|
Fee memory productFee, // product fee on net premium
|
@@ -478,9 +449,10 @@ contract ComponentService is
|
|
478
449
|
|
479
450
|
/// @dev Registers the component represented by the provided address.
|
480
451
|
/// The caller must ensure componentAddress is IInstanceLinkedComponent.
|
481
|
-
function
|
452
|
+
function _register(
|
482
453
|
IInstance instance,
|
483
454
|
address componentAddress,
|
455
|
+
ObjectType componentType,
|
484
456
|
NftId parentNftId,
|
485
457
|
address token
|
486
458
|
)
|
@@ -488,36 +460,27 @@ contract ComponentService is
|
|
488
460
|
virtual
|
489
461
|
returns (NftId componentNftId)
|
490
462
|
{
|
491
|
-
(
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
463
|
+
IInstanceLinkedComponent component = IInstanceLinkedComponent(componentAddress);
|
464
|
+
IRegistry.ObjectInfo memory info = _registryService.registerComponent(
|
465
|
+
component,
|
466
|
+
parentNftId,
|
467
|
+
componentType,
|
468
|
+
address(0)); // component owner have no importance here
|
469
|
+
|
470
|
+
componentType = info.objectType;
|
471
|
+
componentNftId = info.nftId;
|
497
472
|
|
498
473
|
InstanceStore instanceStore = instance.getInstanceStore();
|
499
|
-
|
474
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
500
475
|
|
501
476
|
if(componentType == PRODUCT()) {
|
502
|
-
// register product with registry
|
503
|
-
componentNftId = _registryService.registerProduct(
|
504
|
-
component,
|
505
|
-
objectInfo.initialOwner).nftId;
|
506
|
-
|
507
477
|
// create product info in instance store
|
508
478
|
_createProduct(instance.getProductStore(), componentNftId, componentAddress);
|
509
479
|
} else {
|
510
|
-
// register non product component with registry
|
511
|
-
componentNftId = _registryService.registerProductLinkedComponent(
|
512
|
-
component,
|
513
|
-
objectInfo.objectType,
|
514
|
-
objectInfo.initialOwner).nftId;
|
515
|
-
|
516
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
517
|
-
|
518
480
|
// create non product component info in instance store
|
519
|
-
NftId productNftId = parentNftId;
|
481
|
+
NftId productNftId = info.parentNftId;
|
520
482
|
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
483
|
+
|
521
484
|
if(componentType == POOL()) {
|
522
485
|
_createPool(instanceStore, instance.getProductStore(), productNftId, componentNftId, componentAddress, productInfo);
|
523
486
|
} else if(componentType == DISTRIBUTION()) {
|
@@ -529,7 +492,7 @@ contract ComponentService is
|
|
529
492
|
}
|
530
493
|
|
531
494
|
// get product's token
|
532
|
-
token = address(instanceReader.
|
495
|
+
token = address(instanceReader.getToken(productNftId));
|
533
496
|
}
|
534
497
|
|
535
498
|
_checkToken(instance, token);
|
@@ -537,10 +500,11 @@ contract ComponentService is
|
|
537
500
|
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
538
501
|
|
539
502
|
// deploy and wire token handler
|
503
|
+
IRegistry registry = getRegistry();
|
540
504
|
IComponents.ComponentInfo memory componentInfo = component.getInitialComponentInfo();
|
541
505
|
componentInfo.tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
|
542
|
-
address(
|
543
|
-
|
506
|
+
address(registry),
|
507
|
+
componentAddress, // initially, component is its own wallet
|
544
508
|
token,
|
545
509
|
instanceAdmin.authority());
|
546
510
|
|
@@ -559,9 +523,9 @@ contract ComponentService is
|
|
559
523
|
instance.getNftId(),
|
560
524
|
componentNftId,
|
561
525
|
componentType,
|
562
|
-
|
526
|
+
componentAddress,
|
563
527
|
token,
|
564
|
-
|
528
|
+
registry.ownerOf(componentNftId));
|
565
529
|
}
|
566
530
|
|
567
531
|
|
@@ -613,43 +577,6 @@ contract ComponentService is
|
|
613
577
|
info = instanceReader.getFeeInfo(productNftId);
|
614
578
|
}
|
615
579
|
|
616
|
-
|
617
|
-
/// @dev Based on the provided component address required type the component
|
618
|
-
/// and related instance contract this function reverts iff:
|
619
|
-
/// - the component parent does not match with the required parent
|
620
|
-
/// - the component release does not match with the service release
|
621
|
-
/// - the component has already been registered
|
622
|
-
function _getAndVerifyRegisterableComponent(
|
623
|
-
address componentAddress,
|
624
|
-
NftId requiredParent
|
625
|
-
)
|
626
|
-
internal
|
627
|
-
view
|
628
|
-
returns (
|
629
|
-
IInstanceLinkedComponent component,
|
630
|
-
IRegistry.ObjectInfo memory info
|
631
|
-
)
|
632
|
-
{
|
633
|
-
component = IInstanceLinkedComponent(componentAddress);
|
634
|
-
info = component.getInitialInfo();
|
635
|
-
|
636
|
-
// check component parent
|
637
|
-
if(info.parentNftId != requiredParent) {
|
638
|
-
revert ErrorComponentServiceComponentParentInvalid(componentAddress, requiredParent, info.parentNftId);
|
639
|
-
}
|
640
|
-
|
641
|
-
// check component release (must match with service release)
|
642
|
-
if(component.getRelease() != getRelease()) {
|
643
|
-
revert ErrorComponentServiceComponentReleaseMismatch(componentAddress, getRelease(), component.getRelease());
|
644
|
-
}
|
645
|
-
|
646
|
-
// check component has not already been registered
|
647
|
-
if (getRegistry().getNftIdForAddress(componentAddress).gtz()) {
|
648
|
-
revert ErrorComponentServiceComponentAlreadyRegistered(componentAddress);
|
649
|
-
}
|
650
|
-
}
|
651
|
-
|
652
|
-
|
653
580
|
function _setLocked(InstanceAdmin instanceAdmin, address componentAddress, bool locked) internal {
|
654
581
|
instanceAdmin.setTargetLocked(componentAddress, locked);
|
655
582
|
}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {ComponentService} from "./ComponentService.sol";
|
5
|
-
import {
|
5
|
+
import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
|
6
6
|
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
7
7
|
|
8
8
|
contract ComponentServiceManager is ProxyManager {
|
@@ -18,13 +18,13 @@ contract ComponentServiceManager is ProxyManager {
|
|
18
18
|
{
|
19
19
|
ComponentService svc = new ComponentService();
|
20
20
|
bytes memory data = abi.encode(authority, registry);
|
21
|
-
|
21
|
+
IUpgradeable upgradeable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|
24
24
|
data,
|
25
25
|
salt);
|
26
26
|
|
27
|
-
_componentService = ComponentService(address(
|
27
|
+
_componentService = ComponentService(address(upgradeable));
|
28
28
|
}
|
29
29
|
|
30
30
|
//--- view functions ----------------------------------------------------//
|
@@ -29,6 +29,11 @@ interface IComponent is
|
|
29
29
|
event LogComponentWalletTokensTransferred(address from, address to, uint256 amount);
|
30
30
|
event LogComponentTokenHandlerApproved(address tokenHandler, address token, Amount limit, bool isMaxAmount);
|
31
31
|
|
32
|
+
/// @dev Withdraw fees from the distribution component. Only component owner is allowed to withdraw fees.
|
33
|
+
/// @param amount the amount to withdraw
|
34
|
+
/// @return withdrawnAmount the amount that was actually withdrawn
|
35
|
+
function withdrawFees(Amount amount) external returns (Amount withdrawnAmount);
|
36
|
+
|
32
37
|
/// @dev returns the name of this component
|
33
38
|
/// to successfully register the component with an instance the name MUST be unique in the linked instance
|
34
39
|
function getName() external view returns (string memory name);
|
@@ -43,9 +48,6 @@ interface IComponent is
|
|
43
48
|
/// the default address is the token handler address
|
44
49
|
function getWallet() external view returns (address walletAddress);
|
45
50
|
|
46
|
-
/// @dev returns true iff this compoent intercepts nft minting and transfers for objects registered by this component
|
47
|
-
function isNftInterceptor() external view returns(bool isInterceptor);
|
48
|
-
|
49
51
|
/// @dev returns true iff this component is registered with the registry
|
50
52
|
function isRegistered() external view returns (bool);
|
51
53
|
|
@@ -18,18 +18,11 @@ interface IComponentService is
|
|
18
18
|
{
|
19
19
|
// registerProduct
|
20
20
|
error ErrorComponentServiceCallerNotInstance(address caller);
|
21
|
-
error ErrorComponentServiceNotProduct(address product);
|
22
21
|
error ErrorComponentServiceTokenInvalid(address token);
|
23
22
|
|
24
23
|
// registerComponent
|
25
24
|
error ErrorComponentServiceCallerNotProduct(address caller);
|
26
|
-
error ErrorComponentServiceNotComponent(address component);
|
27
|
-
|
28
|
-
error ErrorComponentServiceNotInstanceLinkedComponent(address component);
|
29
25
|
error ErrorComponentServiceComponentTypeNotSupported(address component, ObjectType invalid);
|
30
|
-
error ErrorComponentServiceComponentParentInvalid(address component, NftId required, NftId actual);
|
31
|
-
error ErrorComponentServiceComponentReleaseMismatch(address component, VersionPart serviceRelease, VersionPart componentRelease);
|
32
|
-
error ErrorComponentServiceComponentAlreadyRegistered(address component);
|
33
26
|
|
34
27
|
error ErrorProductServiceNoDistributionExpected(NftId productNftId);
|
35
28
|
error ErrorProductServiceDistributionAlreadyRegistered(NftId productNftId, NftId distributionNftId);
|
@@ -37,18 +30,11 @@ interface IComponentService is
|
|
37
30
|
error ErrorProductServiceOraclesAlreadyRegistered(NftId productNftId, uint8 expectedOracles);
|
38
31
|
error ErrorProductServicePoolAlreadyRegistered(NftId productNftId, NftId poolNftId);
|
39
32
|
|
40
|
-
error ErrorComponentServiceNewWalletAddressZero();
|
41
|
-
error ErrorComponentServiceWalletAddressZero();
|
42
|
-
error ErrorComponentServiceWalletAddressIsSameAsCurrent();
|
43
|
-
|
44
33
|
error ErrorComponentServiceWithdrawAmountIsZero();
|
45
34
|
error ErrorComponentServiceWithdrawAmountExceedsLimit(Amount withdrawnAmount, Amount withdrawLimit);
|
46
|
-
error ErrorComponentServiceWalletAllowanceTooSmall(address wallet, address spender, uint256 allowance, uint256 amount);
|
47
35
|
|
48
36
|
event LogComponentServiceComponentLocked(address component, bool locked);
|
49
37
|
event LogComponentServiceRegistered(NftId instanceNftId, NftId componentNftId, ObjectType componentType, address component, address token, address initialOwner);
|
50
|
-
event LogComponentServiceWalletAddressChanged(NftId componentNftId, address currentWallet, address newWallet);
|
51
|
-
event LogComponentServiceWalletTokensTransferred(NftId componentNftId, address currentWallet, address newWallet, uint256 currentBalance);
|
52
38
|
event LogComponentServiceComponentFeesWithdrawn(NftId componentNftId, address recipient, address token, Amount withdrawnAmount);
|
53
39
|
event LogComponentServiceProductFeesUpdated(NftId productNftId);
|
54
40
|
event LogComponentServiceDistributionFeesUpdated(NftId distributionNftId);
|
@@ -7,23 +7,20 @@ import {IAuthorization} from "../authorization/IAuthorization.sol";
|
|
7
7
|
import {IInstance} from "../instance/IInstance.sol";
|
8
8
|
import {NftId} from "../type/NftId.sol";
|
9
9
|
import {ObjectType} from "../type/ObjectType.sol";
|
10
|
+
import {VersionPart} from "../type/Version.sol";
|
10
11
|
|
11
12
|
/// @dev component base class
|
12
13
|
/// component examples are product, distribution, pool and oracle
|
13
14
|
interface IInstanceLinkedComponent is
|
14
15
|
IComponent
|
15
16
|
{
|
16
|
-
error
|
17
|
-
error
|
18
|
-
|
19
|
-
/// @dev Withdraw fees from the distribution component. Only component owner is allowed to withdraw fees.
|
20
|
-
/// @param amount the amount to withdraw
|
21
|
-
/// @return withdrawnAmount the amount that was actually withdrawn
|
22
|
-
function withdrawFees(Amount amount) external returns (Amount withdrawnAmount);
|
17
|
+
error ErrorInstanceLinkedComponentInstanceInvalid();
|
18
|
+
error ErrorInstanceLinkedComponentInstanceMismatch(VersionPart instanceRelease, VersionPart componentRelease);
|
23
19
|
|
24
20
|
/// @dev defines the instance to which this component is linked to
|
25
21
|
function getInstance() external view returns (IInstance instance);
|
26
22
|
|
23
|
+
// TODO consider moving to Registerable -> it works with authority
|
27
24
|
/// @dev returns the initial component authorization specification.
|
28
25
|
function getAuthorization() external view returns (IAuthorization authorization);
|
29
26
|
|
@@ -4,8 +4,8 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
5
|
|
6
6
|
import {INftOwnable} from "./INftOwnable.sol";
|
7
|
-
import {IRelease} from "../registry/IRelease.sol";
|
8
7
|
import {IRegistry} from "../registry/IRegistry.sol";
|
8
|
+
import {IVersionable} from "./IVersionable.sol";
|
9
9
|
|
10
10
|
/// @title IRegisterable
|
11
11
|
/// @dev Marks contracts that are intended to be registered in the registry.
|
@@ -13,7 +13,7 @@ import {IRegistry} from "../registry/IRegistry.sol";
|
|
13
13
|
interface IRegisterable is
|
14
14
|
IAccessManaged,
|
15
15
|
INftOwnable,
|
16
|
-
|
16
|
+
IVersionable
|
17
17
|
{
|
18
18
|
// __Registerable_init
|
19
19
|
error ErrorAuthorityInvalid(address authority);
|
@@ -32,5 +32,10 @@ interface IRegisterable is
|
|
32
32
|
function getInitialInfo()
|
33
33
|
external
|
34
34
|
view
|
35
|
-
returns (IRegistry.ObjectInfo memory);
|
35
|
+
returns (IRegistry.ObjectInfo memory info);
|
36
|
+
|
37
|
+
function getInitialData()
|
38
|
+
external
|
39
|
+
view
|
40
|
+
returns (bytes memory data);
|
36
41
|
}
|
@@ -5,7 +5,9 @@ import {IRegistry} from "../registry/IRegistry.sol";
|
|
5
5
|
|
6
6
|
interface IRegistryLinked {
|
7
7
|
|
8
|
-
error
|
8
|
+
error ErrorRegistryLinkedRegistryAlreadyInitialized(address target, address registry);
|
9
|
+
error ErrorRegistryLinkedNotRegistry(address target, address notRegistry);
|
10
|
+
error ErrorRegistryLinkedRegistryMismatch(address target, address givenRegistry, address pureRegistry);
|
9
11
|
|
10
12
|
function getRegistry() external view returns (IRegistry);
|
11
13
|
}
|
@@ -4,14 +4,14 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
5
|
|
6
6
|
import {IRegisterable} from "./IRegisterable.sol";
|
7
|
-
import {
|
7
|
+
import {IUpgradeable} from "../upgradeability/IUpgradeable.sol";
|
8
8
|
import {ObjectType} from "../type/ObjectType.sol";
|
9
9
|
import {RoleId} from "../type/RoleId.sol";
|
10
10
|
|
11
11
|
interface IService is
|
12
12
|
IAccessManaged,
|
13
13
|
IRegisterable,
|
14
|
-
|
14
|
+
IUpgradeable
|
15
15
|
{
|
16
16
|
/// @dev returns the domain for this service.
|
17
17
|
/// In any GIF release only one service for any given domain may be deployed.
|
@@ -0,0 +1,19 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Version, VersionPart} from "../type/Version.sol";
|
5
|
+
|
6
|
+
interface IVersionable {
|
7
|
+
|
8
|
+
error ErrorVersionableReleaseInvalid(address target, VersionPart invalidRelease);
|
9
|
+
error ErrorVersionableReleaseMismatch(address target, VersionPart expected, VersionPart actual);
|
10
|
+
|
11
|
+
/**
|
12
|
+
* @dev returns version of this contract
|
13
|
+
* implementation MUST define version in this function
|
14
|
+
* version number MUST increase
|
15
|
+
*/
|
16
|
+
function getVersion() external pure returns(Version);
|
17
|
+
|
18
|
+
function getRelease() external pure returns(VersionPart);
|
19
|
+
}
|