@etherisc/gif-next 0.0.2-f761c0d-394 → 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 +120 -320
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +810 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +760 -278
- 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 +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +485 -26
- 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 +588 -220
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +227 -20
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +275 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +479 -17
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +212 -483
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +475 -41
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +139 -391
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +814 -399
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +246 -122
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +135 -197
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +582 -141
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1474 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2043 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +844 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +844 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1161 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1637 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2575 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +844 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +55 -197
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/KeyValueStore.sol/KeyValueStore.json → instance/IBaseStore.sol/IBaseStore.json} +34 -227
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +593 -70
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +407 -62
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +631 -188
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1154 -380
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +363 -92
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1644 -853
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +421 -233
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +160 -102
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1300 -1852
- 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 +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
- 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 +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- 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/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +152 -360
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +473 -42
- 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 +129 -139
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +128 -328
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +195 -95
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +198 -443
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +474 -40
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +567 -263
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +234 -102
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +383 -53
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +158 -222
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +711 -340
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +148 -402
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +925 -545
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +246 -102
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +177 -97
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +281 -431
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +474 -40
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +466 -245
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +204 -120
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +350 -18
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +417 -101
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +272 -232
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +283 -157
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +532 -311
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +213 -105
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +249 -329
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +177 -129
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +273 -423
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +794 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +395 -36
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +97 -148
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +622 -94
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +913 -404
- 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 +136 -290
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +159 -87
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2271 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1401 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +511 -20
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +86 -287
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +624 -560
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +216 -118
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -103
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +535 -240
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +118 -139
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +35 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +167 -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 +84 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +117 -328
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/{NftIdSetManager.sol/NftIdSetManager.json → NftIdSet.sol/NftIdSet.json} +4 -4
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +41 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +141 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +86 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1513 -204
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +235 -123
- 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 +1635 -465
- 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 +211 -105
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +295 -183
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +282 -281
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +162 -94
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1646 -786
- 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 +184 -76
- 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 +63 -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 +28 -4
- 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 +98 -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 +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- 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 +19 -19
- 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 +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +93 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- 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 +24 -5
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +109 -35
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +672 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
- package/contracts/accounting/AccountingService.sol +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +401 -313
- package/contracts/authorization/AccessAdminLib.sol +678 -0
- package/contracts/authorization/AccessManagerCloneable.sol +128 -4
- package/contracts/authorization/Authorization.sol +179 -207
- package/contracts/authorization/IAccess.sol +29 -11
- package/contracts/authorization/IAccessAdmin.sol +89 -83
- package/contracts/authorization/IAuthorization.sol +9 -37
- package/contracts/authorization/IServiceAuthorization.sol +57 -17
- package/contracts/authorization/ServiceAuthorization.sol +235 -25
- package/contracts/distribution/BasicDistribution.sol +23 -32
- package/contracts/distribution/BasicDistributionAuthorization.sol +34 -10
- package/contracts/distribution/Distribution.sol +50 -88
- package/contracts/distribution/DistributionService.sol +276 -130
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +11 -14
- package/contracts/distribution/IDistributionService.sol +56 -26
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +437 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +117 -47
- package/contracts/instance/IInstanceService.sol +64 -37
- package/contracts/instance/Instance.sol +202 -105
- package/contracts/instance/InstanceAdmin.sol +218 -177
- package/contracts/instance/InstanceAuthorizationV3.sol +160 -87
- package/contracts/instance/InstanceReader.sol +456 -255
- package/contracts/instance/InstanceService.sol +335 -264
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +154 -107
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +13 -10
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +29 -21
- package/contracts/instance/module/IDistribution.sol +21 -9
- package/contracts/instance/module/IPolicy.sol +50 -29
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +3 -7
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +25 -30
- package/contracts/oracle/OracleService.sol +119 -87
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +40 -43
- package/contracts/pool/BasicPoolAuthorization.sol +43 -11
- package/contracts/pool/BundleService.sol +222 -132
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +43 -33
- package/contracts/pool/IPoolComponent.sol +20 -10
- package/contracts/pool/IPoolService.sol +97 -77
- package/contracts/pool/Pool.sol +148 -128
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +419 -257
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +154 -81
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +13 -47
- package/contracts/product/BasicProductAuthorization.sol +33 -10
- package/contracts/product/ClaimService.sol +391 -207
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +29 -3
- package/contracts/product/IClaimService.sol +48 -11
- package/contracts/product/IPolicyService.sol +61 -37
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +28 -5
- package/contracts/product/IRiskService.sol +48 -0
- package/contracts/product/PolicyService.sol +445 -275
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +90 -84
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +203 -104
- package/contracts/product/RiskService.sol +189 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +84 -33
- package/contracts/registry/IRegistryService.sol +3 -10
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +378 -220
- package/contracts/registry/RegistryAdmin.sol +101 -293
- package/contracts/registry/RegistryAuthorization.sol +337 -0
- package/contracts/registry/RegistryService.sol +42 -67
- package/contracts/registry/RegistryServiceManager.sol +5 -5
- package/contracts/registry/ReleaseAdmin.sol +199 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +525 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +205 -63
- package/contracts/registry/TokenRegistry.sol +61 -59
- package/contracts/shared/Component.sol +71 -142
- package/contracts/shared/ComponentService.sol +457 -347
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ContractLib.sol +312 -0
- package/contracts/shared/IComponent.sol +6 -18
- package/contracts/shared/IComponentService.sol +50 -41
- package/contracts/shared/IInstanceLinkedComponent.sol +7 -27
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +4 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +22 -1
- package/contracts/shared/IService.sol +4 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
- package/contracts/shared/InstanceLinkedComponent.sol +84 -43
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +33 -11
- package/contracts/shared/PolicyHolder.sol +20 -59
- package/contracts/shared/Registerable.sol +52 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +22 -38
- package/contracts/shared/TokenHandler.sol +310 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +271 -73
- package/contracts/staking/IStakingService.sol +48 -74
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +534 -250
- package/contracts/staking/StakingLib.sol +195 -0
- package/contracts/staking/StakingManager.sol +14 -15
- package/contracts/staking/StakingReader.sol +72 -88
- package/contracts/staking/StakingService.sol +62 -152
- package/contracts/staking/StakingServiceManager.sol +9 -7
- package/contracts/staking/StakingStore.sol +1096 -343
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +73 -46
- package/contracts/type/Amount.sol +31 -5
- package/contracts/type/Blocknumber.sol +24 -23
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +76 -44
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +61 -55
- package/contracts/type/Seconds.sol +40 -1
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +14 -7
- package/contracts/type/UFixed.sol +57 -126
- package/contracts/type/Version.sol +57 -6
- package/contracts/{shared → upgradeability}/IVersionable.sol +3 -0
- package/contracts/{shared → upgradeability}/ProxyManager.sol +97 -50
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +24 -0
- package/contracts/{shared → upgradeability}/Versionable.sol +8 -5
- package/package.json +7 -6
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -181
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +0 -400
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1159
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -460
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -164
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/base/ObjectManager.sol +0 -79
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/IProductService.sol +0 -33
- package/contracts/product/ProductService.sol +0 -124
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -487
- package/contracts/shared/ComponentVerifyingService.sol +0 -117
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/InitializableCustom.sol +0 -177
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
- package/contracts/staking/StakeManagerLib.sol +0 -231
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -3,57 +3,56 @@ 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
|
-
|
11
|
-
import {IRegisterable} from "../shared/IRegisterable.sol";
|
12
6
|
|
13
7
|
import {IRegistry} from "./IRegistry.sol";
|
14
8
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
15
|
-
import {
|
16
|
-
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
9
|
+
import {IStaking} from "../staking/IStaking.sol";
|
17
10
|
|
11
|
+
import {ChainId, ChainIdLib} from "../type/ChainId.sol";
|
12
|
+
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
13
|
+
import {VersionPart} from "../type/Version.sol";
|
18
14
|
|
19
|
-
/// @
|
15
|
+
/// @dev The TokenRegistry contract is used to whitelist/manage ERC-20 of tokens per major release.
|
16
|
+
/// Only whitelisted tokens can be used as default tokens for products, distribution and pools components.
|
20
17
|
contract TokenRegistry is
|
21
18
|
AccessManaged,
|
22
19
|
IRegistryLinked
|
23
20
|
{
|
24
|
-
event LogTokenRegistryTokenRegistered(
|
25
|
-
event LogTokenRegistryTokenGlobalStateSet(
|
26
|
-
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);
|
27
24
|
|
28
25
|
error ErrorTokenRegistryChainIdZero();
|
29
26
|
error ErrorTokenRegistryTokenAddressZero();
|
30
27
|
|
31
|
-
error ErrorTokenRegistryNotRemoteToken(
|
32
|
-
error ErrorTokenRegistryTokenAlreadyRegistered(
|
33
|
-
error ErrorTokenRegistryTokenNotContract(
|
34
|
-
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);
|
35
32
|
|
36
|
-
error ErrorTokenRegistryTokenNotRegistered(
|
37
|
-
error ErrorTokenRegistryMajorVersionInvalid(VersionPart
|
33
|
+
error ErrorTokenRegistryTokenNotRegistered(ChainId chainId, address token);
|
34
|
+
error ErrorTokenRegistryMajorVersionInvalid(VersionPart release);
|
38
35
|
|
39
36
|
struct TokenInfo {
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
37
|
+
// slot 0
|
38
|
+
ChainId chainId; // 96
|
39
|
+
address token; // 20
|
40
|
+
uint8 decimals; // 8
|
44
41
|
bool active;
|
42
|
+
// slot 1
|
43
|
+
string symbol;
|
45
44
|
}
|
46
45
|
|
47
|
-
mapping(
|
48
|
-
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;
|
49
48
|
TokenInfo [] internal _token;
|
50
49
|
|
51
50
|
IRegistry internal _registry;
|
52
|
-
|
51
|
+
ChainId internal _chainId = ChainIdLib.current();
|
53
52
|
IERC20Metadata internal _dipToken;
|
54
53
|
|
55
54
|
/// @dev enforces msg.sender is owner of nft (or initial owner of nft ownable)
|
56
|
-
modifier onlyRegisteredToken(
|
55
|
+
modifier onlyRegisteredToken(ChainId chainId, address token) {
|
57
56
|
if (!isRegistered(chainId, token)) {
|
58
57
|
revert ErrorTokenRegistryTokenNotRegistered(chainId, token);
|
59
58
|
}
|
@@ -68,12 +67,13 @@ contract TokenRegistry is
|
|
68
67
|
setAuthority(authority);
|
69
68
|
|
70
69
|
_registry = registry;
|
71
|
-
|
70
|
+
|
71
|
+
// TODO deal with chains without a dip token
|
72
|
+
_dipToken = _verifyOnchainToken(address(dipToken));
|
72
73
|
|
73
74
|
// register dip token
|
74
|
-
uint256 chainId = block.chainid;
|
75
75
|
_registerToken(
|
76
|
-
|
76
|
+
_chainId,
|
77
77
|
address(_dipToken),
|
78
78
|
_dipToken.decimals(),
|
79
79
|
_dipToken.symbol());
|
@@ -87,15 +87,18 @@ contract TokenRegistry is
|
|
87
87
|
external
|
88
88
|
restricted()
|
89
89
|
{
|
90
|
+
// checks
|
90
91
|
IERC20Metadata token = _verifyOnchainToken(tokenAddress);
|
91
|
-
|
92
|
+
|
93
|
+
// effects
|
94
|
+
_registerToken(_chainId, tokenAddress, token.decimals(), token.symbol());
|
92
95
|
}
|
93
96
|
|
94
97
|
|
95
98
|
/// @dev register the remote token with the provided attributes.
|
96
99
|
/// this function may not be used for tokens when chainId == block.chainid.
|
97
100
|
function registerRemoteToken(
|
98
|
-
|
101
|
+
ChainId chainId,
|
99
102
|
address token,
|
100
103
|
uint8 decimals,
|
101
104
|
string memory symbol
|
@@ -103,7 +106,7 @@ contract TokenRegistry is
|
|
103
106
|
external
|
104
107
|
restricted()
|
105
108
|
{
|
106
|
-
if (chainId ==
|
109
|
+
if (chainId == _chainId) {
|
107
110
|
revert ErrorTokenRegistryNotRemoteToken(chainId, token);
|
108
111
|
}
|
109
112
|
|
@@ -115,7 +118,7 @@ contract TokenRegistry is
|
|
115
118
|
/// when setting a token to active=false isActive will return false
|
116
119
|
/// regardless of release specific active value.
|
117
120
|
function setActive(
|
118
|
-
|
121
|
+
ChainId chainId,
|
119
122
|
address token,
|
120
123
|
bool active
|
121
124
|
)
|
@@ -128,32 +131,32 @@ contract TokenRegistry is
|
|
128
131
|
}
|
129
132
|
|
130
133
|
|
131
|
-
/// @dev sets active state for specified token and major version.
|
134
|
+
/// @dev sets active state for specified token and release (major version).
|
132
135
|
/// internally calls setActiveWithVersionCheck() with enforcing version check.
|
133
136
|
/// token state is informative, registry have no clue about used tokens
|
134
137
|
/// component owner is responsible for token selection and operations
|
135
138
|
/// service MUST deny registration of component with inactive token.
|
136
139
|
function setActiveForVersion(
|
137
|
-
|
140
|
+
ChainId chainId,
|
138
141
|
address token,
|
139
|
-
VersionPart
|
142
|
+
VersionPart release,
|
140
143
|
bool active
|
141
144
|
)
|
142
145
|
external
|
143
146
|
restricted()
|
144
147
|
onlyRegisteredToken(chainId, token)
|
145
148
|
{
|
146
|
-
_setActiveWithVersionCheck(chainId, token,
|
149
|
+
_setActiveWithVersionCheck(chainId, token, release, active, true);
|
147
150
|
}
|
148
151
|
|
149
152
|
|
150
153
|
/// @dev as setActiveForVersion() with the option to skip the version check.
|
151
154
|
/// enforcing the version check checks if the provided major version with the release manager.
|
152
|
-
/// the function reverts if the provided
|
155
|
+
/// the function reverts if the provided release is unknown to the release manager.
|
153
156
|
function setActiveWithVersionCheck(
|
154
|
-
|
157
|
+
ChainId chainId,
|
155
158
|
address token,
|
156
|
-
VersionPart
|
159
|
+
VersionPart release,
|
157
160
|
bool active,
|
158
161
|
bool enforceVersionCheck
|
159
162
|
)
|
@@ -161,14 +164,14 @@ contract TokenRegistry is
|
|
161
164
|
restricted()
|
162
165
|
onlyRegisteredToken(chainId, token)
|
163
166
|
{
|
164
|
-
_setActiveWithVersionCheck(chainId, token,
|
167
|
+
_setActiveWithVersionCheck(chainId, token, release, active, enforceVersionCheck);
|
165
168
|
}
|
166
169
|
|
167
170
|
|
168
171
|
function _setActiveWithVersionCheck(
|
169
|
-
|
172
|
+
ChainId chainId,
|
170
173
|
address token,
|
171
|
-
VersionPart
|
174
|
+
VersionPart release,
|
172
175
|
bool active,
|
173
176
|
bool enforceVersionCheck
|
174
177
|
)
|
@@ -176,15 +179,15 @@ contract TokenRegistry is
|
|
176
179
|
{
|
177
180
|
// verify valid major version
|
178
181
|
if(enforceVersionCheck) {
|
179
|
-
uint256 version =
|
180
|
-
if (!getRegistry().isActiveRelease(
|
181
|
-
revert ErrorTokenRegistryMajorVersionInvalid(
|
182
|
+
uint256 version = release.toInt();
|
183
|
+
if (!getRegistry().isActiveRelease(release)) {
|
184
|
+
revert ErrorTokenRegistryMajorVersionInvalid(release);
|
182
185
|
}
|
183
186
|
}
|
184
187
|
|
185
|
-
_active[chainId][token][
|
188
|
+
_active[chainId][token][release] = active;
|
186
189
|
|
187
|
-
emit LogTokenRegistryTokenStateSet(chainId, token,
|
190
|
+
emit LogTokenRegistryTokenStateSet(chainId, token, release, active);
|
188
191
|
}
|
189
192
|
|
190
193
|
/// @dev returns the dip token for this chain
|
@@ -203,22 +206,22 @@ contract TokenRegistry is
|
|
203
206
|
}
|
204
207
|
|
205
208
|
/// @dev returns the token info for the specified token coordinates.
|
206
|
-
function getTokenInfo(
|
209
|
+
function getTokenInfo(ChainId chainId, address token) external view returns (TokenInfo memory tokenInfo) {
|
207
210
|
return _tokenInfo[chainId][token];
|
208
211
|
}
|
209
212
|
|
210
213
|
/// @dev returns true iff the specified token has been registered for this TokenRegistry contract.
|
211
|
-
function isRegistered(
|
212
|
-
return _tokenInfo[chainId][token].chainId
|
214
|
+
function isRegistered(ChainId chainId, address token) public view returns (bool) {
|
215
|
+
return _tokenInfo[chainId][token].chainId.gtz();
|
213
216
|
}
|
214
217
|
|
215
|
-
/// @dev returns true iff both the token is active for the specfied
|
216
|
-
function isActive(
|
218
|
+
/// @dev returns true iff both the token is active for the specfied release and the global token state is active
|
219
|
+
function isActive(ChainId chainId, address token, VersionPart release) external view returns (bool) {
|
217
220
|
if(!_tokenInfo[chainId][token].active) {
|
218
221
|
return false;
|
219
222
|
}
|
220
223
|
|
221
|
-
return _active[chainId][token][
|
224
|
+
return _active[chainId][token][release];
|
222
225
|
}
|
223
226
|
|
224
227
|
function getDipTokenAddress() external view returns (address) {
|
@@ -244,16 +247,15 @@ contract TokenRegistry is
|
|
244
247
|
returns (IERC20Metadata token)
|
245
248
|
{
|
246
249
|
token = IERC20Metadata(tokenAddress);
|
247
|
-
uint256 chainId = block.chainid;
|
248
250
|
|
249
251
|
// MUST be contract
|
250
252
|
if(tokenAddress.code.length == 0) {
|
251
|
-
revert ErrorTokenRegistryTokenNotContract(
|
253
|
+
revert ErrorTokenRegistryTokenNotContract(ChainIdLib.current(), tokenAddress);
|
252
254
|
}
|
253
255
|
|
254
256
|
// MUST implement required erc20 view functions
|
255
257
|
if(!_implementsErc20Functions(token)) {
|
256
|
-
revert ErrorTokenRegistryTokenNotErc20(
|
258
|
+
revert ErrorTokenRegistryTokenNotErc20(ChainIdLib.current(), tokenAddress);
|
257
259
|
}
|
258
260
|
}
|
259
261
|
|
@@ -286,13 +288,13 @@ contract TokenRegistry is
|
|
286
288
|
/// - token not yet registered
|
287
289
|
/// - chainId not zero
|
288
290
|
/// - token address not zero
|
289
|
-
function _registerToken(
|
291
|
+
function _registerToken(ChainId chainId, address token, uint8 decimals, string memory symbol) internal {
|
290
292
|
|
291
293
|
if (isRegistered(chainId, token)) {
|
292
294
|
revert ErrorTokenRegistryTokenAlreadyRegistered(chainId, token);
|
293
295
|
}
|
294
296
|
|
295
|
-
if(chainId
|
297
|
+
if(chainId.eqz()) {
|
296
298
|
revert ErrorTokenRegistryChainIdZero();
|
297
299
|
}
|
298
300
|
|
@@ -1,22 +1,21 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
4
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
6
5
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
7
|
-
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
8
6
|
|
9
|
-
import {Amount} from "../type/Amount.sol";
|
7
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
10
8
|
import {IComponent} from "./IComponent.sol";
|
11
9
|
import {IComponents} from "../instance/module/IComponents.sol";
|
12
|
-
import {
|
13
|
-
import {
|
10
|
+
import {IComponentService} from "./IComponentService.sol";
|
11
|
+
import {NftId} from "../type/NftId.sol";
|
12
|
+
import {ObjectType, COMPONENT} from "../type/ObjectType.sol";
|
14
13
|
import {Registerable} from "../shared/Registerable.sol";
|
15
14
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
16
|
-
import {
|
15
|
+
import {Version, VersionLib} from "../type/Version.sol";
|
16
|
+
|
17
17
|
|
18
18
|
abstract contract Component is
|
19
|
-
AccessManagedUpgradeable,
|
20
19
|
Registerable,
|
21
20
|
IComponent
|
22
21
|
{
|
@@ -25,11 +24,8 @@ abstract contract Component is
|
|
25
24
|
|
26
25
|
struct ComponentStorage {
|
27
26
|
string _name; // unique (per instance) component name
|
28
|
-
IERC20Metadata _token; // token for this component
|
29
|
-
TokenHandler _tokenHandler;
|
30
|
-
address _wallet;
|
31
27
|
bool _isInterceptor;
|
32
|
-
|
28
|
+
IComponentService _componentService;
|
33
29
|
}
|
34
30
|
|
35
31
|
|
@@ -42,139 +38,64 @@ abstract contract Component is
|
|
42
38
|
|
43
39
|
|
44
40
|
function _getComponentStorage() private pure returns (ComponentStorage storage $) {
|
41
|
+
// solhint-disable-next-line no-inline-assembly
|
45
42
|
assembly {
|
46
43
|
$.slot := COMPONENT_LOCATION_V1
|
47
44
|
}
|
48
45
|
}
|
49
46
|
|
50
|
-
|
47
|
+
|
48
|
+
function __Component_init(
|
51
49
|
address authority,
|
52
50
|
address registry,
|
53
51
|
NftId parentNftId,
|
54
52
|
string memory name,
|
55
|
-
address token,
|
56
53
|
ObjectType componentType,
|
57
54
|
bool isInterceptor,
|
58
55
|
address initialOwner,
|
59
|
-
bytes memory registryData
|
60
|
-
bytes memory componentData // other component specific data
|
56
|
+
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
61
57
|
)
|
62
|
-
|
58
|
+
internal
|
63
59
|
virtual
|
64
60
|
onlyInitializing()
|
65
61
|
{
|
66
|
-
initializeRegisterable(registry, parentNftId, componentType, isInterceptor, initialOwner, registryData);
|
67
|
-
__AccessManaged_init(authority);
|
68
|
-
|
69
|
-
if (token == address(0)) {
|
70
|
-
revert ErrorComponentTokenAddressZero();
|
71
|
-
}
|
72
|
-
|
73
62
|
if (bytes(name).length == 0) {
|
74
63
|
revert ErrorComponentNameLengthZero();
|
75
64
|
}
|
76
65
|
|
66
|
+
__Registerable_init(
|
67
|
+
authority,
|
68
|
+
registry,
|
69
|
+
parentNftId,
|
70
|
+
componentType,
|
71
|
+
isInterceptor,
|
72
|
+
initialOwner,
|
73
|
+
registryData);
|
74
|
+
|
77
75
|
// set component state
|
78
76
|
ComponentStorage storage $ = _getComponentStorage();
|
79
77
|
$._name = name;
|
80
|
-
$._token = IERC20Metadata(token);
|
81
|
-
$._tokenHandler = TokenHandler(address(0));
|
82
|
-
$._wallet = address(this);
|
83
78
|
$._isInterceptor = isInterceptor;
|
84
|
-
$.
|
85
|
-
|
86
|
-
registerInterface(type(IAccessManaged).interfaceId);
|
87
|
-
registerInterface(type(IComponent).interfaceId);
|
88
|
-
}
|
89
|
-
|
90
|
-
|
91
|
-
function approveTokenHandler(Amount spendingLimitAmount)
|
92
|
-
external
|
93
|
-
virtual
|
94
|
-
onlyOwner
|
95
|
-
{
|
96
|
-
approveTokenHandler(address(getToken()), spendingLimitAmount);
|
97
|
-
}
|
79
|
+
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
98
80
|
|
99
|
-
|
100
|
-
|
101
|
-
virtual
|
102
|
-
onlyOwner
|
103
|
-
{
|
104
|
-
if(getWallet() != address(this)) {
|
105
|
-
revert ErrorComponentWalletNotComponent();
|
106
|
-
}
|
107
|
-
|
108
|
-
IERC20Metadata(token).approve(
|
109
|
-
address(getTokenHandler()),
|
110
|
-
spendingLimitAmount.toInt());
|
111
|
-
|
112
|
-
emit LogComponentTokenHandlerApproved(address(getTokenHandler()), spendingLimitAmount);
|
81
|
+
_registerInterface(type(IAccessManaged).interfaceId);
|
82
|
+
_registerInterface(type(IComponent).interfaceId);
|
113
83
|
}
|
114
84
|
|
115
|
-
function setWallet(address newWallet)
|
116
|
-
external
|
117
|
-
virtual
|
118
|
-
override
|
119
|
-
onlyOwner
|
120
|
-
{
|
121
|
-
// checks
|
122
|
-
address currentWallet = getWallet();
|
123
|
-
IERC20Metadata token = getToken();
|
124
|
-
uint256 currentBalance = token.balanceOf(currentWallet);
|
125
|
-
|
126
|
-
if (currentBalance > 0) {
|
127
|
-
if (currentWallet == address(this)) {
|
128
|
-
// move tokens from component smart contract to external wallet
|
129
|
-
} else {
|
130
|
-
// move tokens from external wallet to component smart contract or another external wallet
|
131
|
-
uint256 allowance = token.allowance(currentWallet, address(this));
|
132
|
-
if (allowance < currentBalance) {
|
133
|
-
revert ErrorComponentWalletAllowanceTooSmall(currentWallet, newWallet, allowance, currentBalance);
|
134
|
-
}
|
135
|
-
}
|
136
|
-
}
|
137
|
-
|
138
|
-
// effects
|
139
|
-
_setWallet(newWallet);
|
140
|
-
|
141
|
-
// interactions
|
142
|
-
if (currentBalance > 0) {
|
143
|
-
// transfer tokens from current wallet to new wallet
|
144
|
-
if (currentWallet == address(this)) {
|
145
|
-
// transferFrom requires self allowance too
|
146
|
-
token.approve(address(this), currentBalance);
|
147
|
-
}
|
148
|
-
|
149
|
-
SafeERC20.safeTransferFrom(token, currentWallet, newWallet, currentBalance);
|
150
|
-
emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
|
151
|
-
}
|
152
|
-
}
|
153
|
-
|
154
|
-
|
155
|
-
/// @dev callback function for nft mints
|
156
|
-
/// may only be called by chain nft contract.
|
157
|
-
/// override internal function _nftMint to implement custom behaviour
|
158
|
-
function nftMint(address to, uint256 tokenId)
|
159
|
-
external
|
160
|
-
onlyChainNft
|
161
|
-
{
|
162
|
-
_nftMint(to, tokenId);
|
163
|
-
}
|
164
85
|
|
165
86
|
/// @dev callback function for nft transfers
|
166
87
|
/// may only be called by chain nft contract.
|
167
88
|
/// override internal function _nftTransferFrom to implement custom behaviour
|
168
|
-
function nftTransferFrom(address from, address to, uint256 tokenId)
|
89
|
+
function nftTransferFrom(address from, address to, uint256 tokenId, address operator)
|
169
90
|
external
|
170
91
|
onlyChainNft
|
171
92
|
{
|
172
|
-
_nftTransferFrom(from, to, tokenId);
|
93
|
+
_nftTransferFrom(from, to, tokenId, operator);
|
173
94
|
}
|
174
95
|
|
175
96
|
|
176
97
|
function getWallet() public view virtual returns (address walletAddress) {
|
177
|
-
return
|
98
|
+
return getTokenHandler().getWallet();
|
178
99
|
}
|
179
100
|
|
180
101
|
function getTokenHandler() public virtual view returns (TokenHandler tokenHandler) {
|
@@ -182,13 +103,17 @@ abstract contract Component is
|
|
182
103
|
}
|
183
104
|
|
184
105
|
function getToken() public view virtual returns (IERC20Metadata token) {
|
185
|
-
return
|
106
|
+
return getTokenHandler().TOKEN();
|
186
107
|
}
|
187
108
|
|
188
109
|
function getName() public view override returns(string memory name) {
|
189
110
|
return getComponentInfo().name;
|
190
111
|
}
|
191
112
|
|
113
|
+
function getVersion() public view virtual returns (Version version) {
|
114
|
+
return VersionLib.toVersion(1, 0, 0);
|
115
|
+
}
|
116
|
+
|
192
117
|
function getComponentInfo() public virtual view returns (IComponents.ComponentInfo memory info) {
|
193
118
|
if (isRegistered()) {
|
194
119
|
return _getComponentInfo();
|
@@ -214,52 +139,55 @@ abstract contract Component is
|
|
214
139
|
|
215
140
|
|
216
141
|
function isRegistered() public virtual view returns (bool) {
|
217
|
-
return getRegistry().
|
142
|
+
return getRegistry().getNftIdForAddress(address(this)).gtz();
|
218
143
|
}
|
219
144
|
|
220
145
|
|
221
|
-
/// @dev
|
222
|
-
///
|
223
|
-
|
146
|
+
/// @dev Approves token hanlder to spend up to the specified amount of tokens.
|
147
|
+
/// Reverts if component wallet is not token handler itself.
|
148
|
+
/// Only component owner (nft holder) is authorizes to call this function.
|
149
|
+
function _approveTokenHandler(IERC20Metadata token, Amount amount)
|
224
150
|
internal
|
225
151
|
virtual
|
226
|
-
|
152
|
+
returns (Amount oldAllowanceAmount)
|
153
|
+
{
|
154
|
+
oldAllowanceAmount = AmountLib.toAmount(
|
155
|
+
token.allowance(address(getTokenHandler()), address(this)));
|
156
|
+
|
157
|
+
_getComponentStorage()._componentService.approveTokenHandler(
|
158
|
+
token,
|
159
|
+
amount);
|
160
|
+
}
|
161
|
+
|
227
162
|
|
228
163
|
/// @dev internal function for nft transfers.
|
229
164
|
/// handling logic that deals with nft transfers need to overwrite this function
|
230
|
-
function _nftTransferFrom(address from, address to, uint256 tokenId)
|
165
|
+
function _nftTransferFrom(address from, address to, uint256 tokenId, address operator)
|
231
166
|
internal
|
232
167
|
virtual
|
233
|
-
|
168
|
+
// solhint-disable-next-line no-empty-blocks
|
169
|
+
{
|
170
|
+
// empty default implementation
|
171
|
+
}
|
234
172
|
|
235
173
|
|
236
|
-
/// @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.
|
237
176
|
/// eg for instance linked components that externally store this information with the instance store contract
|
238
|
-
function _setWallet(
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
if (newWallet == currentWallet) {
|
247
|
-
revert ErrorComponentWalletAddressIsSameAsCurrent();
|
248
|
-
}
|
249
|
-
|
250
|
-
$._wallet = newWallet;
|
251
|
-
emit LogComponentWalletAddressChanged(currentWallet, newWallet);
|
252
|
-
|
177
|
+
function _setWallet(
|
178
|
+
address newWallet
|
179
|
+
)
|
180
|
+
internal
|
181
|
+
virtual
|
182
|
+
{
|
183
|
+
_getComponentStorage()._componentService.setWallet(newWallet);
|
253
184
|
}
|
254
185
|
|
255
|
-
|
256
|
-
/// @dev for component contracts that hold its own component information
|
257
|
-
/// this function creates and sets a token hanlder for the components tokens
|
258
|
-
function _createAndSetTokenHandler()
|
186
|
+
function _setLocked(bool locked)
|
259
187
|
internal
|
188
|
+
virtual
|
260
189
|
{
|
261
|
-
|
262
|
-
$._tokenHandler = new TokenHandler(address($._token));
|
190
|
+
_getComponentStorage()._componentService.setLocked(locked);
|
263
191
|
}
|
264
192
|
|
265
193
|
|
@@ -267,15 +195,16 @@ abstract contract Component is
|
|
267
195
|
/// eg for instance linked components that externally store this information with the instance store contract
|
268
196
|
function _getComponentInfo() internal virtual view returns (IComponents.ComponentInfo memory info) {
|
269
197
|
ComponentStorage storage $ = _getComponentStorage();
|
270
|
-
|
198
|
+
|
271
199
|
return IComponents.ComponentInfo({
|
272
200
|
name: $._name,
|
273
|
-
|
274
|
-
token: $._token,
|
275
|
-
tokenHandler: $._tokenHandler,
|
276
|
-
wallet: $._wallet, // initial wallet address
|
277
|
-
data: $._data // user specific component data
|
201
|
+
tokenHandler: TokenHandler(address(0))
|
278
202
|
});
|
279
203
|
}
|
280
204
|
|
205
|
+
/// @dev returns the service address for the specified domain
|
206
|
+
/// gets address via lookup from registry using the major version form the linked instance
|
207
|
+
function _getServiceAddress(ObjectType domain) internal view returns (address) {
|
208
|
+
return getRegistry().getServiceAddress(domain, getRelease());
|
209
|
+
}
|
281
210
|
}
|