@etherisc/gif-next 0.0.2-f78c672-338 → 0.0.2-f78f882-351
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 +63 -312
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +111 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +655 -299
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +8 -39
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +331 -56
- 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 +501 -231
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +131 -16
- 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 -59
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +322 -67
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -33
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +379 -150
- 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 -32
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +233 -20
- 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 +109 -110
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +321 -66
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -134
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +321 -66
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +82 -84
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +321 -66
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -73
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -148
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +321 -66
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -190
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +321 -66
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- 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/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +450 -28
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +355 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +488 -85
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +942 -471
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +289 -78
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +595 -532
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +387 -64
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -52
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1316 -2015
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -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 +33 -45
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +340 -60
- 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 -31
- 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 -31
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +87 -42
- 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 -79
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +321 -66
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -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 +186 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -41
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -41
- 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 +346 -87
- 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 +218 -61
- 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 -58
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +321 -66
- 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 +55 -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 -52
- 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 +157 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -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 +91 -118
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +113 -67
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -52
- 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/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -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 +71 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +799 -472
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +47 -18
- 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 +841 -419
- 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 +197 -129
- 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 -31
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +212 -232
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +133 -71
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +130 -39
- 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/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -31
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +119 -147
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -31
- 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/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -31
- 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 +1453 -153
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +161 -110
- 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 +1565 -239
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +146 -67
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +200 -157
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -44
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1633 -819
- 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 +159 -87
- 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 +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -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 +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
- 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/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +56 -2
- 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 +15 -3
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +361 -371
- package/contracts/authorization/AccessAdminLib.sol +678 -0
- package/contracts/authorization/AccessManagerCloneable.sol +23 -32
- package/contracts/authorization/Authorization.sol +82 -229
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +83 -84
- package/contracts/authorization/IAuthorization.sol +3 -51
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +5 -7
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +12 -17
- package/contracts/distribution/DistributionService.sol +129 -66
- package/contracts/distribution/IDistributionComponent.sol +3 -1
- package/contracts/distribution/IDistributionService.sol +21 -9
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +6 -10
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -8
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -23
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +98 -12
- package/contracts/instance/IInstanceService.sol +54 -7
- package/contracts/instance/Instance.sol +165 -61
- package/contracts/instance/InstanceAdmin.sol +183 -313
- package/contracts/instance/InstanceAuthorizationV3.sol +123 -61
- package/contracts/instance/InstanceReader.sol +350 -394
- package/contracts/instance/InstanceService.sol +283 -173
- 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 -6
- 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 -6
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +4 -8
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -18
- 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 +7 -2
- package/contracts/pool/Pool.sol +6 -20
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +41 -184
- package/contracts/product/ApplicationService.sol +65 -12
- package/contracts/product/BasicProduct.sol +2 -5
- package/contracts/product/BasicProductAuthorization.sol +11 -4
- 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 +9 -2
- package/contracts/product/IRiskService.sol +18 -3
- package/contracts/product/PolicyService.sol +40 -77
- package/contracts/product/PolicyServiceLib.sol +79 -5
- package/contracts/product/PricingService.sol +29 -32
- package/contracts/product/Product.sol +40 -18
- package/contracts/product/RiskService.sol +50 -15
- 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 +85 -266
- package/contracts/registry/RegistryAuthorization.sol +337 -0
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +70 -116
- package/contracts/registry/ReleaseRegistry.sol +57 -43
- package/contracts/registry/ServiceAuthorizationV3.sol +128 -33
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +20 -37
- package/contracts/shared/ComponentService.sol +249 -250
- package/contracts/shared/ContractLib.sol +134 -75
- package/contracts/shared/IComponent.sol +1 -4
- package/contracts/shared/IComponentService.sol +21 -22
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +6 -11
- package/contracts/shared/NftOwnable.sol +4 -2
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Registerable.sol +1 -4
- package/contracts/shared/Service.sol +6 -4
- package/contracts/shared/TokenHandler.sol +5 -4
- package/contracts/staking/IStaking.sol +265 -64
- package/contracts/staking/IStakingService.sol +44 -82
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +475 -204
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +49 -158
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -330
- 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 +21 -17
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -2
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/type/Version.sol +39 -0
- 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 +1 -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/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- 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/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- 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
@@ -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,19 +4,15 @@ 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, AmountLib} from "../type/Amount.sol";
|
7
8
|
import {IComponent} from "./IComponent.sol";
|
8
9
|
import {IComponents} from "../instance/module/IComponents.sol";
|
9
10
|
import {IComponentService} from "./IComponentService.sol";
|
10
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
11
|
-
import {IRelease} from "../registry/IRelease.sol";
|
12
|
-
|
13
|
-
import {Amount, AmountLib} from "../type/Amount.sol";
|
14
|
-
import {ContractLib} from "./ContractLib.sol";
|
15
11
|
import {NftId} from "../type/NftId.sol";
|
16
|
-
import {ObjectType, COMPONENT
|
12
|
+
import {ObjectType, COMPONENT} from "../type/ObjectType.sol";
|
17
13
|
import {Registerable} from "../shared/Registerable.sol";
|
18
14
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
19
|
-
import {Version, VersionLib
|
15
|
+
import {Version, VersionLib} from "../type/Version.sol";
|
20
16
|
|
21
17
|
|
22
18
|
abstract contract Component is
|
@@ -28,9 +24,7 @@ abstract contract Component is
|
|
28
24
|
|
29
25
|
struct ComponentStorage {
|
30
26
|
string _name; // unique (per instance) component name
|
31
|
-
IERC20Metadata _token; // token for this component
|
32
27
|
bool _isInterceptor;
|
33
|
-
bytes _data;
|
34
28
|
IComponentService _componentService;
|
35
29
|
}
|
36
30
|
|
@@ -44,42 +38,27 @@ abstract contract Component is
|
|
44
38
|
|
45
39
|
|
46
40
|
function _getComponentStorage() private pure returns (ComponentStorage storage $) {
|
41
|
+
// solhint-disable-next-line no-inline-assembly
|
47
42
|
assembly {
|
48
43
|
$.slot := COMPONENT_LOCATION_V1
|
49
44
|
}
|
50
45
|
}
|
51
46
|
|
52
47
|
|
53
|
-
function
|
48
|
+
function __Component_init(
|
54
49
|
address authority,
|
55
50
|
address registry,
|
56
51
|
NftId parentNftId,
|
57
52
|
string memory name,
|
58
|
-
address token,
|
59
53
|
ObjectType componentType,
|
60
54
|
bool isInterceptor,
|
61
55
|
address initialOwner,
|
62
|
-
bytes memory registryData
|
63
|
-
bytes memory componentData // other component specific data
|
56
|
+
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
64
57
|
)
|
65
58
|
internal
|
66
59
|
virtual
|
67
60
|
onlyInitializing()
|
68
61
|
{
|
69
|
-
address tokenRegistry = IRegistry(registry).getTokenRegistryAddress();
|
70
|
-
VersionPart release = IRelease(authority).getRelease();
|
71
|
-
|
72
|
-
// special case for staking: component intitialization happens before
|
73
|
-
// GIF core contract setup is complete. at that time token registry
|
74
|
-
// is not yet available. therefore we skip the check for staking.
|
75
|
-
if (componentType != STAKING()) {
|
76
|
-
|
77
|
-
// check if provided token is whitelisted and active
|
78
|
-
if (!ContractLib.isActiveToken(tokenRegistry, token, block.chainid, release)) {
|
79
|
-
revert ErrorComponentTokenInvalid(token);
|
80
|
-
}
|
81
|
-
}
|
82
|
-
|
83
62
|
if (bytes(name).length == 0) {
|
84
63
|
revert ErrorComponentNameLengthZero();
|
85
64
|
}
|
@@ -96,9 +75,7 @@ abstract contract Component is
|
|
96
75
|
// set component state
|
97
76
|
ComponentStorage storage $ = _getComponentStorage();
|
98
77
|
$._name = name;
|
99
|
-
$._token = IERC20Metadata(token);
|
100
78
|
$._isInterceptor = isInterceptor;
|
101
|
-
$._data = componentData;
|
102
79
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
103
80
|
|
104
81
|
_registerInterface(type(IAccessManaged).interfaceId);
|
@@ -111,7 +88,7 @@ abstract contract Component is
|
|
111
88
|
/// override internal function _nftTransferFrom to implement custom behaviour
|
112
89
|
function nftTransferFrom(address from, address to, uint256 tokenId, address operator)
|
113
90
|
external
|
114
|
-
onlyChainNft
|
91
|
+
onlyChainNft
|
115
92
|
{
|
116
93
|
_nftTransferFrom(from, to, tokenId, operator);
|
117
94
|
}
|
@@ -126,7 +103,7 @@ abstract contract Component is
|
|
126
103
|
}
|
127
104
|
|
128
105
|
function getToken() public view virtual returns (IERC20Metadata token) {
|
129
|
-
return
|
106
|
+
return getTokenHandler().TOKEN();
|
130
107
|
}
|
131
108
|
|
132
109
|
function getName() public view override returns(string memory name) {
|
@@ -172,7 +149,11 @@ abstract contract Component is
|
|
172
149
|
function _approveTokenHandler(IERC20Metadata token, Amount amount)
|
173
150
|
internal
|
174
151
|
virtual
|
152
|
+
returns (Amount oldAllowanceAmount)
|
175
153
|
{
|
154
|
+
oldAllowanceAmount = AmountLib.toAmount(
|
155
|
+
token.allowance(address(getTokenHandler()), address(this)));
|
156
|
+
|
176
157
|
_getComponentStorage()._componentService.approveTokenHandler(
|
177
158
|
token,
|
178
159
|
amount);
|
@@ -184,10 +165,14 @@ abstract contract Component is
|
|
184
165
|
function _nftTransferFrom(address from, address to, uint256 tokenId, address operator)
|
185
166
|
internal
|
186
167
|
virtual
|
187
|
-
|
168
|
+
// solhint-disable-next-line no-empty-blocks
|
169
|
+
{
|
170
|
+
// empty default implementation
|
171
|
+
}
|
188
172
|
|
189
173
|
|
190
|
-
/// @dev
|
174
|
+
/// @dev Sets the components wallet to the specified address.
|
175
|
+
/// Depending on the source of the component information this function needs to be overwritten.
|
191
176
|
/// eg for instance linked components that externally store this information with the instance store contract
|
192
177
|
function _setWallet(
|
193
178
|
address newWallet
|
@@ -202,7 +187,7 @@ abstract contract Component is
|
|
202
187
|
internal
|
203
188
|
virtual
|
204
189
|
{
|
205
|
-
_getComponentStorage()._componentService.
|
190
|
+
_getComponentStorage()._componentService.setLocked(locked);
|
206
191
|
}
|
207
192
|
|
208
193
|
|
@@ -213,9 +198,7 @@ abstract contract Component is
|
|
213
198
|
|
214
199
|
return IComponents.ComponentInfo({
|
215
200
|
name: $._name,
|
216
|
-
|
217
|
-
tokenHandler: TokenHandler(address(0)),
|
218
|
-
data: $._data // user specific component data
|
201
|
+
tokenHandler: TokenHandler(address(0))
|
219
202
|
});
|
220
203
|
}
|
221
204
|
|