@etherisc/gif-next 0.0.2-f78c672-338 → 0.0.2-f78f882-351
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -312
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +111 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +655 -299
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +2008 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +8 -39
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +331 -56
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +501 -231
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +131 -16
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +63 -59
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +322 -67
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -33
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +379 -150
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +160 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -32
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +233 -20
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -110
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +321 -66
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -134
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +321 -66
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +82 -84
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +321 -66
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -73
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -148
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +321 -66
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -190
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +321 -66
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +450 -28
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +355 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +488 -85
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +942 -471
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +289 -78
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +595 -532
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +387 -64
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -52
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1316 -2015
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +33 -45
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +340 -60
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -31
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -31
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +87 -42
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -79
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +321 -66
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -41
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -41
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +346 -87
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +218 -61
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +113 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -58
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +321 -66
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +128 -70
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +29 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -52
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -18
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +138 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +91 -118
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +113 -67
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +40 -52
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -43
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +71 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +799 -472
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1137 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +47 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +96 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +841 -419
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +197 -129
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -31
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +212 -232
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +133 -71
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +130 -39
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -31
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +119 -147
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -31
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -31
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1453 -153
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +161 -110
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1565 -239
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +146 -67
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +200 -157
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -44
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1633 -819
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +159 -87
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +56 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +15 -3
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +361 -371
- package/contracts/authorization/AccessAdminLib.sol +678 -0
- package/contracts/authorization/AccessManagerCloneable.sol +23 -32
- package/contracts/authorization/Authorization.sol +82 -229
- package/contracts/authorization/IAccess.sol +29 -12
- package/contracts/authorization/IAccessAdmin.sol +83 -84
- package/contracts/authorization/IAuthorization.sol +3 -51
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +5 -7
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +12 -17
- package/contracts/distribution/DistributionService.sol +129 -66
- package/contracts/distribution/IDistributionComponent.sol +3 -1
- package/contracts/distribution/IDistributionService.sol +21 -9
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +6 -10
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +4 -8
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -23
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +98 -12
- package/contracts/instance/IInstanceService.sol +54 -7
- package/contracts/instance/Instance.sol +165 -61
- package/contracts/instance/InstanceAdmin.sol +183 -313
- package/contracts/instance/InstanceAuthorizationV3.sol +123 -61
- package/contracts/instance/InstanceReader.sol +350 -394
- package/contracts/instance/InstanceService.sol +283 -173
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +15 -6
- package/contracts/instance/module/IDistribution.sol +17 -7
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +3 -6
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +4 -8
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -18
- package/contracts/pool/BasicPoolAuthorization.sol +10 -5
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +7 -2
- package/contracts/pool/Pool.sol +6 -20
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +41 -184
- package/contracts/product/ApplicationService.sol +65 -12
- package/contracts/product/BasicProduct.sol +2 -5
- package/contracts/product/BasicProductAuthorization.sol +11 -4
- package/contracts/product/ClaimService.sol +99 -105
- package/contracts/product/IApplicationService.sol +21 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +9 -2
- package/contracts/product/IRiskService.sol +18 -3
- package/contracts/product/PolicyService.sol +40 -77
- package/contracts/product/PolicyServiceLib.sol +79 -5
- package/contracts/product/PricingService.sol +29 -32
- package/contracts/product/Product.sol +40 -18
- package/contracts/product/RiskService.sol +50 -15
- package/contracts/registry/IRegistry.sol +15 -9
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAdmin.sol +85 -266
- package/contracts/registry/RegistryAuthorization.sol +337 -0
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +70 -116
- package/contracts/registry/ReleaseRegistry.sol +57 -43
- package/contracts/registry/ServiceAuthorizationV3.sol +128 -33
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +20 -37
- package/contracts/shared/ComponentService.sol +249 -250
- package/contracts/shared/ContractLib.sol +134 -75
- package/contracts/shared/IComponent.sol +1 -4
- package/contracts/shared/IComponentService.sol +21 -22
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +6 -11
- package/contracts/shared/NftOwnable.sol +4 -2
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Registerable.sol +1 -4
- package/contracts/shared/Service.sol +6 -4
- package/contracts/shared/TokenHandler.sol +5 -4
- package/contracts/staking/IStaking.sol +265 -64
- package/contracts/staking/IStakingService.sol +44 -82
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +475 -204
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +49 -158
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -330
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +17 -22
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +21 -17
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -2
- package/contracts/type/UFixed.sol +28 -10
- package/contracts/type/Version.sol +39 -0
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -3,12 +3,15 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
|
5
5
|
import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
|
6
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
6
7
|
|
7
|
-
// import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
8
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
9
8
|
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
9
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
10
|
+
import {IService} from "../shared/IService.sol";
|
11
|
+
|
12
|
+
import {ChainId} from "../type/ChainId.sol";
|
10
13
|
import {NftId} from "../type/NftId.sol";
|
11
|
-
import {ObjectType, PRODUCT, DISTRIBUTION, ORACLE, POOL
|
14
|
+
import {ObjectType, INSTANCE, PRODUCT, DISTRIBUTION, ORACLE, POOL} from "../type/ObjectType.sol";
|
12
15
|
import {VersionPart} from "../type/Version.sol";
|
13
16
|
|
14
17
|
interface ITargetHelper {
|
@@ -20,44 +23,18 @@ interface IInstanceAdminHelper {
|
|
20
23
|
}
|
21
24
|
|
22
25
|
interface ITokenRegistryHelper {
|
23
|
-
function isActive(
|
26
|
+
function isActive(ChainId chainId, address token, VersionPart release) external view returns (bool);
|
24
27
|
}
|
25
28
|
|
26
29
|
library ContractLib {
|
27
30
|
|
28
|
-
error
|
29
|
-
error
|
30
|
-
error
|
31
|
+
error ErrorContractLibCallerNotRegistered(address target);
|
32
|
+
error ErrorContractLibCallerNotComponent(NftId componentNftId, ObjectType objectType);
|
33
|
+
error ErrorContractLibParentNotInstance(NftId componentNftId, NftId parentNftId);
|
34
|
+
error ErrorContractLibParentNotProduct(NftId componentNftId, NftId parentNftId);
|
31
35
|
error ErrorContractLibComponentTypeMismatch(NftId componentNftId, ObjectType expectedType, ObjectType actualType);
|
32
36
|
error ErrorContractLibComponentInactive(NftId componentNftId);
|
33
37
|
|
34
|
-
function getAndVerifyComponent(
|
35
|
-
IRegistry registry,
|
36
|
-
address target,
|
37
|
-
ObjectType expectedType,
|
38
|
-
bool onlyActive
|
39
|
-
)
|
40
|
-
external
|
41
|
-
view
|
42
|
-
returns (
|
43
|
-
IRegistry.ObjectInfo memory info,
|
44
|
-
address instance
|
45
|
-
)
|
46
|
-
{
|
47
|
-
// check target is component
|
48
|
-
info = _getObjectInfo(registry, target);
|
49
|
-
if(info.objectType != expectedType) {
|
50
|
-
revert ErrorContractLibComponentTypeMismatch(
|
51
|
-
info.nftId,
|
52
|
-
expectedType,
|
53
|
-
info.objectType);
|
54
|
-
}
|
55
|
-
|
56
|
-
// get instance and check component is active
|
57
|
-
instance = _getInstance(registry, info);
|
58
|
-
_checkComponentActive(instance, target, info.nftId, onlyActive);
|
59
|
-
}
|
60
|
-
|
61
38
|
|
62
39
|
function getInfoAndInstance(
|
63
40
|
IRegistry registry,
|
@@ -72,34 +49,42 @@ library ContractLib {
|
|
72
49
|
)
|
73
50
|
{
|
74
51
|
info = registry.getObjectInfo(componentNftId);
|
75
|
-
|
76
|
-
_checkComponentActive(instance, info.objectAddress, info.nftId, onlyActive);
|
52
|
+
return _getAndVerifyComponentAndInstance(registry, info, info.objectType, onlyActive);
|
77
53
|
}
|
78
54
|
|
79
55
|
|
80
|
-
function
|
56
|
+
function getAndVerifyAnyComponent(
|
81
57
|
IRegistry registry,
|
82
|
-
address
|
58
|
+
address caller,
|
59
|
+
bool onlyActive
|
83
60
|
)
|
84
61
|
external
|
85
62
|
view
|
86
63
|
returns (
|
87
|
-
IRegistry.ObjectInfo memory
|
64
|
+
IRegistry.ObjectInfo memory callerInfo,
|
65
|
+
address instance
|
88
66
|
)
|
89
67
|
{
|
90
|
-
// check
|
91
|
-
|
92
|
-
if(
|
93
|
-
|
94
|
-
|
95
|
-
|
68
|
+
// check caller is component
|
69
|
+
callerInfo = _getAndVerifyObjectInfo(registry, caller);
|
70
|
+
if(!(callerInfo.objectType == PRODUCT()
|
71
|
+
|| callerInfo.objectType == POOL()
|
72
|
+
|| callerInfo.objectType == DISTRIBUTION()
|
73
|
+
|| callerInfo.objectType == ORACLE())
|
74
|
+
) {
|
75
|
+
revert ErrorContractLibCallerNotComponent(
|
76
|
+
callerInfo.nftId,
|
77
|
+
callerInfo.objectType);
|
96
78
|
}
|
79
|
+
|
80
|
+
return _getAndVerifyComponentAndInstance(registry, callerInfo, callerInfo.objectType, onlyActive);
|
97
81
|
}
|
98
82
|
|
99
83
|
|
100
|
-
function
|
84
|
+
function getAndVerifyComponent(
|
101
85
|
IRegistry registry,
|
102
|
-
address
|
86
|
+
address caller,
|
87
|
+
ObjectType expectedType,
|
103
88
|
bool onlyActive
|
104
89
|
)
|
105
90
|
external
|
@@ -109,21 +94,8 @@ library ContractLib {
|
|
109
94
|
address instance
|
110
95
|
)
|
111
96
|
{
|
112
|
-
|
113
|
-
|
114
|
-
if(!(info.objectType == PRODUCT()
|
115
|
-
|| info.objectType == POOL()
|
116
|
-
|| info.objectType == DISTRIBUTION()
|
117
|
-
|| info.objectType == ORACLE())
|
118
|
-
) {
|
119
|
-
revert ErrorContractLibNotComponent(
|
120
|
-
info.nftId,
|
121
|
-
info.objectType);
|
122
|
-
}
|
123
|
-
|
124
|
-
// get instance and check component is active
|
125
|
-
instance = _getInstance(registry, info);
|
126
|
-
_checkComponentActive(instance, target, info.nftId, onlyActive);
|
97
|
+
info = _getAndVerifyObjectInfo(registry, caller);
|
98
|
+
return _getAndVerifyComponentAndInstance(registry, info, expectedType, onlyActive);
|
127
99
|
}
|
128
100
|
|
129
101
|
|
@@ -143,8 +115,8 @@ library ContractLib {
|
|
143
115
|
|
144
116
|
function isActiveToken(
|
145
117
|
address tokenRegistryAddress,
|
118
|
+
ChainId chainId,
|
146
119
|
address token,
|
147
|
-
uint256 chainId,
|
148
120
|
VersionPart release
|
149
121
|
)
|
150
122
|
external
|
@@ -156,6 +128,7 @@ library ContractLib {
|
|
156
128
|
chainId, token, release);
|
157
129
|
}
|
158
130
|
|
131
|
+
|
159
132
|
function isPolicyHolder(address target) external view returns (bool) {
|
160
133
|
return ERC165Checker.supportsInterface(target, type(IPolicyHolder).interfaceId);
|
161
134
|
}
|
@@ -170,6 +143,42 @@ library ContractLib {
|
|
170
143
|
}
|
171
144
|
|
172
145
|
|
146
|
+
function isAccessManaged(address target)
|
147
|
+
public
|
148
|
+
view
|
149
|
+
returns (bool)
|
150
|
+
{
|
151
|
+
if (!isContract(target)) {
|
152
|
+
return false;
|
153
|
+
}
|
154
|
+
|
155
|
+
(bool success, ) = target.staticcall(
|
156
|
+
abi.encodeWithSelector(
|
157
|
+
IAccessManaged.authority.selector));
|
158
|
+
|
159
|
+
return success;
|
160
|
+
}
|
161
|
+
|
162
|
+
|
163
|
+
function isRegistered(address registry, address caller, ObjectType expectedType) public view returns (bool) {
|
164
|
+
NftId nftId = IRegistry(registry).getNftIdForAddress(caller);
|
165
|
+
if (nftId.eqz()) {
|
166
|
+
return false;
|
167
|
+
}
|
168
|
+
|
169
|
+
return IRegistry(registry).getObjectInfo(nftId).objectType == expectedType;
|
170
|
+
}
|
171
|
+
|
172
|
+
|
173
|
+
function isService(address service) public view returns (bool) {
|
174
|
+
if (!isContract(service)) {
|
175
|
+
return false;
|
176
|
+
}
|
177
|
+
|
178
|
+
return supportsInterface(service, type(IService).interfaceId);
|
179
|
+
}
|
180
|
+
|
181
|
+
|
173
182
|
function isRegistry(address registry) public view returns (bool) {
|
174
183
|
if (!isContract(registry)) {
|
175
184
|
return false;
|
@@ -196,6 +205,37 @@ library ContractLib {
|
|
196
205
|
}
|
197
206
|
|
198
207
|
|
208
|
+
function _getAndVerifyComponentAndInstance(
|
209
|
+
IRegistry registry,
|
210
|
+
IRegistry.ObjectInfo memory info,
|
211
|
+
ObjectType expectedType,
|
212
|
+
bool onlyActive
|
213
|
+
)
|
214
|
+
internal
|
215
|
+
view
|
216
|
+
returns (
|
217
|
+
IRegistry.ObjectInfo memory,
|
218
|
+
address instance
|
219
|
+
)
|
220
|
+
{
|
221
|
+
if(info.objectType != expectedType) {
|
222
|
+
revert ErrorContractLibComponentTypeMismatch(
|
223
|
+
info.nftId,
|
224
|
+
expectedType,
|
225
|
+
info.objectType);
|
226
|
+
}
|
227
|
+
|
228
|
+
// get instance and check component is active
|
229
|
+
instance = getAndVerifyInstance(registry, info);
|
230
|
+
_checkComponentActive(instance, info.objectAddress, info.nftId, onlyActive);
|
231
|
+
|
232
|
+
return (
|
233
|
+
info,
|
234
|
+
instance
|
235
|
+
);
|
236
|
+
}
|
237
|
+
|
238
|
+
|
199
239
|
function _checkComponentActive(
|
200
240
|
address instance,
|
201
241
|
address target,
|
@@ -216,36 +256,55 @@ library ContractLib {
|
|
216
256
|
}
|
217
257
|
|
218
258
|
|
219
|
-
function
|
259
|
+
/// @dev Given an object info the function returns the instance address.
|
260
|
+
/// The info may represent a product or any other component.
|
261
|
+
/// If the parent of the provided info is not registered with the correct type, the function reverts.
|
262
|
+
function getAndVerifyInstance(
|
220
263
|
IRegistry registry,
|
221
264
|
IRegistry.ObjectInfo memory info
|
222
265
|
)
|
223
|
-
|
266
|
+
public
|
224
267
|
view
|
225
268
|
returns (address instance)
|
226
269
|
{
|
270
|
+
// get instance for product case
|
227
271
|
if (info.objectType == PRODUCT()) {
|
228
|
-
|
272
|
+
// verify that parent of product is registered instance
|
273
|
+
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(info.parentNftId);
|
274
|
+
if (instanceInfo.objectType != INSTANCE()) {
|
275
|
+
revert ErrorContractLibParentNotInstance(
|
276
|
+
info.nftId,
|
277
|
+
info.parentNftId);
|
278
|
+
}
|
279
|
+
|
280
|
+
// we have verified that parent object is a registerd instance -> we return the instance address
|
281
|
+
return instanceInfo.objectAddress;
|
282
|
+
}
|
283
|
+
|
284
|
+
// not product: verify parent is registered product
|
285
|
+
info = registry.getObjectInfo(info.parentNftId);
|
286
|
+
if (info.objectType != PRODUCT()) {
|
287
|
+
revert ErrorContractLibParentNotProduct(
|
288
|
+
info.nftId,
|
229
289
|
info.parentNftId);
|
230
|
-
}
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
info.parentNftId).parentNftId);
|
290
|
+
}
|
291
|
+
|
292
|
+
// we have verified that parent is registerd product -> we can rely on registry that its parent is an instance
|
293
|
+
return registry.getObjectAddress(info.parentNftId);
|
235
294
|
}
|
236
295
|
|
237
296
|
|
238
|
-
function
|
297
|
+
function _getAndVerifyObjectInfo(
|
239
298
|
IRegistry registry,
|
240
|
-
address
|
299
|
+
address caller
|
241
300
|
)
|
242
301
|
internal
|
243
302
|
view
|
244
303
|
returns (IRegistry.ObjectInfo memory info)
|
245
304
|
{
|
246
|
-
NftId componentNftId = registry.getNftIdForAddress(
|
305
|
+
NftId componentNftId = registry.getNftIdForAddress(caller);
|
247
306
|
if (componentNftId.eqz()) {
|
248
|
-
revert
|
307
|
+
revert ErrorContractLibCallerNotRegistered(caller);
|
249
308
|
}
|
250
309
|
|
251
310
|
info = registry.getObjectInfo(componentNftId);
|
@@ -15,9 +15,6 @@ interface IComponent is
|
|
15
15
|
IRegisterable,
|
16
16
|
ITransferInterceptor
|
17
17
|
{
|
18
|
-
|
19
|
-
error ErrorComponentTokenInvalid(address token);
|
20
|
-
|
21
18
|
error ErrorComponentProductNftIdZero();
|
22
19
|
error ErrorComponentProductNftIdNonzero();
|
23
20
|
error ErrorComponentNameLengthZero();
|
@@ -43,7 +40,7 @@ interface IComponent is
|
|
43
40
|
function getTokenHandler() external view returns (TokenHandler tokenHandler);
|
44
41
|
|
45
42
|
/// @dev defines the wallet address used to hold the ERC20 tokens related to this component
|
46
|
-
/// the default address is the
|
43
|
+
/// the default address is the token handler address
|
47
44
|
function getWallet() external view returns (address walletAddress);
|
48
45
|
|
49
46
|
/// @dev returns true iff this compoent intercepts nft minting and transfers for objects registered by this component
|
@@ -16,20 +16,20 @@ import {VersionPart} from "../type/Version.sol";
|
|
16
16
|
interface IComponentService is
|
17
17
|
IService
|
18
18
|
{
|
19
|
-
|
20
|
-
error
|
19
|
+
// registerProduct
|
20
|
+
error ErrorComponentServiceCallerNotInstance(address caller);
|
21
|
+
error ErrorComponentServiceNotProduct(address product);
|
22
|
+
error ErrorComponentServiceTokenInvalid(address token);
|
23
|
+
|
24
|
+
// registerComponent
|
25
|
+
error ErrorComponentServiceCallerNotProduct(address caller);
|
21
26
|
error ErrorComponentServiceNotComponent(address component);
|
22
|
-
|
23
|
-
error
|
24
|
-
error
|
25
|
-
error
|
26
|
-
error
|
27
|
-
error
|
28
|
-
error ErrorComponentServiceParentNotProduct(NftId nftId, ObjectType objectType);
|
29
|
-
|
30
|
-
error ErrorComponentServiceNotRegistered(address instanceAddress);
|
31
|
-
error ErrorComponentServiceNotInstance(address instanceAddress, ObjectType objectType);
|
32
|
-
error ErrorComponentServiceInstanceVersionMismatch(address instanceAddress, VersionPart instanceVersion);
|
27
|
+
|
28
|
+
error ErrorComponentServiceNotInstanceLinkedComponent(address component);
|
29
|
+
error ErrorComponentServiceComponentTypeNotSupported(address component, ObjectType invalid);
|
30
|
+
error ErrorComponentServiceComponentParentInvalid(address component, NftId required, NftId actual);
|
31
|
+
error ErrorComponentServiceComponentReleaseMismatch(address component, VersionPart serviceRelease, VersionPart componentRelease);
|
32
|
+
error ErrorComponentServiceComponentAlreadyRegistered(address component);
|
33
33
|
|
34
34
|
error ErrorProductServiceNoDistributionExpected(NftId productNftId);
|
35
35
|
error ErrorProductServiceDistributionAlreadyRegistered(NftId productNftId, NftId distributionNftId);
|
@@ -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);
|
@@ -56,9 +57,9 @@ interface IComponentService is
|
|
56
57
|
NftId nftId,
|
57
58
|
string feeName,
|
58
59
|
UFixed previousFractionalFee,
|
59
|
-
|
60
|
+
Amount previousFixedFee,
|
60
61
|
UFixed newFractionalFee,
|
61
|
-
|
62
|
+
Amount newFixedFee
|
62
63
|
);
|
63
64
|
|
64
65
|
//-------- component ----------------------------------------------------//
|
@@ -67,14 +68,12 @@ interface IComponentService is
|
|
67
68
|
/// Reverts if the component's token handler wallet is not the token handler itself.
|
68
69
|
function approveTokenHandler(IERC20Metadata token, Amount amount) external;
|
69
70
|
|
70
|
-
/// @dev Sets the components associated wallet address
|
71
|
+
/// @dev Sets the components associated wallet address.
|
72
|
+
/// To set the wallet to the token handler contract, use address(0) as the new wallet adress.
|
71
73
|
function setWallet(address newWallet) external;
|
72
74
|
|
73
|
-
/// @dev Locks/Unlocks the
|
74
|
-
function
|
75
|
-
|
76
|
-
/// @dev Locks/Unlocks the given component - call from component
|
77
|
-
function setLockedFromComponent(address componentAddress, bool locked) external;
|
75
|
+
/// @dev Locks/Unlocks the calling component.
|
76
|
+
function setLocked(bool locked) external;
|
78
77
|
|
79
78
|
/// @dev Withdraw fees from the distribution component. Only component owner is allowed to withdraw fees.
|
80
79
|
/// @param withdrawAmount the amount to withdraw
|
@@ -87,7 +86,7 @@ interface IComponentService is
|
|
87
86
|
//-------- product ------------------------------------------------------//
|
88
87
|
|
89
88
|
/// @dev Registers the specified product component for the instance (sender)
|
90
|
-
function registerProduct(address product) external returns (NftId productNftId);
|
89
|
+
function registerProduct(address product, address token) external returns (NftId productNftId);
|
91
90
|
|
92
91
|
function setProductFees(
|
93
92
|
Fee memory productFee, // product fee on net premium
|
@@ -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);
|
@@ -6,7 +6,6 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
|
|
6
6
|
import {INftOwnable} from "./INftOwnable.sol";
|
7
7
|
import {IRelease} from "../registry/IRelease.sol";
|
8
8
|
import {IRegistry} from "../registry/IRegistry.sol";
|
9
|
-
import {VersionPart} from "../type/Version.sol";
|
10
9
|
|
11
10
|
/// @title IRegisterable
|
12
11
|
/// @dev Marks contracts that are intended to be registered in the registry.
|
@@ -11,13 +11,21 @@ contract InitializableERC165 is
|
|
11
11
|
mapping(bytes4 => bool) private _isSupported;
|
12
12
|
|
13
13
|
// @dev initializes with support for ERC165
|
14
|
-
function
|
14
|
+
function __ERC165_init() internal onlyInitializing() {
|
15
|
+
_initializeERC165();
|
16
|
+
}
|
17
|
+
|
18
|
+
function _initializeERC165() internal {
|
15
19
|
_isSupported[type(IERC165).interfaceId] = true;
|
16
20
|
}
|
17
21
|
|
18
22
|
// @dev register support for provided interfaceId
|
19
23
|
// includes initialization for ERC165_ID if not yet done
|
20
24
|
function _registerInterface(bytes4 interfaceId) internal onlyInitializing() {
|
25
|
+
_registerInterfaceNotInitializing(interfaceId);
|
26
|
+
}
|
27
|
+
|
28
|
+
function _registerInterfaceNotInitializing(bytes4 interfaceId) internal{
|
21
29
|
_isSupported[interfaceId] = true;
|
22
30
|
}
|
23
31
|
|
@@ -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,16 +67,14 @@ 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,
|
74
|
-
address token,
|
75
74
|
ObjectType componentType,
|
76
75
|
IAuthorization authorization,
|
77
76
|
bool isInterceptor,
|
78
|
-
address initialOwner
|
79
|
-
bytes memory componentData // data that will saved with the component info in the instance store
|
77
|
+
address initialOwner
|
80
78
|
)
|
81
79
|
internal
|
82
80
|
virtual
|
@@ -94,17 +92,15 @@ abstract contract InstanceLinkedComponent is
|
|
94
92
|
IRegistry(registry).getObjectAddress(instanceNftId));
|
95
93
|
|
96
94
|
// set component specific parameters
|
97
|
-
|
95
|
+
__Component_init(
|
98
96
|
$._instance.authority(), // instance linked components need to point to instance admin
|
99
97
|
registry,
|
100
98
|
parentNftId,
|
101
99
|
name,
|
102
|
-
token,
|
103
100
|
componentType,
|
104
101
|
isInterceptor,
|
105
102
|
initialOwner,
|
106
|
-
""
|
107
|
-
componentData);
|
103
|
+
""); // registry data
|
108
104
|
|
109
105
|
// set instance linked specific parameters
|
110
106
|
$._instanceReader = $._instance.getInstanceReader();
|
@@ -112,7 +108,6 @@ abstract contract InstanceLinkedComponent is
|
|
112
108
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
113
109
|
|
114
110
|
// register interfaces
|
115
|
-
_registerInterface(type(IAccessManaged).interfaceId);
|
116
111
|
_registerInterface(type(IInstanceLinkedComponent).interfaceId);
|
117
112
|
}
|
118
113
|
|
@@ -41,7 +41,7 @@ contract NftOwnable is
|
|
41
41
|
}
|
42
42
|
|
43
43
|
function _checkNftType(NftId nftId, ObjectType expectedObjectType) internal view {
|
44
|
-
if(!getRegistry().isObjectType(nftId, expectedObjectType)) {
|
44
|
+
if(expectedObjectType.eqz() || !getRegistry().isObjectType(nftId, expectedObjectType)) {
|
45
45
|
revert ErrorNftOwnableInvalidType(nftId, expectedObjectType);
|
46
46
|
}
|
47
47
|
}
|
@@ -57,8 +57,8 @@ contract NftOwnable is
|
|
57
57
|
virtual
|
58
58
|
onlyInitializing()
|
59
59
|
{
|
60
|
+
__ERC165_init();
|
60
61
|
__RegistryLinked_init(registry);
|
61
|
-
_initializeERC165();
|
62
62
|
|
63
63
|
if(initialOwner == address(0)) {
|
64
64
|
revert ErrorNftOwnableInitialOwnerZero();
|
@@ -114,6 +114,8 @@ contract NftOwnable is
|
|
114
114
|
|
115
115
|
$._nftId = getRegistry().getNftIdForAddress(nftOwnableAddress);
|
116
116
|
|
117
|
+
emit LogNftOwnableNftLinkedToAddress($._nftId, getOwner());
|
118
|
+
|
117
119
|
return $._nftId;
|
118
120
|
}
|
119
121
|
|
@@ -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
|
|
@@ -26,7 +26,6 @@ abstract contract Registerable is
|
|
26
26
|
struct RegisterableStorage {
|
27
27
|
NftId _parentNftId;
|
28
28
|
ObjectType _objectType;
|
29
|
-
VersionPart _release;
|
30
29
|
bool _isInterceptor;
|
31
30
|
bytes _data;
|
32
31
|
}
|
@@ -61,7 +60,6 @@ abstract contract Registerable is
|
|
61
60
|
RegisterableStorage storage $ = _getRegisterableStorage();
|
62
61
|
$._parentNftId = parentNftId;
|
63
62
|
$._objectType = objectType;
|
64
|
-
$._release = AccessManagerCloneable(authority).getRelease();
|
65
63
|
$._isInterceptor = isInterceptor;
|
66
64
|
$._data = data;
|
67
65
|
|
@@ -77,8 +75,7 @@ abstract contract Registerable is
|
|
77
75
|
|
78
76
|
/// @inheritdoc IRelease
|
79
77
|
function getRelease() public virtual view returns (VersionPart release) {
|
80
|
-
|
81
|
-
return $._release;
|
78
|
+
return AccessManagerCloneable(authority()).getRelease();
|
82
79
|
}
|
83
80
|
|
84
81
|
|
@@ -1,16 +1,15 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
4
|
import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
|
6
5
|
|
7
6
|
import {IRegistry} from "../registry/IRegistry.sol";
|
8
7
|
import {IService} from "./IService.sol";
|
9
8
|
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
10
|
-
import {ObjectType,
|
9
|
+
import {ObjectType, SERVICE} from "../type/ObjectType.sol";
|
11
10
|
import {Registerable} from "./Registerable.sol";
|
12
11
|
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
13
|
-
import {Version, VersionLib
|
12
|
+
import {Version, VersionLib} from "../type/Version.sol";
|
14
13
|
import {Versionable} from "../upgradeability/Versionable.sol";
|
15
14
|
|
16
15
|
|
@@ -53,12 +52,15 @@ abstract contract Service is
|
|
53
52
|
return VersionLib.toVersion(3, 0, 0);
|
54
53
|
}
|
55
54
|
|
55
|
+
|
56
56
|
function getRoleId() external virtual view returns(RoleId serviceRoleId) {
|
57
|
-
return RoleIdLib.
|
57
|
+
return RoleIdLib.toServiceRoleId(_getDomain(), getRelease());
|
58
58
|
}
|
59
59
|
|
60
|
+
//--- internal functions --------------------------------------------------------//
|
60
61
|
function _getDomain() internal virtual pure returns (ObjectType);
|
61
62
|
|
63
|
+
|
62
64
|
function _getServiceAddress(ObjectType domain) internal view returns (address) {
|
63
65
|
return getRegistry().getServiceAddress(domain, getRelease());
|
64
66
|
}
|
@@ -270,11 +270,12 @@ contract TokenHandler is
|
|
270
270
|
AccessManaged(authority)
|
271
271
|
{ }
|
272
272
|
|
273
|
-
/// @dev
|
274
|
-
///
|
275
|
-
///
|
273
|
+
/// @dev Sets the wallet address for the component.
|
274
|
+
/// Seeting the new wallet address to address(0) will set the wallet to the tokenHandler contract itself.
|
275
|
+
/// If the current wallet has tokens, these will be transferred.
|
276
|
+
/// If the new wallet address is externally owned, an approval from the
|
276
277
|
/// owner of the external wallet to the tokenhandler of the component that
|
277
|
-
/// covers the current component balance must exist
|
278
|
+
/// covers the current component balance must exist.
|
278
279
|
function setWallet(address newWallet)
|
279
280
|
external
|
280
281
|
restricted()
|