@etherisc/gif-next 3.0.0-d7939fe-905 → 3.0.0-f90c901-018
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 +2 -2
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +139 -72
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +110 -116
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +72 -33
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +89 -66
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +122 -101
- 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 +20 -10
- 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 +126 -75
- 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 +72 -57
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +198 -139
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +140 -150
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +84 -56
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +71 -32
- 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 +166 -104
- 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 +200 -138
- 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 +159 -102
- 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 +163 -106
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +177 -120
- 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 +171 -114
- 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 +49 -54
- 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 +77 -25
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +83 -44
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +144 -50
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +169 -147
- 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 +34 -34
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +138 -75
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +104 -112
- 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 +53 -58
- 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/Cloneable.sol/Cloneable.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 +3 -8
- 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 +132 -81
- 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 +94 -66
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +80 -83
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +82 -67
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +149 -148
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +111 -129
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +88 -73
- 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 +176 -117
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +129 -139
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +71 -32
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +100 -72
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +94 -86
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +88 -73
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +24 -247
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +233 -165
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +140 -130
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +138 -63
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +110 -112
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +72 -57
- 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 +182 -115
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +132 -138
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +71 -32
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +71 -32
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +82 -64
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +82 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +84 -56
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +75 -36
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +173 -127
- 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 +122 -128
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +161 -94
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +116 -122
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +72 -57
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +146 -63
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +109 -107
- 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 +202 -216
- 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 +163 -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 +285 -244
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +115 -110
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +159 -150
- 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 +127 -185
- 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 +13 -29
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +84 -39
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +164 -320
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +115 -141
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +421 -169
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +96 -38
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +82 -226
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +84 -56
- 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 +1 -28
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +1 -12
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +77 -25
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +1 -12
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +71 -32
- 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 +72 -57
- 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 +15 -34
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +3 -14
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +76 -24
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +3 -37
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +70 -31
- 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 +101 -56
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +75 -36
- 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 +170 -109
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +26 -31
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +112 -124
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +5 -22
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +132 -65
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +105 -111
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +212 -204
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +27 -19
- 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 +63 -86
- 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 +5 -6
- package/contracts/accounting/AccountingServiceManager.sol +4 -6
- package/contracts/accounting/IAccountingService.sol +1 -1
- package/contracts/authorization/AccessAdmin.sol +22 -18
- package/contracts/authorization/AccessAdminLib.sol +12 -9
- package/contracts/authorization/AccessManagerCloneable.sol +24 -48
- package/contracts/authorization/Authorization.sol +2 -2
- package/contracts/authorization/IAccessAdmin.sol +3 -3
- package/contracts/authorization/IServiceAuthorization.sol +1 -1
- package/contracts/authorization/ServiceAuthorization.sol +4 -4
- package/contracts/distribution/BasicDistribution.sol +0 -2
- package/contracts/distribution/BasicDistributionAuthorization.sol +5 -4
- package/contracts/distribution/Distribution.sol +0 -2
- package/contracts/distribution/DistributionService.sol +24 -20
- package/contracts/distribution/DistributionServiceManager.sol +4 -6
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleOracle.sol +0 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +0 -4
- package/contracts/instance/Instance.sol +7 -11
- package/contracts/instance/InstanceAdmin.sol +10 -17
- package/contracts/instance/InstanceAuthorizationV3.sol +4 -2
- package/contracts/instance/InstanceReader.sol +15 -15
- package/contracts/instance/InstanceService.sol +18 -20
- package/contracts/instance/InstanceServiceManager.sol +4 -6
- package/contracts/instance/base/Cloneable.sol +4 -10
- package/contracts/instance/base/ObjectSet.sol +2 -2
- package/contracts/oracle/BasicOracle.sol +0 -2
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -1
- package/contracts/oracle/IOracleService.sol +0 -4
- package/contracts/oracle/Oracle.sol +3 -4
- package/contracts/oracle/OracleService.sol +37 -67
- package/contracts/oracle/OracleServiceManager.sol +4 -6
- package/contracts/pool/BasicPool.sol +2 -4
- package/contracts/pool/BasicPoolAuthorization.sol +5 -4
- package/contracts/pool/BundleService.sol +25 -19
- package/contracts/pool/BundleServiceManager.sol +5 -7
- package/contracts/pool/IPoolService.sol +5 -6
- package/contracts/pool/Pool.sol +1 -3
- package/contracts/pool/PoolLib.sol +5 -102
- package/contracts/pool/PoolService.sol +67 -101
- package/contracts/pool/PoolServiceManager.sol +4 -6
- package/contracts/product/ApplicationService.sol +13 -34
- package/contracts/product/ApplicationServiceManager.sol +4 -6
- package/contracts/product/BasicProduct.sol +0 -2
- package/contracts/product/BasicProductAuthorization.sol +5 -4
- package/contracts/product/ClaimService.sol +10 -34
- package/contracts/product/ClaimServiceManager.sol +5 -7
- package/contracts/product/IPolicyService.sol +0 -1
- package/contracts/product/PolicyService.sol +44 -57
- package/contracts/product/PolicyServiceManager.sol +4 -6
- package/contracts/product/PricingService.sol +7 -8
- package/contracts/product/PricingServiceManager.sol +4 -6
- package/contracts/product/Product.sol +0 -2
- package/contracts/product/RiskService.sol +8 -40
- package/contracts/product/RiskServiceManager.sol +4 -6
- 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 +11 -22
- package/contracts/registry/RegistryAuthorization.sol +4 -3
- package/contracts/registry/RegistryService.sol +99 -82
- package/contracts/registry/RegistryServiceManager.sol +4 -11
- package/contracts/registry/ReleaseAdmin.sol +9 -16
- package/contracts/registry/ReleaseRegistry.sol +64 -74
- package/contracts/registry/ServiceAuthorizationV3.sol +4 -3
- package/contracts/registry/TokenRegistry.sol +6 -15
- package/contracts/shared/Component.sol +27 -22
- package/contracts/shared/ComponentService.sol +45 -130
- package/contracts/shared/ComponentServiceManager.sol +5 -7
- package/contracts/shared/ContractLib.sol +359 -93
- package/contracts/shared/IComponent.sol +5 -3
- package/contracts/shared/IComponentService.sol +0 -14
- package/contracts/shared/IInstanceLinkedComponent.sol +4 -7
- package/contracts/shared/INftOwnable.sol +0 -2
- package/contracts/shared/IRegisterable.sol +14 -3
- package/contracts/shared/IRegistryLinked.sol +1 -3
- package/contracts/shared/IService.sol +2 -2
- package/contracts/shared/IVersionable.sol +19 -0
- package/contracts/shared/InstanceLinkedComponent.sol +32 -82
- package/contracts/shared/NftOwnable.sol +9 -22
- package/contracts/shared/PolicyHolder.sol +2 -4
- package/contracts/shared/Registerable.sol +37 -20
- package/contracts/shared/RegistryLinked.sol +4 -23
- package/contracts/shared/Service.sol +8 -9
- 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 +28 -33
- package/contracts/staking/StakingLib.sol +3 -1
- package/contracts/staking/StakingManager.sol +3 -6
- package/contracts/staking/StakingReader.sol +9 -17
- package/contracts/staking/StakingService.sol +16 -13
- package/contracts/staking/StakingServiceManager.sol +4 -8
- package/contracts/staking/StakingStore.sol +8 -8
- package/contracts/staking/TargetHandler.sol +4 -5
- package/contracts/type/Version.sol +15 -16
- package/contracts/upgradeability/{IVersionable.sol → IUpgradeable.sol} +13 -19
- package/contracts/upgradeability/ProxyManager.sol +46 -54
- package/contracts/upgradeability/{Versionable.sol → Upgradeable.sol} +25 -14
- package/package.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +0 -24
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +0 -40
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +0 -4
@@ -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
|
|
@@ -5,7 +5,6 @@ import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
|
5
5
|
|
6
6
|
import {IRegistryLinked} from "./IRegistryLinked.sol";
|
7
7
|
import {NftId} from "../type/NftId.sol";
|
8
|
-
import {ObjectType} from "../type/ObjectType.sol";
|
9
8
|
|
10
9
|
interface INftOwnable is
|
11
10
|
IERC165,
|
@@ -15,7 +14,6 @@ interface INftOwnable is
|
|
15
14
|
|
16
15
|
error ErrorNftOwnableInitialOwnerZero();
|
17
16
|
error ErrorNftOwnableNotOwner(address account);
|
18
|
-
error ErrorNftOwnableInvalidType(NftId nftId, ObjectType expectedObjectType);
|
19
17
|
|
20
18
|
error ErrorNftOwnableAlreadyLinked(NftId nftId);
|
21
19
|
error ErrorNftOwnableContractNotRegistered(address contractAddress);
|
@@ -4,8 +4,11 @@ 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
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
10
|
+
import {NftId} from "../type/NftId.sol";
|
11
|
+
import {VersionPart} from "../type/Version.sol";
|
9
12
|
|
10
13
|
/// @title IRegisterable
|
11
14
|
/// @dev Marks contracts that are intended to be registered in the registry.
|
@@ -13,7 +16,7 @@ import {IRegistry} from "../registry/IRegistry.sol";
|
|
13
16
|
interface IRegisterable is
|
14
17
|
IAccessManaged,
|
15
18
|
INftOwnable,
|
16
|
-
|
19
|
+
IVersionable
|
17
20
|
{
|
18
21
|
// __Registerable_init
|
19
22
|
error ErrorAuthorityInvalid(address authority);
|
@@ -21,6 +24,9 @@ interface IRegisterable is
|
|
21
24
|
// onlyActive()
|
22
25
|
error ErrorRegisterableNotActive();
|
23
26
|
|
27
|
+
// _checkNftType()
|
28
|
+
error ErrorRegisterableInvalidType(NftId nftId, ObjectType expectedType, VersionPart expectedRelease);
|
29
|
+
|
24
30
|
/// @dev Returns true iff this contract managed by its authority is active.
|
25
31
|
/// Queries the IAccessManaged.authority().
|
26
32
|
function isActive() external view returns (bool active);
|
@@ -32,5 +38,10 @@ interface IRegisterable is
|
|
32
38
|
function getInitialInfo()
|
33
39
|
external
|
34
40
|
view
|
35
|
-
returns (IRegistry.ObjectInfo memory);
|
41
|
+
returns (IRegistry.ObjectInfo memory info);
|
42
|
+
|
43
|
+
function getInitialData()
|
44
|
+
external
|
45
|
+
view
|
46
|
+
returns (bytes memory data);
|
36
47
|
}
|
@@ -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
|
+
}
|
@@ -1,10 +1,6 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
-
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
6
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
7
|
-
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
8
4
|
|
9
5
|
import {Amount} from "../type/Amount.sol";
|
10
6
|
import {Component} from "./Component.sol";
|
@@ -12,17 +8,11 @@ import {IComponentService} from "./IComponentService.sol";
|
|
12
8
|
import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
13
9
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
14
10
|
import {IComponents} from "../instance/module/IComponents.sol";
|
15
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
16
11
|
import {IInstance} from "../instance/IInstance.sol";
|
17
12
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
18
13
|
import {IRegistry} from "../registry/IRegistry.sol";
|
19
14
|
import {NftId} from "../type/NftId.sol";
|
20
15
|
import {ObjectType, COMPONENT, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
|
21
|
-
import {VersionPart} from "../type/Version.sol";
|
22
|
-
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
23
|
-
import {IAccess} from "../authorization/IAccess.sol";
|
24
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
25
|
-
import {VersionPart} from "../type/Version.sol";
|
26
16
|
|
27
17
|
// then add (Distribution|Pool|Product)Upradeable that also intherit from Versionable
|
28
18
|
// same pattern as for Service which is also upgradeable
|
@@ -35,24 +25,11 @@ abstract contract InstanceLinkedComponent is
|
|
35
25
|
|
36
26
|
struct InstanceLinkedComponentStorage {
|
37
27
|
IInstance _instance; // instance for this component
|
38
|
-
InstanceReader _instanceReader; // instance reader for this component
|
39
28
|
IAuthorization _initialAuthorization;
|
40
|
-
IComponentService _componentService;
|
41
29
|
}
|
42
30
|
|
43
31
|
/// @inheritdoc IInstanceLinkedComponent
|
44
|
-
function
|
45
|
-
external
|
46
|
-
virtual
|
47
|
-
restricted()
|
48
|
-
onlyOwner()
|
49
|
-
returns (Amount withdrawnAmount)
|
50
|
-
{
|
51
|
-
return _withdrawFees(amount);
|
52
|
-
}
|
53
|
-
|
54
|
-
/// @inheritdoc IInstanceLinkedComponent
|
55
|
-
function getInstance() public view virtual override returns (IInstance instance) {
|
32
|
+
function getInstance() public view virtual returns (IInstance instance) {
|
56
33
|
return _getInstanceLinkedComponentStorage()._instance;
|
57
34
|
}
|
58
35
|
|
@@ -61,14 +38,7 @@ abstract contract InstanceLinkedComponent is
|
|
61
38
|
return _getInstanceLinkedComponentStorage()._initialAuthorization;
|
62
39
|
}
|
63
40
|
|
64
|
-
function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
|
65
|
-
assembly {
|
66
|
-
$.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
|
67
|
-
}
|
68
|
-
}
|
69
|
-
|
70
41
|
function __InstanceLinkedComponent_init(
|
71
|
-
address registry,
|
72
42
|
NftId parentNftId,
|
73
43
|
string memory name,
|
74
44
|
ObjectType componentType,
|
@@ -76,79 +46,60 @@ abstract contract InstanceLinkedComponent is
|
|
76
46
|
bool isInterceptor,
|
77
47
|
address initialOwner
|
78
48
|
)
|
79
|
-
internal
|
49
|
+
internal
|
80
50
|
virtual
|
81
51
|
onlyInitializing()
|
82
52
|
{
|
83
|
-
|
84
|
-
NftId instanceNftId = _checkAndGetInstanceNftId(
|
85
|
-
registry,
|
86
|
-
parentNftId,
|
87
|
-
componentType);
|
88
|
-
|
89
|
-
// set and check linked instance
|
90
|
-
InstanceLinkedComponentStorage storage $ = _getInstanceLinkedComponentStorage();
|
91
|
-
$._instance = IInstance(
|
92
|
-
IRegistry(registry).getObjectAddress(instanceNftId));
|
53
|
+
IInstance instance = _checkAndGetInstance(parentNftId, componentType);
|
93
54
|
|
94
55
|
// set component specific parameters
|
95
56
|
__Component_init(
|
96
|
-
|
97
|
-
registry,
|
57
|
+
instance.authority(),
|
98
58
|
parentNftId,
|
99
59
|
name,
|
100
|
-
componentType,
|
60
|
+
componentType,
|
101
61
|
isInterceptor,
|
102
62
|
initialOwner,
|
103
63
|
""); // registry data
|
104
64
|
|
105
65
|
// set instance linked specific parameters
|
106
|
-
|
66
|
+
InstanceLinkedComponentStorage storage $ = _getInstanceLinkedComponentStorage();
|
67
|
+
$._instance = instance;
|
107
68
|
$._initialAuthorization = authorization;
|
108
|
-
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
109
69
|
|
110
70
|
// register interfaces
|
111
71
|
_registerInterface(type(IInstanceLinkedComponent).interfaceId);
|
112
72
|
}
|
113
73
|
|
114
|
-
|
115
|
-
function _checkAndGetInstanceNftId(
|
116
|
-
address registryAddress,
|
74
|
+
function _checkAndGetInstance(
|
117
75
|
NftId parentNftId,
|
118
76
|
ObjectType componentType
|
119
77
|
)
|
120
|
-
|
78
|
+
private
|
121
79
|
view
|
122
|
-
returns (
|
80
|
+
returns (IInstance instance)
|
123
81
|
{
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
82
|
+
NftId instanceNftId;
|
83
|
+
IRegistry registry = _getRegistry();
|
84
|
+
|
85
|
+
if(componentType == PRODUCT()) {
|
86
|
+
instanceNftId = parentNftId;
|
87
|
+
} else {
|
88
|
+
NftId productNftId = parentNftId;
|
89
|
+
instanceNftId = registry.getParentNftId(productNftId);
|
128
90
|
}
|
129
91
|
|
130
|
-
|
131
|
-
IRegistry registry = _checkAndGetRegistry(registryAddress, parentNftId, PRODUCT());
|
132
|
-
return registry.getParentNftId(parentNftId);
|
133
|
-
}
|
92
|
+
IRegistry.ObjectInfo memory info = registry.getObjectInfo(instanceNftId);
|
134
93
|
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
address registryAddress,
|
139
|
-
NftId objectNftId,
|
140
|
-
ObjectType requiredType
|
141
|
-
)
|
142
|
-
internal
|
143
|
-
view
|
144
|
-
returns (IRegistry registry)
|
145
|
-
{
|
146
|
-
registry = IRegistry(registryAddress);
|
147
|
-
IRegistry.ObjectInfo memory info = registry.getObjectInfo(objectNftId);
|
94
|
+
if (info.objectType != INSTANCE()) {
|
95
|
+
revert ErrorInstanceLinkedComponentInstanceInvalid();
|
96
|
+
}
|
148
97
|
|
149
|
-
if
|
150
|
-
revert
|
98
|
+
if(info.release != getRelease()) {
|
99
|
+
revert ErrorInstanceLinkedComponentInstanceMismatch(info.release, getRelease());
|
151
100
|
}
|
101
|
+
|
102
|
+
instance = IInstance(info.objectAddress);
|
152
103
|
}
|
153
104
|
|
154
105
|
|
@@ -160,7 +111,7 @@ abstract contract InstanceLinkedComponent is
|
|
160
111
|
|
161
112
|
|
162
113
|
function _getComponentInfo() internal virtual override view returns (IComponents.ComponentInfo memory info) {
|
163
|
-
NftId componentNftId =
|
114
|
+
NftId componentNftId = _getRegistry().getNftIdForAddress(address(this));
|
164
115
|
|
165
116
|
// if registered, attempt to return component info via instance reader
|
166
117
|
if (componentNftId.gtz()) {
|
@@ -180,13 +131,12 @@ abstract contract InstanceLinkedComponent is
|
|
180
131
|
|
181
132
|
/// @dev returns reader for linked instance
|
182
133
|
function _getInstanceReader() internal view returns (InstanceReader reader) {
|
183
|
-
return _getInstanceLinkedComponentStorage().
|
134
|
+
return _getInstanceLinkedComponentStorage()._instance.getInstanceReader();
|
184
135
|
}
|
185
136
|
|
186
|
-
function
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
return _getInstanceLinkedComponentStorage()._componentService.withdrawFees(amount);
|
137
|
+
function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
|
138
|
+
assembly {
|
139
|
+
$.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
|
140
|
+
}
|
191
141
|
}
|
192
142
|
}
|
@@ -4,7 +4,6 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {InitializableERC165} from "./InitializableERC165.sol";
|
5
5
|
import {INftOwnable} from "./INftOwnable.sol";
|
6
6
|
import {NftId} from "../type/NftId.sol";
|
7
|
-
import {ObjectType} from "../type/ObjectType.sol";
|
8
7
|
import {RegistryLinked} from "./RegistryLinked.sol";
|
9
8
|
|
10
9
|
contract NftOwnable is
|
@@ -29,28 +28,15 @@ contract NftOwnable is
|
|
29
28
|
}
|
30
29
|
|
31
30
|
modifier onlyNftOwner(NftId nftId) {
|
32
|
-
if(!
|
31
|
+
if(!_getRegistry().isOwnerOf(nftId, msg.sender)) {
|
33
32
|
revert ErrorNftOwnableNotOwner(msg.sender);
|
34
33
|
}
|
35
34
|
_;
|
36
35
|
}
|
37
36
|
|
38
|
-
modifier onlyNftOfType(NftId nftId, ObjectType expectedObjectType) {
|
39
|
-
_checkNftType(nftId, expectedObjectType);
|
40
|
-
_;
|
41
|
-
}
|
42
|
-
|
43
|
-
function _checkNftType(NftId nftId, ObjectType expectedObjectType) internal view {
|
44
|
-
if(expectedObjectType.eqz() || !getRegistry().isObjectType(nftId, expectedObjectType)) {
|
45
|
-
revert ErrorNftOwnableInvalidType(nftId, expectedObjectType);
|
46
|
-
}
|
47
|
-
}
|
48
|
-
|
49
|
-
|
50
37
|
/// @dev Initialization for upgradable contracts.
|
51
|
-
// used in __Registerable_init, ProxyManager.
|
38
|
+
// used in __Registerable_init, ProxyManager.initialize
|
52
39
|
function __NftOwnable_init(
|
53
|
-
address registry,
|
54
40
|
address initialOwner
|
55
41
|
)
|
56
42
|
internal
|
@@ -58,7 +44,6 @@ contract NftOwnable is
|
|
58
44
|
onlyInitializing()
|
59
45
|
{
|
60
46
|
__ERC165_init();
|
61
|
-
__RegistryLinked_init(registry);
|
62
47
|
|
63
48
|
if(initialOwner == address(0)) {
|
64
49
|
revert ErrorNftOwnableInitialOwnerZero();
|
@@ -88,7 +73,7 @@ contract NftOwnable is
|
|
88
73
|
NftOwnableStorage storage $ = _getNftOwnableStorage();
|
89
74
|
|
90
75
|
if ($._nftId.gtz()) {
|
91
|
-
return
|
76
|
+
return _getRegistry().ownerOf($._nftId);
|
92
77
|
}
|
93
78
|
|
94
79
|
return $._initialOwner;
|
@@ -108,15 +93,17 @@ contract NftOwnable is
|
|
108
93
|
revert ErrorNftOwnableAlreadyLinked($._nftId);
|
109
94
|
}
|
110
95
|
|
111
|
-
|
96
|
+
NftId nftId = _getRegistry().getNftIdForAddress(nftOwnableAddress);
|
97
|
+
|
98
|
+
if (nftId.eqz()) {
|
112
99
|
revert ErrorNftOwnableContractNotRegistered(nftOwnableAddress);
|
113
100
|
}
|
114
101
|
|
115
|
-
$._nftId =
|
102
|
+
$._nftId = nftId;
|
116
103
|
|
117
|
-
emit LogNftOwnableNftLinkedToAddress(
|
104
|
+
emit LogNftOwnableNftLinkedToAddress(nftId, getOwner());
|
118
105
|
|
119
|
-
return
|
106
|
+
return nftId;
|
120
107
|
}
|
121
108
|
|
122
109
|
|
@@ -23,14 +23,12 @@ contract PolicyHolder is
|
|
23
23
|
// callbacks must only be allowed from the policy and claim services
|
24
24
|
// will need a release parameter to fetch the right service addresses for the modifiers
|
25
25
|
|
26
|
-
function
|
27
|
-
address registryAddress
|
26
|
+
function __PolicyHolder_init(
|
28
27
|
)
|
29
28
|
internal
|
30
29
|
virtual
|
31
30
|
onlyInitializing()
|
32
31
|
{
|
33
|
-
__RegistryLinked_init(registryAddress);
|
34
32
|
_initializeERC165();
|
35
33
|
_registerInterface(type(IPolicyHolder).interfaceId);
|
36
34
|
}
|
@@ -47,7 +45,7 @@ contract PolicyHolder is
|
|
47
45
|
/// @dev empty default implementation
|
48
46
|
function payoutExecuted(NftId policyNftId, PayoutId payoutId, Amount amount, address beneficiary) external virtual {}
|
49
47
|
|
50
|
-
//---
|
48
|
+
//--- IERC721 functions ---------------//
|
51
49
|
function onERC721Received(
|
52
50
|
address, // operator
|
53
51
|
address, // from
|
@@ -9,15 +9,16 @@ import {ContractLib} from "../shared/ContractLib.sol";
|
|
9
9
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
10
10
|
import {NftOwnable} from "../shared/NftOwnable.sol";
|
11
11
|
import {ObjectType} from "../type/ObjectType.sol";
|
12
|
+
import {Versionable} from "../shared/Versionable.sol";
|
12
13
|
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
13
14
|
|
14
15
|
import {IRegistry} from "../registry/IRegistry.sol";
|
15
16
|
import {IRegisterable} from "./IRegisterable.sol";
|
16
|
-
import {IRelease} from "../registry/IRelease.sol";
|
17
17
|
|
18
18
|
abstract contract Registerable is
|
19
19
|
AccessManagedUpgradeable,
|
20
20
|
NftOwnable,
|
21
|
+
Versionable,
|
21
22
|
IRegisterable
|
22
23
|
{
|
23
24
|
// keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.Registerable.sol")) - 1)) & ~bytes32(uint256(0xff));
|
@@ -37,14 +38,27 @@ abstract contract Registerable is
|
|
37
38
|
_;
|
38
39
|
}
|
39
40
|
|
41
|
+
modifier onlyNftOfType(NftId nftId, ObjectType expectedObjectType) {
|
42
|
+
_checkNftType(nftId, expectedObjectType);
|
43
|
+
_;
|
44
|
+
}
|
45
|
+
|
46
|
+
// TODO move to registerables verification library
|
47
|
+
// TODO and check the owner here?
|
48
|
+
function _checkNftType(NftId nftId, ObjectType expectedObjectType) internal view {
|
49
|
+
VersionPart expectedRelease = getRelease();
|
50
|
+
if(expectedObjectType.eqz() || !_getRegistry().isObjectType(nftId, expectedObjectType, expectedRelease)) {
|
51
|
+
revert ErrorRegisterableInvalidType(nftId, expectedObjectType, expectedRelease);
|
52
|
+
}
|
53
|
+
}
|
54
|
+
|
40
55
|
function __Registerable_init(
|
41
56
|
address authority,
|
42
|
-
address registry,
|
43
57
|
NftId parentNftId,
|
44
58
|
ObjectType objectType,
|
45
59
|
bool isInterceptor,
|
46
60
|
address initialOwner,
|
47
|
-
bytes memory data
|
61
|
+
bytes memory data
|
48
62
|
)
|
49
63
|
internal
|
50
64
|
virtual
|
@@ -54,14 +68,19 @@ abstract contract Registerable is
|
|
54
68
|
revert ErrorAuthorityInvalid(authority);
|
55
69
|
}
|
56
70
|
|
71
|
+
VersionPart release = AccessManagerCloneable(authority).getRelease();
|
72
|
+
|
57
73
|
__AccessManaged_init(authority);
|
58
|
-
__NftOwnable_init(
|
74
|
+
__NftOwnable_init(initialOwner);
|
75
|
+
__Versionable_init(release);
|
59
76
|
|
60
77
|
RegisterableStorage storage $ = _getRegisterableStorage();
|
61
78
|
$._parentNftId = parentNftId;
|
62
79
|
$._objectType = objectType;
|
63
80
|
$._isInterceptor = isInterceptor;
|
64
|
-
|
81
|
+
if(data.length > 0) {
|
82
|
+
$._data = data;
|
83
|
+
}
|
65
84
|
|
66
85
|
_registerInterface(type(IAccessManaged).interfaceId);
|
67
86
|
}
|
@@ -72,13 +91,6 @@ abstract contract Registerable is
|
|
72
91
|
return !AccessManagerCloneable(authority()).isTargetClosed(address(this));
|
73
92
|
}
|
74
93
|
|
75
|
-
|
76
|
-
/// @inheritdoc IRelease
|
77
|
-
function getRelease() public virtual view returns (VersionPart release) {
|
78
|
-
return AccessManagerCloneable(authority()).getRelease();
|
79
|
-
}
|
80
|
-
|
81
|
-
|
82
94
|
/// @inheritdoc IRegisterable
|
83
95
|
function getInitialInfo()
|
84
96
|
public
|
@@ -87,14 +99,19 @@ abstract contract Registerable is
|
|
87
99
|
returns (IRegistry.ObjectInfo memory info)
|
88
100
|
{
|
89
101
|
RegisterableStorage storage $ = _getRegisterableStorage();
|
90
|
-
return
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
102
|
+
return (
|
103
|
+
IRegistry.ObjectInfo(
|
104
|
+
NftIdLib.zero(),
|
105
|
+
$._parentNftId,
|
106
|
+
$._objectType,
|
107
|
+
getRelease(),
|
108
|
+
$._isInterceptor,
|
109
|
+
address(this))
|
110
|
+
);
|
111
|
+
}
|
112
|
+
|
113
|
+
function getInitialData() public view virtual returns (bytes memory data) {
|
114
|
+
return _getRegisterableStorage()._data;
|
98
115
|
}
|
99
116
|
|
100
117
|
|
@@ -1,38 +1,19 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
5
4
|
|
6
5
|
import {ContractLib} from "../shared/ContractLib.sol";
|
7
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
8
7
|
import {IRegistryLinked} from "./IRegistryLinked.sol";
|
9
8
|
|
10
9
|
contract RegistryLinked is
|
11
|
-
Initializable,
|
12
10
|
IRegistryLinked
|
13
11
|
{
|
14
|
-
|
15
|
-
|
16
|
-
IRegistry private _registry;
|
17
|
-
|
18
|
-
/// @dev initialization for upgradable contracts
|
19
|
-
// used in _initializeRegisterable
|
20
|
-
function __RegistryLinked_init(
|
21
|
-
address registry
|
22
|
-
)
|
23
|
-
internal
|
24
|
-
virtual
|
25
|
-
onlyInitializing()
|
26
|
-
{
|
27
|
-
if (!ContractLib.isRegistry(registry)) {
|
28
|
-
revert ErrorNotRegistry(registry);
|
29
|
-
}
|
30
|
-
|
31
|
-
_registry = IRegistry(registry);
|
12
|
+
function getRegistry() external pure returns (IRegistry) {
|
13
|
+
return ContractLib.getRegistry();
|
32
14
|
}
|
33
15
|
|
34
|
-
|
35
|
-
|
36
|
-
return _registry;
|
16
|
+
function _getRegistry() internal pure returns (IRegistry) {
|
17
|
+
return ContractLib.getRegistry();
|
37
18
|
}
|
38
19
|
}
|
@@ -5,25 +5,25 @@ import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/ut
|
|
5
5
|
|
6
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
7
7
|
import {IService} from "./IService.sol";
|
8
|
-
import {IVersionable} from "../
|
8
|
+
import {IVersionable} from "../shared/IVersionable.sol";
|
9
9
|
import {ObjectType, SERVICE} from "../type/ObjectType.sol";
|
10
10
|
import {Registerable} from "./Registerable.sol";
|
11
11
|
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
12
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
13
|
-
import {Versionable} from "../
|
12
|
+
import {Version, VersionLib, VersionPartLib} from "../type/Version.sol";
|
13
|
+
import {Versionable} from "../shared/Versionable.sol";
|
14
|
+
import {Upgradeable} from "../upgradeability/Upgradeable.sol";
|
14
15
|
|
15
16
|
|
16
17
|
/// @dev service base contract
|
17
18
|
abstract contract Service is
|
18
|
-
Registerable,
|
19
|
-
|
19
|
+
Registerable,
|
20
|
+
Upgradeable,
|
20
21
|
ReentrancyGuardUpgradeable,
|
21
22
|
IService
|
22
23
|
{
|
23
24
|
|
24
25
|
function __Service_init(
|
25
26
|
address authority, // real authority for registry service adress(0) for other services
|
26
|
-
address registry,
|
27
27
|
address initialOwner
|
28
28
|
)
|
29
29
|
internal
|
@@ -34,8 +34,7 @@ abstract contract Service is
|
|
34
34
|
|
35
35
|
__Registerable_init(
|
36
36
|
authority,
|
37
|
-
|
38
|
-
IRegistry(registry).getNftId(),
|
37
|
+
_getRegistry().getNftId(),
|
39
38
|
SERVICE(),
|
40
39
|
false, // is interceptor
|
41
40
|
initialOwner,
|
@@ -62,6 +61,6 @@ abstract contract Service is
|
|
62
61
|
|
63
62
|
|
64
63
|
function _getServiceAddress(ObjectType domain) internal view returns (address) {
|
65
|
-
return
|
64
|
+
return _getRegistry().getServiceAddress(domain, getRelease());
|
66
65
|
}
|
67
66
|
}
|