@etherisc/gif-next 3.0.0-a35a440-562 → 3.0.0-a511887-523
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- 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 +118 -18
- 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 +181 -34
- 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 +75 -177
- 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 +25 -22
- 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 +4 -23
- 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/Seconds.sol/SecondsLib.json +2 -21
- 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/String.sol/StrLib.json +2 -21
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +4 -36
- 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/IInstance.sol +1 -1
- package/contracts/instance/Instance.sol +3 -6
- package/contracts/instance/InstanceAdmin.sol +9 -14
- package/contracts/instance/InstanceAuthorizationV3.sol +4 -2
- package/contracts/instance/InstanceReader.sol +3 -25
- package/contracts/instance/InstanceService.sol +4 -4
- package/contracts/instance/InstanceServiceManager.sol +3 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -1
- package/contracts/oracle/IOracleService.sol +12 -12
- 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 +7 -7
- 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 +39 -124
- 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/ObjectType.sol +31 -2
- package/contracts/type/Referral.sol +0 -6
- package/contracts/type/Seconds.sol +0 -4
- package/contracts/type/String.sol +0 -30
- package/contracts/type/Timestamp.sol +1 -10
- 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 -2
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +0 -500
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +0 -229
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +0 -1198
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +0 -849
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +0 -1466
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +0 -844
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +0 -2324
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +0 -844
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +0 -586
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +0 -4
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +0 -901
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +0 -4
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +0 -33
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/examples/flight/FlightLib.sol +0 -311
- package/contracts/examples/flight/FlightMessageVerifier.sol +0 -128
- package/contracts/examples/flight/FlightOracle.sol +0 -167
- package/contracts/examples/flight/FlightOracleAuthorization.sol +0 -34
- package/contracts/examples/flight/FlightPool.sol +0 -89
- package/contracts/examples/flight/FlightPoolAuthorization.sol +0 -37
- package/contracts/examples/flight/FlightProduct.sol +0 -626
- package/contracts/examples/flight/FlightProductAuthorization.sol +0 -44
- package/contracts/examples/flight/FlightUSD.sol +0 -28
- package/contracts/examples/flight/originalV1.sol +0 -396
- package/contracts/shared/EcdsaChecker.sol +0 -5
- package/contracts/type/RequestIdSet.sol +0 -62
@@ -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
|
+
}
|