@etherisc/gif-next 0.0.2-ffa91a6-022 → 3.0.0-04e2e0d-531
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 +131 -332
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +111 -57
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +107 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +65 -19
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +370 -141
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1582 -202
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +25 -6
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +266 -64
- 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 +263 -87
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +102 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +63 -38
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +269 -69
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -12
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +463 -149
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +160 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -11
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +317 -19
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +108 -79
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +268 -68
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +136 -95
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +268 -68
- 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 +799 -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/FlightNft.sol/FlightNft.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1353 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1466 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2289 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -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 +86 -45
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +268 -68
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +35 -26
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -105
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +268 -68
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -147
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +268 -68
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +84 -212
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/KeyValueStore.sol/KeyValueStore.json → instance/IBaseStore.sol/IBaseStore.json} +61 -245
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +374 -35
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +366 -5
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +425 -97
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +753 -401
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +236 -80
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +782 -553
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +392 -31
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1374 -2013
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3477 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
- 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 +25 -16
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +282 -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 +19 -10
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -10
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +83 -38
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -58
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +268 -68
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +312 -123
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +198 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -20
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +250 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -20
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +350 -79
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +216 -59
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +113 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -37
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +268 -68
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +128 -70
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +67 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +29 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -31
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -18
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +169 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +519 -21
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +138 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +93 -112
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +115 -65
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -31
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -43
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +39 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- 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 +77 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +539 -314
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +335 -76
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +41 -12
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +96 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +551 -246
- 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 +169 -111
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -10
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +221 -201
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +130 -64
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +76 -41
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/{ComponentVerifyingService.sol/ComponentVerifyingService.json → IAuthorizedComponent.sol/IAuthorizedComponent.json} +238 -90
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -10
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +136 -132
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -10
- 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 +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -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 +19 -10
- 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 +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1415 -134
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +109 -117
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1504 -192
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +77 -76
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +139 -64
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +296 -152
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +143 -167
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +96 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1615 -815
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +153 -91
- 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/Amount.sol/AmountLib.json +10 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- 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/Fee.sol/FeeLib.json +93 -37
- 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 +39 -218
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +64 -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 +69 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +37 -5
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +31 -31
- package/contracts/accounting/IAccountingService.sol +9 -8
- package/contracts/authorization/AccessAdmin.sol +281 -325
- package/contracts/authorization/AccessAdminLib.sol +535 -23
- package/contracts/authorization/AccessManagerCloneable.sol +3 -18
- package/contracts/authorization/Authorization.sol +64 -239
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +25 -53
- package/contracts/authorization/IAuthorization.sol +3 -57
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +3 -4
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +9 -8
- package/contracts/distribution/DistributionService.sol +127 -62
- package/contracts/distribution/IDistributionComponent.sol +3 -1
- package/contracts/distribution/IDistributionService.sol +21 -8
- package/contracts/examples/fire/FireProduct.sol +6 -6
- package/contracts/examples/flight/FlightLib.sol +337 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightNft.sol +234 -0
- package/contracts/examples/flight/FlightOracle.sol +226 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +687 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
- package/contracts/examples/flight/FlightProductManager.sol +49 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -19
- package/contracts/instance/BaseStore.sol +97 -0
- package/contracts/instance/IBaseStore.sol +45 -0
- package/contracts/instance/IInstance.sol +57 -6
- package/contracts/instance/IInstanceService.sol +44 -7
- package/contracts/instance/Instance.sol +111 -56
- package/contracts/instance/InstanceAdmin.sol +150 -294
- package/contracts/instance/InstanceAuthorizationV3.sol +106 -66
- package/contracts/instance/InstanceReader.sol +384 -394
- package/contracts/instance/InstanceService.sol +190 -134
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +15 -5
- package/contracts/instance/module/IDistribution.sol +17 -7
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +3 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleService.sol +12 -12
- package/contracts/oracle/Oracle.sol +6 -8
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -16
- package/contracts/pool/BasicPoolAuthorization.sol +10 -5
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +8 -3
- package/contracts/pool/Pool.sol +6 -18
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +41 -182
- package/contracts/product/ApplicationService.sol +64 -11
- package/contracts/product/BasicProduct.sol +2 -3
- package/contracts/product/BasicProductAuthorization.sol +13 -5
- package/contracts/product/ClaimService.sol +99 -105
- package/contracts/product/IApplicationService.sol +21 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +10 -3
- package/contracts/product/IRiskService.sol +18 -3
- package/contracts/product/PolicyService.sol +41 -60
- package/contracts/product/PolicyServiceLib.sol +83 -7
- package/contracts/product/PricingService.sol +28 -31
- package/contracts/product/Product.sol +40 -16
- package/contracts/product/RiskService.sol +50 -15
- package/contracts/registry/ChainNft.sol +1 -1
- package/contracts/registry/IRegistry.sol +15 -9
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAdmin.sol +39 -118
- package/contracts/registry/RegistryAuthorization.sol +139 -69
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +59 -106
- package/contracts/registry/ReleaseRegistry.sol +20 -12
- package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +8 -8
- package/contracts/shared/ComponentService.sol +250 -262
- package/contracts/shared/ContractLib.sol +106 -75
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponent.sol +1 -1
- package/contracts/shared/IComponentService.sol +15 -15
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -5
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InstanceLinkedComponent.sol +64 -26
- package/contracts/shared/NftOwnable.sol +3 -1
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Service.sol +6 -4
- package/contracts/staking/IStaking.sol +263 -70
- package/contracts/staking/IStakingService.sol +40 -85
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +469 -217
- package/contracts/staking/StakingLib.sol +38 -124
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +62 -71
- package/contracts/staking/StakingService.sol +43 -186
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -331
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +17 -22
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +17 -33
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +23 -0
- package/contracts/type/String.sol +42 -0
- package/contracts/type/Timestamp.sol +14 -3
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -14,7 +14,7 @@ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol"
|
|
14
14
|
|
15
15
|
import {ContractLib} from "../shared/ContractLib.sol";
|
16
16
|
import {NftId} from "../type/NftId.sol";
|
17
|
-
import {ObjectType, ObjectTypeLib, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
|
17
|
+
import {ObjectType, ObjectTypeLib, COMPONENT, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
|
18
18
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
19
19
|
import {Registry} from "./Registry.sol";
|
20
20
|
import {ReleaseAdmin} from "./ReleaseAdmin.sol";
|
@@ -150,7 +150,7 @@ contract ReleaseRegistry is
|
|
150
150
|
uint256 serviceDomainsCount = _verifyServiceAuthorization(serviceAuthorization, releaseVersion, salt);
|
151
151
|
|
152
152
|
// create and initialize release admin
|
153
|
-
releaseAdmin = _cloneNewReleaseAdmin(releaseVersion);
|
153
|
+
releaseAdmin = _cloneNewReleaseAdmin(serviceAuthorization, releaseVersion);
|
154
154
|
releaseSalt = salt;
|
155
155
|
|
156
156
|
// ensures unique salt
|
@@ -182,8 +182,8 @@ contract ReleaseRegistry is
|
|
182
182
|
checkTransition(_releaseInfo[releaseVersion].state, RELEASE(), DEPLOYING(), DEPLOYED());
|
183
183
|
|
184
184
|
address releaseAuthority = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin).authority();
|
185
|
-
IServiceAuthorization
|
186
|
-
ObjectType expectedDomain =
|
185
|
+
IServiceAuthorization releaseAuthz = _releaseInfo[releaseVersion].auth;
|
186
|
+
ObjectType expectedDomain = releaseAuthz.getServiceDomain(_registeredServices);
|
187
187
|
|
188
188
|
// service can work with release registry and release version
|
189
189
|
(
|
@@ -216,7 +216,6 @@ contract ReleaseRegistry is
|
|
216
216
|
ReleaseAdmin releaseAdmin = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin);
|
217
217
|
releaseAdmin.setReleaseLocked(false);
|
218
218
|
releaseAdmin.authorizeService(
|
219
|
-
releaseAuth,
|
220
219
|
service,
|
221
220
|
serviceDomain,
|
222
221
|
releaseVersion);
|
@@ -240,7 +239,7 @@ contract ReleaseRegistry is
|
|
240
239
|
|
241
240
|
_latest = release;
|
242
241
|
_releaseInfo[release].state = ACTIVE();
|
243
|
-
_releaseInfo[release].activatedAt = TimestampLib.
|
242
|
+
_releaseInfo[release].activatedAt = TimestampLib.current();
|
244
243
|
_releaseInfo[release].disabledAt = TimestampLib.max();
|
245
244
|
|
246
245
|
// grant special roles for registry/staking/pool services
|
@@ -259,6 +258,11 @@ contract ReleaseRegistry is
|
|
259
258
|
_registryAdmin.grantServiceRoleForAllVersions(IService(service), STAKING());
|
260
259
|
}
|
261
260
|
|
261
|
+
service = _registry.getServiceAddress(COMPONENT(), release);
|
262
|
+
if(service != address(0)) {
|
263
|
+
_registryAdmin.grantServiceRoleForAllVersions(IService(service), COMPONENT());
|
264
|
+
}
|
265
|
+
|
262
266
|
service = _registry.getServiceAddress(POOL(), release);
|
263
267
|
if(service != address(0)) {
|
264
268
|
_registryAdmin.grantServiceRoleForAllVersions(IService(service), POOL());
|
@@ -284,7 +288,7 @@ contract ReleaseRegistry is
|
|
284
288
|
} else {
|
285
289
|
checkTransition(state, RELEASE(), ACTIVE(), PAUSED());
|
286
290
|
_releaseInfo[release].state = PAUSED();
|
287
|
-
_releaseInfo[release].disabledAt = TimestampLib.
|
291
|
+
_releaseInfo[release].disabledAt = TimestampLib.current();
|
288
292
|
emit LogReleaseDisabled(release);
|
289
293
|
}
|
290
294
|
|
@@ -367,7 +371,10 @@ contract ReleaseRegistry is
|
|
367
371
|
_releaseInfo[release].releaseAdmin).setReleaseLocked(locked);
|
368
372
|
}
|
369
373
|
|
370
|
-
function _cloneNewReleaseAdmin(
|
374
|
+
function _cloneNewReleaseAdmin(
|
375
|
+
IServiceAuthorization serviceAuthorization,
|
376
|
+
VersionPart release
|
377
|
+
)
|
371
378
|
private
|
372
379
|
returns (ReleaseAdmin clonedAdmin)
|
373
380
|
{
|
@@ -377,7 +384,7 @@ contract ReleaseRegistry is
|
|
377
384
|
|
378
385
|
string memory releaseAdminName = string(
|
379
386
|
abi.encodePacked(
|
380
|
-
"
|
387
|
+
"ReleaseAdminV",
|
381
388
|
release.toString()));
|
382
389
|
|
383
390
|
clonedAdmin.initialize(
|
@@ -386,8 +393,9 @@ contract ReleaseRegistry is
|
|
386
393
|
|
387
394
|
clonedAdmin.completeSetup(
|
388
395
|
address(_registry),
|
389
|
-
address(
|
390
|
-
release
|
396
|
+
address(serviceAuthorization),
|
397
|
+
release,
|
398
|
+
address(this)); // release registry (this contract)
|
391
399
|
|
392
400
|
// lock release (remains locked until activation)
|
393
401
|
clonedAdmin.setReleaseLocked(true);
|
@@ -412,7 +420,7 @@ contract ReleaseRegistry is
|
|
412
420
|
returns (uint256 serviceDomainsCount)
|
413
421
|
{
|
414
422
|
// authorization contract supports IServiceAuthorization interface
|
415
|
-
if(!
|
423
|
+
if(!ContractLib.supportsInterface(address(serviceAuthorization), type(IServiceAuthorization).interfaceId)) {
|
416
424
|
revert ErrorReleaseRegistryNotServiceAuth(address(serviceAuthorization));
|
417
425
|
}
|
418
426
|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {
|
5
|
-
ALL, ACCOUNTING, REGISTRY, RISK, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
|
5
|
+
ALL, RELEASE, ACCOUNTING, REGISTRY, RISK, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
|
6
6
|
} from "../../contracts/type/ObjectType.sol";
|
7
7
|
|
8
8
|
import {IAccess} from "../authorization/IAccess.sol";
|
@@ -19,6 +19,7 @@ import {IPoolService} from "../pool/IPoolService.sol";
|
|
19
19
|
import {IStakingService} from "../staking/IStakingService.sol";
|
20
20
|
import {IRegistryService} from "./IRegistryService.sol";
|
21
21
|
import {IRiskService} from "../product/IRiskService.sol";
|
22
|
+
|
22
23
|
import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
|
23
24
|
|
24
25
|
|
@@ -27,27 +28,31 @@ contract ServiceAuthorizationV3
|
|
27
28
|
{
|
28
29
|
|
29
30
|
constructor(string memory commitHash)
|
30
|
-
ServiceAuthorization(
|
31
|
+
ServiceAuthorization(
|
32
|
+
"ReleaseAdmin",
|
33
|
+
RELEASE(),
|
34
|
+
3,
|
35
|
+
commitHash)
|
31
36
|
{}
|
32
37
|
|
33
38
|
function _setupDomains()
|
34
39
|
internal
|
35
40
|
override
|
36
41
|
{
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
42
|
+
_authorizeServiceDomain(REGISTRY(), address(1));
|
43
|
+
_authorizeServiceDomain(STAKING(), address(2));
|
44
|
+
_authorizeServiceDomain(INSTANCE(), address(3));
|
45
|
+
_authorizeServiceDomain(ACCOUNTING(), address(4));
|
46
|
+
_authorizeServiceDomain(COMPONENT(), address(5));
|
47
|
+
_authorizeServiceDomain(DISTRIBUTION(), address(6));
|
48
|
+
_authorizeServiceDomain(PRICE(), address(7));
|
49
|
+
_authorizeServiceDomain(BUNDLE(), address(8));
|
50
|
+
_authorizeServiceDomain(POOL(), address(9));
|
51
|
+
_authorizeServiceDomain(ORACLE(), address(10));
|
52
|
+
_authorizeServiceDomain(RISK(), address(11));
|
53
|
+
_authorizeServiceDomain(POLICY(), address(12));
|
54
|
+
_authorizeServiceDomain(CLAIM(), address(13));
|
55
|
+
_authorizeServiceDomain(APPLICATION(), address(14));
|
51
56
|
}
|
52
57
|
|
53
58
|
|
@@ -55,10 +60,9 @@ contract ServiceAuthorizationV3
|
|
55
60
|
internal
|
56
61
|
override
|
57
62
|
{
|
58
|
-
|
63
|
+
_setupRegistryServiceAuthorization();
|
59
64
|
_setupStakingServiceAuthorization();
|
60
65
|
_setupInstanceServiceAuthorization();
|
61
|
-
_setupInstanceServiceAuthorization();
|
62
66
|
_setupAccountingServiceAuthorization();
|
63
67
|
_setupComponentServiceAuthorization();
|
64
68
|
_setupClaimServiceAuthorization();
|
@@ -74,7 +78,7 @@ contract ServiceAuthorizationV3
|
|
74
78
|
|
75
79
|
/// @dev registry service authorization.
|
76
80
|
/// authorized functions MUST be implemented with a restricted modifier
|
77
|
-
function
|
81
|
+
function _setupRegistryServiceAuthorization()
|
78
82
|
internal
|
79
83
|
{
|
80
84
|
IAccess.FunctionInfo[] storage functions;
|
@@ -116,12 +120,9 @@ contract ServiceAuthorizationV3
|
|
116
120
|
_authorize(functions, IStakingService.withdrawInstanceRewardReserves.selector, "withdrawInstanceRewardReserves");
|
117
121
|
|
118
122
|
functions = _authorizeForService(STAKING(), ALL());
|
119
|
-
_authorize(functions, IStakingService.
|
120
|
-
_authorize(functions, IStakingService.
|
121
|
-
_authorize(functions, IStakingService.
|
122
|
-
_authorize(functions, IStakingService.updateRewards.selector, "updateRewards");
|
123
|
-
_authorize(functions, IStakingService.claimRewards.selector, "claimRewards");
|
124
|
-
_authorize(functions, IStakingService.unstake.selector, "unstake");
|
123
|
+
_authorize(functions, IStakingService.createStakeObject.selector, "createStakeObject");
|
124
|
+
_authorize(functions, IStakingService.pullDipToken.selector, "pullDipToken");
|
125
|
+
_authorize(functions, IStakingService.pushDipToken.selector, "pushDipToken");
|
125
126
|
}
|
126
127
|
|
127
128
|
|
@@ -131,8 +132,16 @@ contract ServiceAuthorizationV3
|
|
131
132
|
{
|
132
133
|
IAccess.FunctionInfo[] storage functions;
|
133
134
|
functions = _authorizeForService(INSTANCE(), ALL());
|
134
|
-
_authorize(functions, IInstanceService.
|
135
|
+
_authorize(functions, IInstanceService.createRole.selector, "createRole");
|
136
|
+
_authorize(functions, IInstanceService.setRoleActive.selector, "setRoleActive");
|
137
|
+
_authorize(functions, IInstanceService.grantRole.selector, "grantRole");
|
138
|
+
_authorize(functions, IInstanceService.revokeRole.selector, "revokeRole");
|
139
|
+
|
140
|
+
_authorize(functions, IInstanceService.createTarget.selector, "createTarget");
|
141
|
+
_authorize(functions, IInstanceService.authorizeFunctions.selector, "authorizeFunctions");
|
142
|
+
_authorize(functions, IInstanceService.unauthorizeFunctions.selector, "unauthorizeFunctions");
|
135
143
|
_authorize(functions, IInstanceService.setTargetLocked.selector, "setTargetLocked");
|
144
|
+
_authorize(functions, IInstanceService.setInstanceLocked.selector, "setInstanceLocked");
|
136
145
|
|
137
146
|
_authorize(functions, IInstanceService.createInstance.selector, "createInstance");
|
138
147
|
_authorize(functions, IInstanceService.upgradeInstanceReader.selector, "upgradeInstanceReader");
|
@@ -141,8 +150,8 @@ contract ServiceAuthorizationV3
|
|
141
150
|
_authorize(functions, IInstanceService.setStakingLockingPeriod.selector, "setStakingLockingPeriod");
|
142
151
|
_authorize(functions, IInstanceService.setStakingRewardRate.selector, "setStakingRewardRate");
|
143
152
|
_authorize(functions, IInstanceService.setStakingMaxAmount.selector, "setStakingMaxAmount");
|
144
|
-
_authorize(functions, IInstanceService.
|
145
|
-
_authorize(functions, IInstanceService.
|
153
|
+
_authorize(functions, IInstanceService.refillInstanceRewardReserves.selector, "refillInstanceRewardReserves");
|
154
|
+
_authorize(functions, IInstanceService.withdrawInstanceRewardReserves.selector, "withdrawInstanceRewardReserves");
|
146
155
|
}
|
147
156
|
|
148
157
|
/// @dev Accounting service function authorization.
|
@@ -172,6 +181,7 @@ contract ServiceAuthorizationV3
|
|
172
181
|
_authorize(functions, IAccountingService.decreasePoolBalance.selector, "decreasePoolBalance");
|
173
182
|
_authorize(functions, IAccountingService.increaseBundleBalanceForPool.selector, "increaseBundleBalanceForPool");
|
174
183
|
_authorize(functions, IAccountingService.decreaseBundleBalanceForPool.selector, "decreaseBundleBalanceForPool");
|
184
|
+
_authorize(functions, IAccountingService.increaseProductFeesForPool.selector, "increaseProductFeesForPool");
|
175
185
|
|
176
186
|
}
|
177
187
|
|
@@ -203,7 +213,8 @@ contract ServiceAuthorizationV3
|
|
203
213
|
functions = _authorizeForService(RISK(), ALL());
|
204
214
|
_authorize(functions, IRiskService.createRisk.selector, "createRisk");
|
205
215
|
_authorize(functions, IRiskService.updateRisk.selector, "updateRisk");
|
206
|
-
_authorize(functions, IRiskService.
|
216
|
+
_authorize(functions, IRiskService.setRiskLocked.selector, "setRiskLocked");
|
217
|
+
_authorize(functions, IRiskService.closeRisk.selector, "closeRisk");
|
207
218
|
}
|
208
219
|
|
209
220
|
/// @dev Distribution service function authorization.
|
@@ -216,7 +227,7 @@ contract ServiceAuthorizationV3
|
|
216
227
|
_authorize(functions, IClaimService.confirm.selector, "confirm");
|
217
228
|
_authorize(functions, IClaimService.decline.selector, "decline");
|
218
229
|
_authorize(functions, IClaimService.revoke.selector, "revoke");
|
219
|
-
_authorize(functions, IClaimService.
|
230
|
+
_authorize(functions, IClaimService.cancelConfirmedClaim.selector, "cancelConfirmedClaim");
|
220
231
|
_authorize(functions, IClaimService.createPayoutForBeneficiary.selector, "createPayoutForBeneficiary");
|
221
232
|
_authorize(functions, IClaimService.createPayout.selector, "createPayout");
|
222
233
|
_authorize(functions, IClaimService.processPayout.selector, "processPayout");
|
@@ -283,8 +294,7 @@ contract ServiceAuthorizationV3
|
|
283
294
|
functions = _authorizeForService(BUNDLE(), ALL());
|
284
295
|
_authorize(functions, IBundleService.create.selector, "create");
|
285
296
|
_authorize(functions, IBundleService.extend.selector, "extend");
|
286
|
-
_authorize(functions, IBundleService.
|
287
|
-
_authorize(functions, IBundleService.unlock.selector, "unlock");
|
297
|
+
_authorize(functions, IBundleService.setLocked.selector, "setLocked");
|
288
298
|
_authorize(functions, IBundleService.setFee.selector, "setFee");
|
289
299
|
}
|
290
300
|
|
@@ -322,6 +332,7 @@ contract ServiceAuthorizationV3
|
|
322
332
|
_authorize(functions, IPolicyService.createPolicy.selector, "createPolicy");
|
323
333
|
_authorize(functions, IPolicyService.collectPremium.selector, "collectPremium");
|
324
334
|
_authorize(functions, IPolicyService.activate.selector, "activate");
|
335
|
+
_authorize(functions, IPolicyService.adjustActivation.selector, "adjustActivation");
|
325
336
|
_authorize(functions, IPolicyService.expire.selector, "expire");
|
326
337
|
_authorize(functions, IPolicyService.expirePolicy.selector, "expirePolicy");
|
327
338
|
_authorize(functions, IPolicyService.close.selector, "close");
|
@@ -3,15 +3,14 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
5
5
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
|
-
import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
|
7
|
-
|
8
|
-
import {REGISTRY} from "../type/ObjectType.sol";
|
9
|
-
import {VersionPart} from "../type/Version.sol";
|
10
6
|
|
11
7
|
import {IRegistry} from "./IRegistry.sol";
|
12
8
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
13
|
-
import {
|
9
|
+
import {IStaking} from "../staking/IStaking.sol";
|
10
|
+
|
11
|
+
import {ChainId, ChainIdLib} from "../type/ChainId.sol";
|
14
12
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
13
|
+
import {VersionPart} from "../type/Version.sol";
|
15
14
|
|
16
15
|
/// @dev The TokenRegistry contract is used to whitelist/manage ERC-20 of tokens per major release.
|
17
16
|
/// Only whitelisted tokens can be used as default tokens for products, distribution and pools components.
|
@@ -19,39 +18,41 @@ contract TokenRegistry is
|
|
19
18
|
AccessManaged,
|
20
19
|
IRegistryLinked
|
21
20
|
{
|
22
|
-
event LogTokenRegistryTokenRegistered(
|
23
|
-
event LogTokenRegistryTokenGlobalStateSet(
|
24
|
-
event LogTokenRegistryTokenStateSet(
|
21
|
+
event LogTokenRegistryTokenRegistered(ChainId chainId, address token, uint256 decimals, string symbol);
|
22
|
+
event LogTokenRegistryTokenGlobalStateSet(ChainId chainId, address token, bool active);
|
23
|
+
event LogTokenRegistryTokenStateSet(ChainId chainId, address token, VersionPart release, bool active);
|
25
24
|
|
26
25
|
error ErrorTokenRegistryChainIdZero();
|
27
26
|
error ErrorTokenRegistryTokenAddressZero();
|
28
27
|
|
29
|
-
error ErrorTokenRegistryNotRemoteToken(
|
30
|
-
error ErrorTokenRegistryTokenAlreadyRegistered(
|
31
|
-
error ErrorTokenRegistryTokenNotContract(
|
32
|
-
error ErrorTokenRegistryTokenNotErc20(
|
28
|
+
error ErrorTokenRegistryNotRemoteToken(ChainId chainId, address token);
|
29
|
+
error ErrorTokenRegistryTokenAlreadyRegistered(ChainId chainId, address token);
|
30
|
+
error ErrorTokenRegistryTokenNotContract(ChainId chainId, address token);
|
31
|
+
error ErrorTokenRegistryTokenNotErc20(ChainId chainId, address token);
|
33
32
|
|
34
|
-
error ErrorTokenRegistryTokenNotRegistered(
|
35
|
-
error ErrorTokenRegistryMajorVersionInvalid(VersionPart
|
33
|
+
error ErrorTokenRegistryTokenNotRegistered(ChainId chainId, address token);
|
34
|
+
error ErrorTokenRegistryMajorVersionInvalid(VersionPart release);
|
36
35
|
|
37
36
|
struct TokenInfo {
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
37
|
+
// slot 0
|
38
|
+
ChainId chainId; // 96
|
39
|
+
address token; // 20
|
40
|
+
uint8 decimals; // 8
|
42
41
|
bool active;
|
42
|
+
// slot 1
|
43
|
+
string symbol;
|
43
44
|
}
|
44
45
|
|
45
|
-
mapping(
|
46
|
-
mapping(
|
46
|
+
mapping(ChainId chainId => mapping(address token => TokenInfo info)) internal _tokenInfo;
|
47
|
+
mapping(ChainId chainId => mapping(address token => mapping(VersionPart release => bool isActive))) internal _active;
|
47
48
|
TokenInfo [] internal _token;
|
48
49
|
|
49
50
|
IRegistry internal _registry;
|
50
|
-
|
51
|
+
ChainId internal _chainId = ChainIdLib.current();
|
51
52
|
IERC20Metadata internal _dipToken;
|
52
53
|
|
53
54
|
/// @dev enforces msg.sender is owner of nft (or initial owner of nft ownable)
|
54
|
-
modifier onlyRegisteredToken(
|
55
|
+
modifier onlyRegisteredToken(ChainId chainId, address token) {
|
55
56
|
if (!isRegistered(chainId, token)) {
|
56
57
|
revert ErrorTokenRegistryTokenNotRegistered(chainId, token);
|
57
58
|
}
|
@@ -66,12 +67,13 @@ contract TokenRegistry is
|
|
66
67
|
setAuthority(authority);
|
67
68
|
|
68
69
|
_registry = registry;
|
70
|
+
|
71
|
+
// TODO deal with chains without a dip token
|
69
72
|
_dipToken = _verifyOnchainToken(address(dipToken));
|
70
73
|
|
71
74
|
// register dip token
|
72
|
-
uint256 chainId = block.chainid;
|
73
75
|
_registerToken(
|
74
|
-
|
76
|
+
_chainId,
|
75
77
|
address(_dipToken),
|
76
78
|
_dipToken.decimals(),
|
77
79
|
_dipToken.symbol());
|
@@ -85,15 +87,18 @@ contract TokenRegistry is
|
|
85
87
|
external
|
86
88
|
restricted()
|
87
89
|
{
|
90
|
+
// checks
|
88
91
|
IERC20Metadata token = _verifyOnchainToken(tokenAddress);
|
89
|
-
|
92
|
+
|
93
|
+
// effects
|
94
|
+
_registerToken(_chainId, tokenAddress, token.decimals(), token.symbol());
|
90
95
|
}
|
91
96
|
|
92
97
|
|
93
98
|
/// @dev register the remote token with the provided attributes.
|
94
99
|
/// this function may not be used for tokens when chainId == block.chainid.
|
95
100
|
function registerRemoteToken(
|
96
|
-
|
101
|
+
ChainId chainId,
|
97
102
|
address token,
|
98
103
|
uint8 decimals,
|
99
104
|
string memory symbol
|
@@ -101,7 +106,7 @@ contract TokenRegistry is
|
|
101
106
|
external
|
102
107
|
restricted()
|
103
108
|
{
|
104
|
-
if (chainId ==
|
109
|
+
if (chainId == _chainId) {
|
105
110
|
revert ErrorTokenRegistryNotRemoteToken(chainId, token);
|
106
111
|
}
|
107
112
|
|
@@ -113,7 +118,7 @@ contract TokenRegistry is
|
|
113
118
|
/// when setting a token to active=false isActive will return false
|
114
119
|
/// regardless of release specific active value.
|
115
120
|
function setActive(
|
116
|
-
|
121
|
+
ChainId chainId,
|
117
122
|
address token,
|
118
123
|
bool active
|
119
124
|
)
|
@@ -126,32 +131,32 @@ contract TokenRegistry is
|
|
126
131
|
}
|
127
132
|
|
128
133
|
|
129
|
-
/// @dev sets active state for specified token and major version.
|
134
|
+
/// @dev sets active state for specified token and release (major version).
|
130
135
|
/// internally calls setActiveWithVersionCheck() with enforcing version check.
|
131
136
|
/// token state is informative, registry have no clue about used tokens
|
132
137
|
/// component owner is responsible for token selection and operations
|
133
138
|
/// service MUST deny registration of component with inactive token.
|
134
139
|
function setActiveForVersion(
|
135
|
-
|
140
|
+
ChainId chainId,
|
136
141
|
address token,
|
137
|
-
VersionPart
|
142
|
+
VersionPart release,
|
138
143
|
bool active
|
139
144
|
)
|
140
145
|
external
|
141
146
|
restricted()
|
142
147
|
onlyRegisteredToken(chainId, token)
|
143
148
|
{
|
144
|
-
_setActiveWithVersionCheck(chainId, token,
|
149
|
+
_setActiveWithVersionCheck(chainId, token, release, active, true);
|
145
150
|
}
|
146
151
|
|
147
152
|
|
148
153
|
/// @dev as setActiveForVersion() with the option to skip the version check.
|
149
154
|
/// enforcing the version check checks if the provided major version with the release manager.
|
150
|
-
/// the function reverts if the provided
|
155
|
+
/// the function reverts if the provided release is unknown to the release manager.
|
151
156
|
function setActiveWithVersionCheck(
|
152
|
-
|
157
|
+
ChainId chainId,
|
153
158
|
address token,
|
154
|
-
VersionPart
|
159
|
+
VersionPart release,
|
155
160
|
bool active,
|
156
161
|
bool enforceVersionCheck
|
157
162
|
)
|
@@ -159,14 +164,14 @@ contract TokenRegistry is
|
|
159
164
|
restricted()
|
160
165
|
onlyRegisteredToken(chainId, token)
|
161
166
|
{
|
162
|
-
_setActiveWithVersionCheck(chainId, token,
|
167
|
+
_setActiveWithVersionCheck(chainId, token, release, active, enforceVersionCheck);
|
163
168
|
}
|
164
169
|
|
165
170
|
|
166
171
|
function _setActiveWithVersionCheck(
|
167
|
-
|
172
|
+
ChainId chainId,
|
168
173
|
address token,
|
169
|
-
VersionPart
|
174
|
+
VersionPart release,
|
170
175
|
bool active,
|
171
176
|
bool enforceVersionCheck
|
172
177
|
)
|
@@ -174,15 +179,15 @@ contract TokenRegistry is
|
|
174
179
|
{
|
175
180
|
// verify valid major version
|
176
181
|
if(enforceVersionCheck) {
|
177
|
-
uint256 version =
|
178
|
-
if (!getRegistry().isActiveRelease(
|
179
|
-
revert ErrorTokenRegistryMajorVersionInvalid(
|
182
|
+
uint256 version = release.toInt();
|
183
|
+
if (!getRegistry().isActiveRelease(release)) {
|
184
|
+
revert ErrorTokenRegistryMajorVersionInvalid(release);
|
180
185
|
}
|
181
186
|
}
|
182
187
|
|
183
|
-
_active[chainId][token][
|
188
|
+
_active[chainId][token][release] = active;
|
184
189
|
|
185
|
-
emit LogTokenRegistryTokenStateSet(chainId, token,
|
190
|
+
emit LogTokenRegistryTokenStateSet(chainId, token, release, active);
|
186
191
|
}
|
187
192
|
|
188
193
|
/// @dev returns the dip token for this chain
|
@@ -201,17 +206,17 @@ contract TokenRegistry is
|
|
201
206
|
}
|
202
207
|
|
203
208
|
/// @dev returns the token info for the specified token coordinates.
|
204
|
-
function getTokenInfo(
|
209
|
+
function getTokenInfo(ChainId chainId, address token) external view returns (TokenInfo memory tokenInfo) {
|
205
210
|
return _tokenInfo[chainId][token];
|
206
211
|
}
|
207
212
|
|
208
213
|
/// @dev returns true iff the specified token has been registered for this TokenRegistry contract.
|
209
|
-
function isRegistered(
|
210
|
-
return _tokenInfo[chainId][token].chainId
|
214
|
+
function isRegistered(ChainId chainId, address token) public view returns (bool) {
|
215
|
+
return _tokenInfo[chainId][token].chainId.gtz();
|
211
216
|
}
|
212
217
|
|
213
218
|
/// @dev returns true iff both the token is active for the specfied release and the global token state is active
|
214
|
-
function isActive(
|
219
|
+
function isActive(ChainId chainId, address token, VersionPart release) external view returns (bool) {
|
215
220
|
if(!_tokenInfo[chainId][token].active) {
|
216
221
|
return false;
|
217
222
|
}
|
@@ -242,16 +247,15 @@ contract TokenRegistry is
|
|
242
247
|
returns (IERC20Metadata token)
|
243
248
|
{
|
244
249
|
token = IERC20Metadata(tokenAddress);
|
245
|
-
uint256 chainId = block.chainid;
|
246
250
|
|
247
251
|
// MUST be contract
|
248
252
|
if(tokenAddress.code.length == 0) {
|
249
|
-
revert ErrorTokenRegistryTokenNotContract(
|
253
|
+
revert ErrorTokenRegistryTokenNotContract(ChainIdLib.current(), tokenAddress);
|
250
254
|
}
|
251
255
|
|
252
256
|
// MUST implement required erc20 view functions
|
253
257
|
if(!_implementsErc20Functions(token)) {
|
254
|
-
revert ErrorTokenRegistryTokenNotErc20(
|
258
|
+
revert ErrorTokenRegistryTokenNotErc20(ChainIdLib.current(), tokenAddress);
|
255
259
|
}
|
256
260
|
}
|
257
261
|
|
@@ -284,13 +288,13 @@ contract TokenRegistry is
|
|
284
288
|
/// - token not yet registered
|
285
289
|
/// - chainId not zero
|
286
290
|
/// - token address not zero
|
287
|
-
function _registerToken(
|
291
|
+
function _registerToken(ChainId chainId, address token, uint8 decimals, string memory symbol) internal {
|
288
292
|
|
289
293
|
if (isRegistered(chainId, token)) {
|
290
294
|
revert ErrorTokenRegistryTokenAlreadyRegistered(chainId, token);
|
291
295
|
}
|
292
296
|
|
293
|
-
if(chainId
|
297
|
+
if(chainId.eqz()) {
|
294
298
|
revert ErrorTokenRegistryChainIdZero();
|
295
299
|
}
|
296
300
|
|
@@ -4,7 +4,7 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
5
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
6
|
|
7
|
-
import {Amount} from "../type/Amount.sol";
|
7
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
8
8
|
import {IComponent} from "./IComponent.sol";
|
9
9
|
import {IComponents} from "../instance/module/IComponents.sol";
|
10
10
|
import {IComponentService} from "./IComponentService.sol";
|
@@ -25,7 +25,6 @@ abstract contract Component is
|
|
25
25
|
struct ComponentStorage {
|
26
26
|
string _name; // unique (per instance) component name
|
27
27
|
bool _isInterceptor;
|
28
|
-
bytes _data;
|
29
28
|
IComponentService _componentService;
|
30
29
|
}
|
31
30
|
|
@@ -46,7 +45,7 @@ abstract contract Component is
|
|
46
45
|
}
|
47
46
|
|
48
47
|
|
49
|
-
function
|
48
|
+
function __Component_init(
|
50
49
|
address authority,
|
51
50
|
address registry,
|
52
51
|
NftId parentNftId,
|
@@ -54,8 +53,7 @@ abstract contract Component is
|
|
54
53
|
ObjectType componentType,
|
55
54
|
bool isInterceptor,
|
56
55
|
address initialOwner,
|
57
|
-
bytes memory registryData
|
58
|
-
bytes memory componentData // other component specific data
|
56
|
+
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
59
57
|
)
|
60
58
|
internal
|
61
59
|
virtual
|
@@ -78,7 +76,6 @@ abstract contract Component is
|
|
78
76
|
ComponentStorage storage $ = _getComponentStorage();
|
79
77
|
$._name = name;
|
80
78
|
$._isInterceptor = isInterceptor;
|
81
|
-
$._data = componentData;
|
82
79
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
83
80
|
|
84
81
|
_registerInterface(type(IAccessManaged).interfaceId);
|
@@ -152,7 +149,11 @@ abstract contract Component is
|
|
152
149
|
function _approveTokenHandler(IERC20Metadata token, Amount amount)
|
153
150
|
internal
|
154
151
|
virtual
|
152
|
+
returns (Amount oldAllowanceAmount)
|
155
153
|
{
|
154
|
+
oldAllowanceAmount = AmountLib.toAmount(
|
155
|
+
token.allowance(address(getTokenHandler()), address(this)));
|
156
|
+
|
156
157
|
_getComponentStorage()._componentService.approveTokenHandler(
|
157
158
|
token,
|
158
159
|
amount);
|
@@ -197,8 +198,7 @@ abstract contract Component is
|
|
197
198
|
|
198
199
|
return IComponents.ComponentInfo({
|
199
200
|
name: $._name,
|
200
|
-
tokenHandler: TokenHandler(address(0))
|
201
|
-
data: $._data // user specific component data
|
201
|
+
tokenHandler: TokenHandler(address(0))
|
202
202
|
});
|
203
203
|
}
|
204
204
|
|