@etherisc/gif-next 3.0.0-c0923b6f-772-12c20a7-167 → 3.0.0-c46a89a-335
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 +3 -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/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +604 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1255 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +825 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1528 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +820 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2635 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +820 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
- 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 +78 -26
- 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 +145 -51
- 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 +179 -77
- 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/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +691 -0
- 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 +22 -25
- 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 +23 -4
- 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/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
- 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 +21 -2
- 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 +21 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
- 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 -19
- package/contracts/authorization/AccessAdminLib.sol +14 -11
- 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/flight/FlightLib.sol +322 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightOracle.sol +163 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
- package/contracts/examples/flight/FlightPool.sol +85 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +650 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +45 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- 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/IInstance.sol +1 -1
- package/contracts/instance/Instance.sol +8 -12
- package/contracts/instance/InstanceAdmin.sol +10 -17
- package/contracts/instance/InstanceAuthorizationV3.sol +4 -2
- package/contracts/instance/InstanceReader.sol +40 -18
- 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 +12 -16
- 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 +8 -6
- 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/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponent.sol +5 -3
- package/contracts/shared/IComponentService.sol +0 -14
- package/contracts/shared/IInstanceLinkedComponent.sol +5 -12
- 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 +84 -78
- 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/ObjectType.sol +2 -31
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/Seconds.sol +4 -0
- package/contracts/type/String.sol +30 -0
- package/contracts/type/Timestamp.sol +10 -1
- 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 +2 -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
@@ -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);
|
@@ -2,29 +2,22 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {
|
5
|
+
import {IAuthorizedComponent} from "../shared/IAuthorizedComponent.sol";
|
6
6
|
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
|
+
IAuthorizedComponent
|
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
|
|
27
|
-
/// @dev returns the initial component authorization specification.
|
28
|
-
function getAuthorization() external view returns (IAuthorization authorization);
|
29
|
-
|
30
23
|
}
|
@@ -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,27 +1,25 @@
|
|
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
|
-
|
9
|
-
import {Amount} from "../type/Amount.sol";
|
10
|
-
import {Component} from "./Component.sol";
|
11
|
-
import {IComponentService} from "./IComponentService.sol";
|
12
|
-
import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
13
4
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
5
|
+
import {IAuthorizedComponent} from "../shared/IAuthorizedComponent.sol";
|
14
6
|
import {IComponents} from "../instance/module/IComponents.sol";
|
15
|
-
import {
|
7
|
+
import {IComponentService} from "./IComponentService.sol";
|
16
8
|
import {IInstance} from "../instance/IInstance.sol";
|
9
|
+
import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
10
|
+
import {IInstanceService} from "../instance/IInstanceService.sol";
|
11
|
+
import {IOracleService} from "../oracle/IOracleService.sol";
|
12
|
+
|
13
|
+
import {Amount} from "../type/Amount.sol";
|
14
|
+
import {Component} from "./Component.sol";
|
17
15
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
18
16
|
import {IRegistry} from "../registry/IRegistry.sol";
|
19
17
|
import {NftId} from "../type/NftId.sol";
|
20
|
-
import {ObjectType, COMPONENT, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
|
21
|
-
import {
|
18
|
+
import {ObjectType, COMPONENT, INSTANCE, ORACLE, PRODUCT} from "../type/ObjectType.sol";
|
19
|
+
import {RequestId} from "../type/RequestId.sol";
|
22
20
|
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
23
|
-
import {IAccess} from "../authorization/IAccess.sol";
|
24
21
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
22
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
25
23
|
import {VersionPart} from "../type/Version.sol";
|
26
24
|
|
27
25
|
// then add (Distribution|Pool|Product)Upradeable that also intherit from Versionable
|
@@ -35,40 +33,72 @@ abstract contract InstanceLinkedComponent is
|
|
35
33
|
|
36
34
|
struct InstanceLinkedComponentStorage {
|
37
35
|
IInstance _instance; // instance for this component
|
38
|
-
InstanceReader _instanceReader; // instance reader for this component
|
39
36
|
IAuthorization _initialAuthorization;
|
40
37
|
IComponentService _componentService;
|
38
|
+
IOracleService _oracleService;
|
41
39
|
}
|
42
40
|
|
43
|
-
|
44
|
-
function withdrawFees(Amount amount)
|
45
|
-
external
|
46
|
-
virtual
|
47
|
-
restricted()
|
48
|
-
onlyOwner()
|
49
|
-
returns (Amount withdrawnAmount)
|
50
|
-
{
|
51
|
-
return _withdrawFees(amount);
|
52
|
-
}
|
41
|
+
//--- view functions ----------------------------------------------------//
|
53
42
|
|
54
43
|
/// @inheritdoc IInstanceLinkedComponent
|
55
44
|
function getInstance() public view virtual override returns (IInstance instance) {
|
56
45
|
return _getInstanceLinkedComponentStorage()._instance;
|
57
46
|
}
|
58
47
|
|
59
|
-
|
48
|
+
|
49
|
+
/// @inheritdoc IAuthorizedComponent
|
60
50
|
function getAuthorization() external view virtual returns (IAuthorization authorization) {
|
61
51
|
return _getInstanceLinkedComponentStorage()._initialAuthorization;
|
62
52
|
}
|
63
53
|
|
54
|
+
|
55
|
+
//function setInstanceReader(address readerAddress);
|
56
|
+
|
57
|
+
//--- internal functions ------------------------------------------------//
|
58
|
+
|
59
|
+
function _sendRequest(
|
60
|
+
NftId oracleNftId,
|
61
|
+
bytes memory requestData,
|
62
|
+
Timestamp expiryAt,
|
63
|
+
string memory callbackMethod
|
64
|
+
)
|
65
|
+
internal
|
66
|
+
virtual
|
67
|
+
returns (RequestId requestId)
|
68
|
+
{
|
69
|
+
return _getInstanceLinkedComponentStorage()._oracleService.request(
|
70
|
+
oracleNftId,
|
71
|
+
requestData,
|
72
|
+
expiryAt,
|
73
|
+
callbackMethod);
|
74
|
+
}
|
75
|
+
|
76
|
+
|
77
|
+
|
78
|
+
function _cancelRequest(RequestId requestId)
|
79
|
+
internal
|
80
|
+
virtual
|
81
|
+
{
|
82
|
+
_getInstanceLinkedComponentStorage()._oracleService.cancel(requestId);
|
83
|
+
}
|
84
|
+
|
85
|
+
|
86
|
+
function _resendRequest(RequestId requestId)
|
87
|
+
internal
|
88
|
+
virtual
|
89
|
+
{
|
90
|
+
_getInstanceLinkedComponentStorage()._oracleService.resend(requestId);
|
91
|
+
}
|
92
|
+
|
93
|
+
|
64
94
|
function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
|
65
95
|
assembly {
|
66
96
|
$.slot := INSTANCE_LINKED_COMPONENT_LOCATION_V1
|
67
97
|
}
|
68
98
|
}
|
69
99
|
|
100
|
+
|
70
101
|
function __InstanceLinkedComponent_init(
|
71
|
-
address registry,
|
72
102
|
NftId parentNftId,
|
73
103
|
string memory name,
|
74
104
|
ObjectType componentType,
|
@@ -76,79 +106,62 @@ abstract contract InstanceLinkedComponent is
|
|
76
106
|
bool isInterceptor,
|
77
107
|
address initialOwner
|
78
108
|
)
|
79
|
-
internal
|
109
|
+
internal
|
80
110
|
virtual
|
81
111
|
onlyInitializing()
|
82
112
|
{
|
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));
|
113
|
+
IInstance instance = _checkAndGetInstance(parentNftId, componentType);
|
93
114
|
|
94
115
|
// set component specific parameters
|
95
116
|
__Component_init(
|
96
|
-
|
97
|
-
registry,
|
117
|
+
instance.authority(),
|
98
118
|
parentNftId,
|
99
119
|
name,
|
100
|
-
componentType,
|
120
|
+
componentType,
|
101
121
|
isInterceptor,
|
102
122
|
initialOwner,
|
103
123
|
""); // registry data
|
104
124
|
|
105
125
|
// set instance linked specific parameters
|
106
|
-
|
126
|
+
InstanceLinkedComponentStorage storage $ = _getInstanceLinkedComponentStorage();
|
127
|
+
$._instance = instance;
|
107
128
|
$._initialAuthorization = authorization;
|
108
129
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
130
|
+
$._oracleService = IOracleService(_getServiceAddress(ORACLE()));
|
109
131
|
|
110
132
|
// register interfaces
|
111
133
|
_registerInterface(type(IInstanceLinkedComponent).interfaceId);
|
112
134
|
}
|
113
135
|
|
114
|
-
|
115
|
-
function _checkAndGetInstanceNftId(
|
116
|
-
address registryAddress,
|
136
|
+
function _checkAndGetInstance(
|
117
137
|
NftId parentNftId,
|
118
138
|
ObjectType componentType
|
119
139
|
)
|
120
|
-
|
140
|
+
private
|
121
141
|
view
|
122
|
-
returns (
|
142
|
+
returns (IInstance instance)
|
123
143
|
{
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
144
|
+
NftId instanceNftId;
|
145
|
+
IRegistry registry = _getRegistry();
|
146
|
+
|
147
|
+
if(componentType == PRODUCT()) {
|
148
|
+
instanceNftId = parentNftId;
|
149
|
+
} else {
|
150
|
+
NftId productNftId = parentNftId;
|
151
|
+
instanceNftId = registry.getParentNftId(productNftId);
|
128
152
|
}
|
129
153
|
|
130
|
-
|
131
|
-
IRegistry registry = _checkAndGetRegistry(registryAddress, parentNftId, PRODUCT());
|
132
|
-
return registry.getParentNftId(parentNftId);
|
133
|
-
}
|
154
|
+
IRegistry.ObjectInfo memory info = registry.getObjectInfo(instanceNftId);
|
134
155
|
|
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);
|
156
|
+
if (info.objectType != INSTANCE()) {
|
157
|
+
revert ErrorInstanceLinkedComponentInstanceInvalid();
|
158
|
+
}
|
148
159
|
|
149
|
-
if
|
150
|
-
revert
|
160
|
+
if(info.release != getRelease()) {
|
161
|
+
revert ErrorInstanceLinkedComponentInstanceMismatch(info.release, getRelease());
|
151
162
|
}
|
163
|
+
|
164
|
+
instance = IInstance(info.objectAddress);
|
152
165
|
}
|
153
166
|
|
154
167
|
|
@@ -160,7 +173,7 @@ abstract contract InstanceLinkedComponent is
|
|
160
173
|
|
161
174
|
|
162
175
|
function _getComponentInfo() internal virtual override view returns (IComponents.ComponentInfo memory info) {
|
163
|
-
NftId componentNftId =
|
176
|
+
NftId componentNftId = _getRegistry().getNftIdForAddress(address(this));
|
164
177
|
|
165
178
|
// if registered, attempt to return component info via instance reader
|
166
179
|
if (componentNftId.gtz()) {
|
@@ -180,13 +193,6 @@ abstract contract InstanceLinkedComponent is
|
|
180
193
|
|
181
194
|
/// @dev returns reader for linked instance
|
182
195
|
function _getInstanceReader() internal view returns (InstanceReader reader) {
|
183
|
-
return _getInstanceLinkedComponentStorage().
|
184
|
-
}
|
185
|
-
|
186
|
-
function _withdrawFees(Amount amount)
|
187
|
-
internal
|
188
|
-
returns (Amount withdrawnAmount)
|
189
|
-
{
|
190
|
-
return _getInstanceLinkedComponentStorage()._componentService.withdrawFees(amount);
|
196
|
+
return _getInstanceLinkedComponentStorage()._instance.getInstanceReader();
|
191
197
|
}
|
192
198
|
}
|
@@ -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
|
|