@etherisc/gif-next 0.0.2-9e6b423-414 → 0.0.2-9f1b659-471
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +86 -34
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +73 -35
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +52 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +2 -2
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2 -2
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- 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/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +37 -18
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +19 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +311 -151
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +112 -86
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +19 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +199 -15
- 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 +65 -42
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +16 -16
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +79 -44
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +16 -16
- 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 +57 -22
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +27 -8
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +69 -50
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +16 -16
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +248 -68
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +16 -16
- 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/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +26 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +96 -4
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +37 -12
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2 -2
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +16 -16
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +56 -56
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +118 -26
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +69 -31
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +106 -98
- 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 +2 -2
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +23 -4
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- 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 -0
- 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 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +49 -20
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +78 -40
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +37 -26
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +19 -19
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +280 -119
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +106 -48
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +180 -27
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +19 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +220 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +19 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +36 -52
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +292 -65
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +94 -52
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +202 -61
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +75 -33
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +19 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +19 -19
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +128 -104
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +95 -65
- 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 +19 -0
- 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 +109 -46
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +91 -49
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +79 -74
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +82 -40
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +19 -0
- 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 +70 -32
- 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 +18 -7
- 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 +56 -45
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2 -2
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +29 -21
- 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 +65 -27
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2 -2
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +81 -81
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +17 -17
- 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 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +120 -56
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +96 -50
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +9 -9
- 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 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +48 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +6 -6
- 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 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +6 -6
- 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 +1146 -53
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +91 -111
- package/artifacts/contracts/staking/ITargetManager.sol/ITargetManager.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetManager.sol/ITargetManager.json +69 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1392 -181
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +73 -72
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +138 -56
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +174 -180
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +115 -167
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +68 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1290 -599
- package/artifacts/contracts/staking/TargetManager.sol/TargetManager.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManager.sol/TargetManager.json +134 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +72 -32
- 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 +2 -2
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -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 +2 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- 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/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/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/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/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 +2 -2
- 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 +55 -17
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -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 +13 -0
- package/contracts/accounting/IAccountingService.sol +2 -0
- package/contracts/authorization/AccessAdmin.sol +5 -5
- package/contracts/authorization/AccessAdminLib.sol +2 -2
- package/contracts/authorization/Authorization.sol +2 -7
- package/contracts/authorization/IAuthorization.sol +0 -1
- package/contracts/authorization/ServiceAuthorization.sol +2 -2
- package/contracts/distribution/BasicDistribution.sol +2 -2
- package/contracts/distribution/Distribution.sol +5 -3
- package/contracts/distribution/DistributionService.sol +27 -21
- package/contracts/distribution/IDistributionService.sol +10 -4
- package/contracts/examples/fire/FireProduct.sol +6 -6
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -19
- package/contracts/instance/IInstance.sol +1 -1
- package/contracts/instance/IInstanceService.sol +7 -3
- package/contracts/instance/Instance.sol +6 -4
- package/contracts/instance/InstanceAuthorizationV3.sol +2 -1
- package/contracts/instance/InstanceService.sol +21 -32
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/base/BalanceStore.sol +1 -1
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/oracle/BasicOracle.sol +1 -1
- package/contracts/oracle/Oracle.sol +2 -2
- package/contracts/oracle/OracleService.sol +4 -4
- package/contracts/pool/BasicPool.sol +3 -14
- package/contracts/pool/BasicPoolAuthorization.sol +1 -2
- 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 +4 -14
- package/contracts/pool/PoolLib.sol +10 -22
- package/contracts/pool/PoolService.sol +35 -8
- package/contracts/product/ApplicationService.sol +58 -9
- package/contracts/product/BasicProduct.sol +1 -1
- package/contracts/product/BasicProductAuthorization.sol +2 -0
- package/contracts/product/ClaimService.sol +39 -40
- 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 +13 -8
- package/contracts/product/PolicyServiceLib.sol +7 -7
- package/contracts/product/PricingService.sol +22 -25
- package/contracts/product/Product.sol +38 -12
- package/contracts/product/RiskService.sol +48 -12
- package/contracts/registry/IRegistry.sol +11 -9
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAuthorization.sol +55 -20
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseRegistry.sol +8 -3
- package/contracts/registry/ServiceAuthorizationV3.sol +10 -12
- package/contracts/registry/TokenRegistry.sol +52 -49
- package/contracts/shared/Component.sol +6 -2
- package/contracts/shared/ComponentService.sol +15 -6
- package/contracts/shared/ContractLib.sol +3 -2
- package/contracts/shared/IComponent.sol +1 -1
- package/contracts/shared/IComponentService.sol +1 -0
- package/contracts/shared/IKeyValueStore.sol +1 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/InstanceLinkedComponent.sol +4 -4
- package/contracts/shared/KeyValueStore.sol +3 -3
- package/contracts/shared/NftOwnable.sol +2 -0
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/staking/IStaking.sol +187 -65
- package/contracts/staking/IStakingService.sol +36 -84
- package/contracts/staking/ITargetManager.sol +28 -0
- package/contracts/staking/Staking.sol +458 -210
- package/contracts/staking/StakingLib.sol +38 -124
- package/contracts/staking/StakingManager.sol +1 -2
- package/contracts/staking/StakingReader.sol +45 -74
- package/contracts/staking/StakingService.sol +39 -185
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +866 -327
- package/contracts/staking/TargetManager.sol +103 -0
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +15 -15
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/Seconds.sol +14 -0
- package/contracts/type/Timestamp.sol +4 -2
- package/contracts/type/UFixed.sol +1 -0
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +13 -1
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +6 -2
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
@@ -6,8 +6,9 @@ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IER
|
|
6
6
|
|
7
7
|
import {IRegistry} from "./IRegistry.sol";
|
8
8
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
9
|
+
import {IStaking} from "../staking/IStaking.sol";
|
9
10
|
|
10
|
-
import {
|
11
|
+
import {ChainId, ChainIdLib} from "../type/ChainId.sol";
|
11
12
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
12
13
|
import {VersionPart} from "../type/Version.sol";
|
13
14
|
|
@@ -17,42 +18,41 @@ contract TokenRegistry is
|
|
17
18
|
AccessManaged,
|
18
19
|
IRegistryLinked
|
19
20
|
{
|
20
|
-
event LogTokenRegistryTokenRegistered(
|
21
|
-
event LogTokenRegistryTokenGlobalStateSet(
|
22
|
-
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);
|
23
24
|
|
24
25
|
error ErrorTokenRegistryChainIdZero();
|
25
26
|
error ErrorTokenRegistryTokenAddressZero();
|
26
27
|
|
27
|
-
error ErrorTokenRegistryNotRemoteToken(
|
28
|
-
error ErrorTokenRegistryTokenAlreadyRegistered(
|
29
|
-
error ErrorTokenRegistryTokenNotContract(
|
30
|
-
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);
|
31
32
|
|
32
|
-
error ErrorTokenRegistryTokenNotRegistered(
|
33
|
-
error ErrorTokenRegistryMajorVersionInvalid(VersionPart
|
33
|
+
error ErrorTokenRegistryTokenNotRegistered(ChainId chainId, address token);
|
34
|
+
error ErrorTokenRegistryMajorVersionInvalid(VersionPart release);
|
34
35
|
|
35
36
|
struct TokenInfo {
|
36
37
|
// slot 0
|
37
|
-
|
38
|
+
ChainId chainId; // 96
|
39
|
+
address token; // 20
|
40
|
+
uint8 decimals; // 8
|
41
|
+
bool active;
|
38
42
|
// slot 1
|
39
43
|
string symbol;
|
40
|
-
// slot 2
|
41
|
-
address token;
|
42
|
-
uint8 decimals;
|
43
|
-
bool active;
|
44
44
|
}
|
45
45
|
|
46
|
-
mapping(
|
47
|
-
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;
|
48
48
|
TokenInfo [] internal _token;
|
49
49
|
|
50
50
|
IRegistry internal _registry;
|
51
|
-
|
51
|
+
ChainId internal _chainId = ChainIdLib.current();
|
52
52
|
IERC20Metadata internal _dipToken;
|
53
53
|
|
54
54
|
/// @dev enforces msg.sender is owner of nft (or initial owner of nft ownable)
|
55
|
-
modifier onlyRegisteredToken(
|
55
|
+
modifier onlyRegisteredToken(ChainId chainId, address token) {
|
56
56
|
if (!isRegistered(chainId, token)) {
|
57
57
|
revert ErrorTokenRegistryTokenNotRegistered(chainId, token);
|
58
58
|
}
|
@@ -67,12 +67,13 @@ contract TokenRegistry is
|
|
67
67
|
setAuthority(authority);
|
68
68
|
|
69
69
|
_registry = registry;
|
70
|
+
|
71
|
+
// TODO deal with chains without a dip token
|
70
72
|
_dipToken = _verifyOnchainToken(address(dipToken));
|
71
73
|
|
72
74
|
// register dip token
|
73
|
-
uint256 chainId = block.chainid;
|
74
75
|
_registerToken(
|
75
|
-
|
76
|
+
_chainId,
|
76
77
|
address(_dipToken),
|
77
78
|
_dipToken.decimals(),
|
78
79
|
_dipToken.symbol());
|
@@ -86,15 +87,18 @@ contract TokenRegistry is
|
|
86
87
|
external
|
87
88
|
restricted()
|
88
89
|
{
|
90
|
+
// checks
|
89
91
|
IERC20Metadata token = _verifyOnchainToken(tokenAddress);
|
90
|
-
|
92
|
+
|
93
|
+
// effects
|
94
|
+
_registerToken(_chainId, tokenAddress, token.decimals(), token.symbol());
|
91
95
|
}
|
92
96
|
|
93
97
|
|
94
98
|
/// @dev register the remote token with the provided attributes.
|
95
99
|
/// this function may not be used for tokens when chainId == block.chainid.
|
96
100
|
function registerRemoteToken(
|
97
|
-
|
101
|
+
ChainId chainId,
|
98
102
|
address token,
|
99
103
|
uint8 decimals,
|
100
104
|
string memory symbol
|
@@ -102,7 +106,7 @@ contract TokenRegistry is
|
|
102
106
|
external
|
103
107
|
restricted()
|
104
108
|
{
|
105
|
-
if (chainId ==
|
109
|
+
if (chainId == _chainId) {
|
106
110
|
revert ErrorTokenRegistryNotRemoteToken(chainId, token);
|
107
111
|
}
|
108
112
|
|
@@ -114,7 +118,7 @@ contract TokenRegistry is
|
|
114
118
|
/// when setting a token to active=false isActive will return false
|
115
119
|
/// regardless of release specific active value.
|
116
120
|
function setActive(
|
117
|
-
|
121
|
+
ChainId chainId,
|
118
122
|
address token,
|
119
123
|
bool active
|
120
124
|
)
|
@@ -127,32 +131,32 @@ contract TokenRegistry is
|
|
127
131
|
}
|
128
132
|
|
129
133
|
|
130
|
-
/// @dev sets active state for specified token and major version.
|
134
|
+
/// @dev sets active state for specified token and release (major version).
|
131
135
|
/// internally calls setActiveWithVersionCheck() with enforcing version check.
|
132
136
|
/// token state is informative, registry have no clue about used tokens
|
133
137
|
/// component owner is responsible for token selection and operations
|
134
138
|
/// service MUST deny registration of component with inactive token.
|
135
139
|
function setActiveForVersion(
|
136
|
-
|
140
|
+
ChainId chainId,
|
137
141
|
address token,
|
138
|
-
VersionPart
|
142
|
+
VersionPart release,
|
139
143
|
bool active
|
140
144
|
)
|
141
145
|
external
|
142
146
|
restricted()
|
143
147
|
onlyRegisteredToken(chainId, token)
|
144
148
|
{
|
145
|
-
_setActiveWithVersionCheck(chainId, token,
|
149
|
+
_setActiveWithVersionCheck(chainId, token, release, active, true);
|
146
150
|
}
|
147
151
|
|
148
152
|
|
149
153
|
/// @dev as setActiveForVersion() with the option to skip the version check.
|
150
154
|
/// enforcing the version check checks if the provided major version with the release manager.
|
151
|
-
/// the function reverts if the provided
|
155
|
+
/// the function reverts if the provided release is unknown to the release manager.
|
152
156
|
function setActiveWithVersionCheck(
|
153
|
-
|
157
|
+
ChainId chainId,
|
154
158
|
address token,
|
155
|
-
VersionPart
|
159
|
+
VersionPart release,
|
156
160
|
bool active,
|
157
161
|
bool enforceVersionCheck
|
158
162
|
)
|
@@ -160,14 +164,14 @@ contract TokenRegistry is
|
|
160
164
|
restricted()
|
161
165
|
onlyRegisteredToken(chainId, token)
|
162
166
|
{
|
163
|
-
_setActiveWithVersionCheck(chainId, token,
|
167
|
+
_setActiveWithVersionCheck(chainId, token, release, active, enforceVersionCheck);
|
164
168
|
}
|
165
169
|
|
166
170
|
|
167
171
|
function _setActiveWithVersionCheck(
|
168
|
-
|
172
|
+
ChainId chainId,
|
169
173
|
address token,
|
170
|
-
VersionPart
|
174
|
+
VersionPart release,
|
171
175
|
bool active,
|
172
176
|
bool enforceVersionCheck
|
173
177
|
)
|
@@ -175,15 +179,15 @@ contract TokenRegistry is
|
|
175
179
|
{
|
176
180
|
// verify valid major version
|
177
181
|
if(enforceVersionCheck) {
|
178
|
-
uint256 version =
|
179
|
-
if (!getRegistry().isActiveRelease(
|
180
|
-
revert ErrorTokenRegistryMajorVersionInvalid(
|
182
|
+
uint256 version = release.toInt();
|
183
|
+
if (!getRegistry().isActiveRelease(release)) {
|
184
|
+
revert ErrorTokenRegistryMajorVersionInvalid(release);
|
181
185
|
}
|
182
186
|
}
|
183
187
|
|
184
|
-
_active[chainId][token][
|
188
|
+
_active[chainId][token][release] = active;
|
185
189
|
|
186
|
-
emit LogTokenRegistryTokenStateSet(chainId, token,
|
190
|
+
emit LogTokenRegistryTokenStateSet(chainId, token, release, active);
|
187
191
|
}
|
188
192
|
|
189
193
|
/// @dev returns the dip token for this chain
|
@@ -202,17 +206,17 @@ contract TokenRegistry is
|
|
202
206
|
}
|
203
207
|
|
204
208
|
/// @dev returns the token info for the specified token coordinates.
|
205
|
-
function getTokenInfo(
|
209
|
+
function getTokenInfo(ChainId chainId, address token) external view returns (TokenInfo memory tokenInfo) {
|
206
210
|
return _tokenInfo[chainId][token];
|
207
211
|
}
|
208
212
|
|
209
213
|
/// @dev returns true iff the specified token has been registered for this TokenRegistry contract.
|
210
|
-
function isRegistered(
|
211
|
-
return _tokenInfo[chainId][token].chainId
|
214
|
+
function isRegistered(ChainId chainId, address token) public view returns (bool) {
|
215
|
+
return _tokenInfo[chainId][token].chainId.gtz();
|
212
216
|
}
|
213
217
|
|
214
218
|
/// @dev returns true iff both the token is active for the specfied release and the global token state is active
|
215
|
-
function isActive(
|
219
|
+
function isActive(ChainId chainId, address token, VersionPart release) external view returns (bool) {
|
216
220
|
if(!_tokenInfo[chainId][token].active) {
|
217
221
|
return false;
|
218
222
|
}
|
@@ -243,16 +247,15 @@ contract TokenRegistry is
|
|
243
247
|
returns (IERC20Metadata token)
|
244
248
|
{
|
245
249
|
token = IERC20Metadata(tokenAddress);
|
246
|
-
uint256 chainId = block.chainid;
|
247
250
|
|
248
251
|
// MUST be contract
|
249
252
|
if(tokenAddress.code.length == 0) {
|
250
|
-
revert ErrorTokenRegistryTokenNotContract(
|
253
|
+
revert ErrorTokenRegistryTokenNotContract(ChainIdLib.current(), tokenAddress);
|
251
254
|
}
|
252
255
|
|
253
256
|
// MUST implement required erc20 view functions
|
254
257
|
if(!_implementsErc20Functions(token)) {
|
255
|
-
revert ErrorTokenRegistryTokenNotErc20(
|
258
|
+
revert ErrorTokenRegistryTokenNotErc20(ChainIdLib.current(), tokenAddress);
|
256
259
|
}
|
257
260
|
}
|
258
261
|
|
@@ -285,13 +288,13 @@ contract TokenRegistry is
|
|
285
288
|
/// - token not yet registered
|
286
289
|
/// - chainId not zero
|
287
290
|
/// - token address not zero
|
288
|
-
function _registerToken(
|
291
|
+
function _registerToken(ChainId chainId, address token, uint8 decimals, string memory symbol) internal {
|
289
292
|
|
290
293
|
if (isRegistered(chainId, token)) {
|
291
294
|
revert ErrorTokenRegistryTokenAlreadyRegistered(chainId, token);
|
292
295
|
}
|
293
296
|
|
294
|
-
if(chainId
|
297
|
+
if(chainId.eqz()) {
|
295
298
|
revert ErrorTokenRegistryChainIdZero();
|
296
299
|
}
|
297
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";
|
@@ -46,7 +46,7 @@ abstract contract Component is
|
|
46
46
|
}
|
47
47
|
|
48
48
|
|
49
|
-
function
|
49
|
+
function __Component_init(
|
50
50
|
address authority,
|
51
51
|
address registry,
|
52
52
|
NftId parentNftId,
|
@@ -152,7 +152,11 @@ abstract contract Component is
|
|
152
152
|
function _approveTokenHandler(IERC20Metadata token, Amount amount)
|
153
153
|
internal
|
154
154
|
virtual
|
155
|
+
returns (Amount oldAllowanceAmount)
|
155
156
|
{
|
157
|
+
oldAllowanceAmount = AmountLib.toAmount(
|
158
|
+
token.allowance(address(getTokenHandler()), address(this)));
|
159
|
+
|
156
160
|
_getComponentStorage()._componentService.approveTokenHandler(
|
157
161
|
token,
|
158
162
|
amount);
|
@@ -11,19 +11,21 @@ import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
|
11
11
|
import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
12
12
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
13
13
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
14
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
15
14
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
16
15
|
import {IProductComponent} from "../product/IProductComponent.sol";
|
17
16
|
import {IRegistry} from "../registry/IRegistry.sol";
|
18
17
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
18
|
+
import {IStaking} from "../staking/IStaking.sol";
|
19
|
+
import {IStakingService} from "../staking/IStakingService.sol";
|
19
20
|
|
20
21
|
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
21
22
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
23
|
+
import {ChainIdLib} from "../type/ChainId.sol";
|
22
24
|
import {ContractLib} from "../shared/ContractLib.sol";
|
23
25
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
24
26
|
import {KEEP_STATE} from "../type/StateId.sol";
|
25
27
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
26
|
-
import {ObjectType, ACCOUNTING, REGISTRY, COMPONENT, DISTRIBUTION, INSTANCE, ORACLE, POOL, PRODUCT} from "../type/ObjectType.sol";
|
28
|
+
import {ObjectType, ACCOUNTING, REGISTRY, COMPONENT, DISTRIBUTION, INSTANCE, ORACLE, POOL, PRODUCT, STAKING} from "../type/ObjectType.sol";
|
27
29
|
import {Service} from "../shared/Service.sol";
|
28
30
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
29
31
|
import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
|
@@ -38,7 +40,7 @@ contract ComponentService is
|
|
38
40
|
|
39
41
|
IAccountingService private _accountingService;
|
40
42
|
IRegistryService private _registryService;
|
41
|
-
|
43
|
+
IStaking private _staking;
|
42
44
|
|
43
45
|
function _initialize(
|
44
46
|
address owner,
|
@@ -57,7 +59,7 @@ contract ComponentService is
|
|
57
59
|
|
58
60
|
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
59
61
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
60
|
-
|
62
|
+
_staking = IStakingService(_getServiceAddress(STAKING())).getStaking();
|
61
63
|
|
62
64
|
_registerInterface(type(IComponentService).interfaceId);
|
63
65
|
}
|
@@ -142,6 +144,7 @@ contract ComponentService is
|
|
142
144
|
instance.getInstanceAdmin().setComponentLocked(
|
143
145
|
component,
|
144
146
|
locked);
|
147
|
+
emit LogComponentServiceComponentLocked(component, locked);
|
145
148
|
}
|
146
149
|
|
147
150
|
|
@@ -219,10 +222,16 @@ contract ComponentService is
|
|
219
222
|
}
|
220
223
|
|
221
224
|
IInstance instance = IInstance(msg.sender);
|
225
|
+
NftId instanceNftId = registry.getNftIdForAddress(msg.sender);
|
222
226
|
productNftId = _verifyAndRegister(
|
223
227
|
instance,
|
224
228
|
productAddress,
|
225
|
-
|
229
|
+
instanceNftId, // instance is parent of product to be registered
|
230
|
+
token);
|
231
|
+
|
232
|
+
// add product specific token for product to staking
|
233
|
+
_staking.addTargetToken(
|
234
|
+
instanceNftId,
|
226
235
|
token);
|
227
236
|
}
|
228
237
|
|
@@ -560,8 +569,8 @@ contract ComponentService is
|
|
560
569
|
// check if provided token is whitelisted and active
|
561
570
|
if (!ContractLib.isActiveToken(
|
562
571
|
getRegistry().getTokenRegistryAddress(),
|
572
|
+
ChainIdLib.current(),
|
563
573
|
token,
|
564
|
-
block.chainid,
|
565
574
|
AccessManagerCloneable(authority()).getRelease())
|
566
575
|
) {
|
567
576
|
revert ErrorComponentServiceTokenInvalid(token);
|
@@ -9,6 +9,7 @@ import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
|
9
9
|
import {IRegistry} from "../registry/IRegistry.sol";
|
10
10
|
import {IService} from "../shared/IService.sol";
|
11
11
|
|
12
|
+
import {ChainId} from "../type/ChainId.sol";
|
12
13
|
import {NftId} from "../type/NftId.sol";
|
13
14
|
import {ObjectType, INSTANCE, PRODUCT, DISTRIBUTION, ORACLE, POOL} from "../type/ObjectType.sol";
|
14
15
|
import {VersionPart} from "../type/Version.sol";
|
@@ -22,7 +23,7 @@ interface IInstanceAdminHelper {
|
|
22
23
|
}
|
23
24
|
|
24
25
|
interface ITokenRegistryHelper {
|
25
|
-
function isActive(
|
26
|
+
function isActive(ChainId chainId, address token, VersionPart release) external view returns (bool);
|
26
27
|
}
|
27
28
|
|
28
29
|
library ContractLib {
|
@@ -114,8 +115,8 @@ library ContractLib {
|
|
114
115
|
|
115
116
|
function isActiveToken(
|
116
117
|
address tokenRegistryAddress,
|
118
|
+
ChainId chainId,
|
117
119
|
address token,
|
118
|
-
uint256 chainId,
|
119
120
|
VersionPart release
|
120
121
|
)
|
121
122
|
external
|
@@ -40,7 +40,7 @@ interface IComponent is
|
|
40
40
|
function getTokenHandler() external view returns (TokenHandler tokenHandler);
|
41
41
|
|
42
42
|
/// @dev defines the wallet address used to hold the ERC20 tokens related to this component
|
43
|
-
/// the default address is the
|
43
|
+
/// the default address is the token handler address
|
44
44
|
function getWallet() external view returns (address walletAddress);
|
45
45
|
|
46
46
|
/// @dev returns true iff this compoent intercepts nft minting and transfers for objects registered by this component
|
@@ -45,6 +45,7 @@ interface IComponentService is
|
|
45
45
|
error ErrorComponentServiceWithdrawAmountExceedsLimit(Amount withdrawnAmount, Amount withdrawLimit);
|
46
46
|
error ErrorComponentServiceWalletAllowanceTooSmall(address wallet, address spender, uint256 allowance, uint256 amount);
|
47
47
|
|
48
|
+
event LogComponentServiceComponentLocked(address component, bool locked);
|
48
49
|
event LogComponentServiceRegistered(NftId instanceNftId, NftId componentNftId, ObjectType componentType, address component, address token, address initialOwner);
|
49
50
|
event LogComponentServiceWalletAddressChanged(NftId componentNftId, address currentWallet, address newWallet);
|
50
51
|
event LogComponentServiceWalletTokensTransferred(NftId componentNftId, address currentWallet, address newWallet, uint256 currentBalance);
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Blocknumber
|
4
|
+
import {Blocknumber} from "../type/Blocknumber.sol";
|
5
5
|
import {Key32, KeyId} from "../type/Key32.sol";
|
6
6
|
import {NftId} from "../type/NftId.sol";
|
7
7
|
import {ObjectType} from "../type/ObjectType.sol";
|
@@ -11,6 +11,8 @@ interface INftOwnable is
|
|
11
11
|
IERC165,
|
12
12
|
IRegistryLinked
|
13
13
|
{
|
14
|
+
event LogNftOwnableNftLinkedToAddress(NftId nftId, address owner);
|
15
|
+
|
14
16
|
error ErrorNftOwnableInitialOwnerZero();
|
15
17
|
error ErrorNftOwnableNotOwner(address account);
|
16
18
|
error ErrorNftOwnableInvalidType(NftId nftId, ObjectType expectedObjectType);
|
@@ -52,12 +52,12 @@ abstract contract InstanceLinkedComponent is
|
|
52
52
|
}
|
53
53
|
|
54
54
|
/// @inheritdoc IInstanceLinkedComponent
|
55
|
-
function getInstance() public view override returns (IInstance instance) {
|
55
|
+
function getInstance() public view virtual override returns (IInstance instance) {
|
56
56
|
return _getInstanceLinkedComponentStorage()._instance;
|
57
57
|
}
|
58
58
|
|
59
59
|
/// @inheritdoc IInstanceLinkedComponent
|
60
|
-
function getAuthorization() external view returns (IAuthorization authorization) {
|
60
|
+
function getAuthorization() external view virtual returns (IAuthorization authorization) {
|
61
61
|
return _getInstanceLinkedComponentStorage()._initialAuthorization;
|
62
62
|
}
|
63
63
|
|
@@ -67,7 +67,7 @@ abstract contract InstanceLinkedComponent is
|
|
67
67
|
}
|
68
68
|
}
|
69
69
|
|
70
|
-
function
|
70
|
+
function __InstanceLinkedComponent_init(
|
71
71
|
address registry,
|
72
72
|
NftId parentNftId,
|
73
73
|
string memory name,
|
@@ -93,7 +93,7 @@ abstract contract InstanceLinkedComponent is
|
|
93
93
|
IRegistry(registry).getObjectAddress(instanceNftId));
|
94
94
|
|
95
95
|
// set component specific parameters
|
96
|
-
|
96
|
+
__Component_init(
|
97
97
|
$._instance.authority(), // instance linked components need to point to instance admin
|
98
98
|
registry,
|
99
99
|
parentNftId,
|
@@ -1,7 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Blocknumber,
|
4
|
+
import {Blocknumber, BlocknumberLib} from "../type/Blocknumber.sol";
|
5
5
|
import {Key32, KeyId, Key32Lib} from "../type/Key32.sol";
|
6
6
|
import {NftId} from "../type/NftId.sol";
|
7
7
|
import {ObjectType} from "../type/ObjectType.sol";
|
@@ -38,7 +38,7 @@ abstract contract KeyValueStore is
|
|
38
38
|
revert ErrorKeyValueStoreNoLifecycle(objectType);
|
39
39
|
}
|
40
40
|
|
41
|
-
Blocknumber blocknumber =
|
41
|
+
Blocknumber blocknumber = BlocknumberLib.current();
|
42
42
|
StateId initialState = getInitialState(objectType);
|
43
43
|
|
44
44
|
// set metadata
|
@@ -102,7 +102,7 @@ abstract contract KeyValueStore is
|
|
102
102
|
}
|
103
103
|
|
104
104
|
// update metadata
|
105
|
-
metadata.updatedIn =
|
105
|
+
metadata.updatedIn = BlocknumberLib.current();
|
106
106
|
}
|
107
107
|
|
108
108
|
function exists(Key32 key32) public view returns (bool) {
|
@@ -3,12 +3,13 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol";
|
5
5
|
|
6
|
+
import {IPolicyHolder} from "./IPolicyHolder.sol";
|
7
|
+
|
6
8
|
import {Amount} from "../type/Amount.sol";
|
7
9
|
import {ClaimId} from "../type/ClaimId.sol";
|
8
10
|
import {InitializableERC165} from "./InitializableERC165.sol";
|
9
|
-
import {IPolicyHolder} from "./IPolicyHolder.sol";
|
10
11
|
import {NftId} from "../type/NftId.sol";
|
11
|
-
import {PayoutId
|
12
|
+
import {PayoutId} from "../type/PayoutId.sol";
|
12
13
|
import {RegistryLinked} from "./RegistryLinked.sol";
|
13
14
|
import {Timestamp} from "../type/Timestamp.sol";
|
14
15
|
|