@etherisc/gif-next 0.0.2-e769e2e-077 → 0.0.2-e79d227-681
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 +77 -10
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1324 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +154 -546
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +380 -229
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +198 -96
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +186 -238
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +223 -47
- 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 +1429 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1979 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -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 +1430 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1177 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1606 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2281 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +153 -86
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +181 -119
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +174 -215
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1666 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +876 -160
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +260 -268
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +163 -81
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +506 -338
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- 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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +961 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +776 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +877 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +990 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +766 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1254 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +456 -187
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +218 -80
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +264 -26
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +115 -354
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +464 -223
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +152 -682
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +590 -382
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +190 -76
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +147 -161
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +147 -77
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1148 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +343 -168
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +200 -90
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +88 -8
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +196 -7
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +364 -121
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +134 -86
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +176 -160
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +51 -3
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +475 -294
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +199 -81
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +229 -275
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +172 -102
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +201 -486
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -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 +412 -35
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +225 -196
- 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 +761 -87
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +278 -306
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +154 -78
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +185 -135
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +79 -274
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +626 -252
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +209 -99
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +55 -101
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -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/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +74 -79
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +561 -13
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +120 -108
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -13
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +23 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +36 -1
- 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 +49 -1
- 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 +129 -360
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -98
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +26 -55
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +62 -87
- 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 +55 -101
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +697 -25
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -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 +462 -634
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +546 -48
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +613 -871
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +185 -81
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +633 -173
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +166 -68
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +121 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +40 -2
- 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 +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
- 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 +47 -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 +149 -2
- 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 +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +99 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- 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 +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
- 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 +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +616 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +289 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/authorization/IAccessAdmin.sol +137 -0
- package/contracts/authorization/IAuthorization.sol +60 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +139 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +145 -124
- package/contracts/distribution/DistributionService.sol +156 -99
- package/contracts/distribution/DistributionServiceManager.sol +13 -25
- package/contracts/distribution/IDistributionComponent.sol +27 -41
- package/contracts/distribution/IDistributionService.sol +29 -10
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +431 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +58 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +39 -44
- package/contracts/instance/IInstanceService.sol +33 -42
- package/contracts/instance/Instance.sol +137 -124
- package/contracts/instance/InstanceAdmin.sol +278 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +217 -0
- package/contracts/instance/InstanceReader.sol +249 -36
- package/contracts/instance/InstanceService.sol +227 -151
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +85 -57
- package/contracts/instance/RiskSet.sol +119 -0
- package/contracts/instance/base/BalanceStore.sol +12 -7
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/base/ObjectSet.sol +78 -0
- package/contracts/instance/module/IAccess.sol +2 -10
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +11 -13
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +26 -25
- package/contracts/instance/module/IRisk.sol +1 -0
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +47 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +156 -0
- package/contracts/oracle/OracleService.sol +309 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +175 -0
- package/contracts/pool/BasicPoolAuthorization.sol +68 -0
- package/contracts/pool/BundleService.sol +232 -122
- package/contracts/pool/BundleServiceManager.sol +13 -25
- package/contracts/pool/IBundleService.sol +34 -18
- package/contracts/pool/IPoolComponent.sol +20 -70
- package/contracts/pool/IPoolService.sol +57 -51
- package/contracts/pool/Pool.sol +208 -162
- package/contracts/pool/PoolService.sol +372 -181
- package/contracts/pool/PoolServiceManager.sol +12 -24
- package/contracts/product/ApplicationService.sol +90 -84
- package/contracts/product/ApplicationServiceManager.sol +12 -9
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +42 -0
- package/contracts/product/ClaimService.sol +331 -153
- package/contracts/product/ClaimServiceManager.sol +12 -9
- package/contracts/product/IApplicationService.sol +7 -3
- package/contracts/product/IClaimService.sol +35 -5
- package/contracts/product/IPolicyService.sol +47 -35
- package/contracts/product/IPricingService.sol +11 -11
- package/contracts/product/IProductComponent.sol +26 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +2 -2
- package/contracts/product/PolicyService.sol +524 -262
- package/contracts/product/PolicyServiceManager.sol +12 -27
- package/contracts/product/PricingService.sol +64 -64
- package/contracts/product/PricingServiceManager.sol +12 -24
- package/contracts/product/Product.sol +189 -139
- package/contracts/product/{ProductService.sol → RiskService.sol} +35 -50
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +68 -37
- package/contracts/registry/IRegistry.sol +90 -28
- package/contracts/registry/IRegistryService.sol +26 -43
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +424 -228
- package/contracts/registry/RegistryAdmin.sol +451 -0
- package/contracts/registry/RegistryService.sol +63 -149
- package/contracts/registry/RegistryServiceManager.sol +23 -30
- package/contracts/registry/ReleaseLifecycle.sol +30 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +175 -0
- package/contracts/registry/TokenRegistry.sol +187 -59
- package/contracts/shared/Component.sol +56 -125
- package/contracts/shared/ComponentService.sol +411 -201
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +40 -23
- package/contracts/shared/ContractLib.sol +224 -0
- package/contracts/shared/IComponent.sol +11 -18
- package/contracts/shared/IComponentService.sol +52 -13
- package/contracts/shared/IInstanceLinkedComponent.sol +11 -16
- package/contracts/shared/IKeyValueStore.sol +2 -1
- package/contracts/shared/ILifecycle.sol +3 -2
- package/contracts/shared/INftOwnable.sol +3 -1
- package/contracts/shared/IPolicyHolder.sol +12 -17
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/IService.sol +9 -2
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
- package/contracts/shared/InstanceLinkedComponent.sol +103 -43
- package/contracts/shared/KeyValueStore.sol +30 -68
- package/contracts/shared/Lifecycle.sol +30 -63
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +31 -22
- package/contracts/shared/PolicyHolder.sol +18 -50
- package/contracts/shared/Registerable.sol +19 -11
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +44 -37
- package/contracts/shared/TokenHandler.sol +358 -27
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +133 -37
- package/contracts/staking/IStakingService.sol +93 -41
- package/contracts/staking/StakeManagerLib.sol +224 -0
- package/contracts/staking/Staking.sol +394 -101
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +24 -18
- package/contracts/staking/StakingReader.sol +190 -0
- package/contracts/staking/StakingService.sol +282 -42
- package/contracts/staking/StakingServiceManager.sol +10 -7
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +39 -3
- package/contracts/type/Blocknumber.sol +20 -2
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +1 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +16 -4
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +178 -65
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +31 -5
- package/contracts/type/RoleId.sol +98 -74
- package/contracts/type/Seconds.sol +48 -1
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +41 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +17 -3
- package/contracts/type/UFixed.sol +38 -9
- package/contracts/type/Version.sol +4 -2
- package/contracts/{shared → upgradeability}/ProxyManager.sol +90 -27
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +11 -7
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -132
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -673
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -636
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -308
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -688
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- 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/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
- 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/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -336
- package/contracts/instance/base/ObjectManager.sol +0 -82
- package/contracts/product/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -213
- package/contracts/registry/ReleaseManager.sol +0 -375
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,22 +1,34 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
4
5
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
6
|
import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
|
6
7
|
|
8
|
+
import {REGISTRY} from "../type/ObjectType.sol";
|
9
|
+
import {VersionPart} from "../type/Version.sol";
|
10
|
+
|
7
11
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
12
|
+
|
8
13
|
import {IRegistry} from "./IRegistry.sol";
|
9
|
-
import {
|
10
|
-
import {
|
11
|
-
import {
|
14
|
+
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
15
|
+
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
16
|
+
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
17
|
+
|
12
18
|
|
13
19
|
/// @title contract to register token per GIF major release.
|
14
20
|
contract TokenRegistry is
|
15
|
-
|
21
|
+
AccessManaged,
|
22
|
+
IRegistryLinked
|
16
23
|
{
|
17
24
|
event LogTokenRegistryTokenRegistered(uint256 chainId, address token, uint256 decimals, string symbol);
|
25
|
+
event LogTokenRegistryTokenGlobalStateSet(uint256 chainId, address token, bool active);
|
18
26
|
event LogTokenRegistryTokenStateSet(uint256 chainId, address token, VersionPart majorVersion, bool active);
|
19
27
|
|
28
|
+
error ErrorTokenRegistryChainIdZero();
|
29
|
+
error ErrorTokenRegistryTokenAddressZero();
|
30
|
+
|
31
|
+
error ErrorTokenRegistryNotRemoteToken(uint256 chainId, address token);
|
20
32
|
error ErrorTokenRegistryTokenAlreadyRegistered(uint256 chainId, address token);
|
21
33
|
error ErrorTokenRegistryTokenNotContract(uint256 chainId, address token);
|
22
34
|
error ErrorTokenRegistryTokenNotErc20(uint256 chainId, address token);
|
@@ -29,79 +41,115 @@ contract TokenRegistry is
|
|
29
41
|
address token;
|
30
42
|
uint8 decimals;
|
31
43
|
string symbol;
|
44
|
+
bool active;
|
32
45
|
}
|
33
46
|
|
34
|
-
TokenInfo
|
35
|
-
mapping(uint256 chainId => mapping(address token => bool registered)) internal _registered;
|
47
|
+
mapping(uint256 chainId => mapping(address token => TokenInfo info)) internal _tokenInfo;
|
36
48
|
mapping(uint256 chainId => mapping(address token => mapping(VersionPart majorVersion => bool isActive))) internal _active;
|
49
|
+
TokenInfo [] internal _token;
|
37
50
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
51
|
+
IRegistry internal _registry;
|
52
|
+
ReleaseRegistry internal _releaseRegistry;
|
53
|
+
IERC20Metadata internal _dipToken;
|
54
|
+
|
55
|
+
/// @dev enforces msg.sender is owner of nft (or initial owner of nft ownable)
|
56
|
+
modifier onlyRegisteredToken(uint256 chainId, address token) {
|
57
|
+
if (!isRegistered(chainId, token)) {
|
58
|
+
revert ErrorTokenRegistryTokenNotRegistered(chainId, token);
|
59
|
+
}
|
60
|
+
_;
|
43
61
|
}
|
44
62
|
|
45
|
-
|
46
|
-
|
47
|
-
initializer()
|
63
|
+
constructor(IRegistry registry, IERC20Metadata dipToken)
|
64
|
+
AccessManaged(msg.sender)
|
48
65
|
{
|
49
|
-
|
66
|
+
// set authority
|
67
|
+
address authority = RegistryAdmin(registry.getRegistryAdminAddress()).authority();
|
68
|
+
setAuthority(authority);
|
69
|
+
|
70
|
+
_registry = registry;
|
71
|
+
_dipToken = dipToken;
|
72
|
+
|
73
|
+
// register dip token
|
74
|
+
uint256 chainId = block.chainid;
|
75
|
+
_registerToken(
|
76
|
+
chainId,
|
77
|
+
address(_dipToken),
|
78
|
+
_dipToken.decimals(),
|
79
|
+
_dipToken.symbol());
|
50
80
|
}
|
51
81
|
|
52
82
|
|
53
|
-
/// @dev
|
54
|
-
function
|
83
|
+
/// @dev register an onchain token.
|
84
|
+
/// this function verifies that the provided token address is a contract that implements
|
85
|
+
/// the non optional erc20 view functions.
|
86
|
+
function registerToken(address tokenAddress)
|
55
87
|
external
|
88
|
+
restricted()
|
56
89
|
{
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
_linkToNftOwnable(registryServiceAddress);
|
90
|
+
IERC20Metadata token = _verifyOnchainToken(tokenAddress);
|
91
|
+
_registerToken(block.chainid, tokenAddress, token.decimals(), token.symbol());
|
61
92
|
}
|
62
93
|
|
63
94
|
|
64
|
-
|
95
|
+
/// @dev register the remote token with the provided attributes.
|
96
|
+
/// this function may not be used for tokens when chainId == block.chainid.
|
97
|
+
function registerRemoteToken(
|
98
|
+
uint256 chainId,
|
99
|
+
address token,
|
100
|
+
uint8 decimals,
|
101
|
+
string memory symbol
|
102
|
+
)
|
65
103
|
external
|
66
|
-
|
104
|
+
restricted()
|
67
105
|
{
|
68
|
-
|
69
|
-
|
70
|
-
if (_registered[chainId][token]) {
|
71
|
-
revert ErrorTokenRegistryTokenAlreadyRegistered(chainId, token);
|
106
|
+
if (chainId == block.chainid) {
|
107
|
+
revert ErrorTokenRegistryNotRemoteToken(chainId, token);
|
72
108
|
}
|
73
109
|
|
74
|
-
|
75
|
-
|
76
|
-
revert ErrorTokenRegistryTokenNotContract(chainId, token);
|
77
|
-
}
|
110
|
+
_registerToken(chainId, token, decimals, symbol);
|
111
|
+
}
|
78
112
|
|
79
|
-
// MUST have decimals > 0 (indicator that this is in fact an erc20 token)
|
80
|
-
IERC20Metadata erc20 = IERC20Metadata(token);
|
81
|
-
if(!_implementsErc20Functions(erc20)) {
|
82
|
-
revert ErrorTokenRegistryTokenNotErc20(chainId, token);
|
83
|
-
}
|
84
113
|
|
85
|
-
|
114
|
+
/// @dev set active flag on token itself.
|
115
|
+
/// when setting a token to active=false isActive will return false
|
116
|
+
/// regardless of release specific active value.
|
117
|
+
function setActive(
|
118
|
+
uint256 chainId,
|
119
|
+
address token,
|
120
|
+
bool active
|
121
|
+
)
|
122
|
+
external
|
123
|
+
restricted()
|
124
|
+
onlyRegisteredToken(chainId, token)
|
125
|
+
{
|
126
|
+
_tokenInfo[chainId][token].active = active;
|
127
|
+
emit LogTokenRegistryTokenGlobalStateSet(chainId, token, active);
|
86
128
|
}
|
87
129
|
|
88
130
|
|
89
|
-
/// @dev
|
90
|
-
|
91
|
-
|
92
|
-
|
131
|
+
/// @dev sets active state for specified token and major version.
|
132
|
+
/// internally calls setActiveWithVersionCheck() with enforcing version check.
|
133
|
+
/// token state is informative, registry have no clue about used tokens
|
134
|
+
/// component owner is responsible for token selection and operations
|
135
|
+
/// service MUST deny registration of component with inactive token.
|
136
|
+
function setActiveForVersion(
|
93
137
|
uint256 chainId,
|
94
138
|
address token,
|
95
139
|
VersionPart majorVersion,
|
96
140
|
bool active
|
97
141
|
)
|
98
142
|
external
|
99
|
-
|
143
|
+
restricted()
|
144
|
+
onlyRegisteredToken(chainId, token)
|
100
145
|
{
|
101
|
-
|
146
|
+
_setActiveWithVersionCheck(chainId, token, majorVersion, active, true);
|
102
147
|
}
|
103
148
|
|
104
149
|
|
150
|
+
/// @dev as setActiveForVersion() with the option to skip the version check.
|
151
|
+
/// enforcing the version check checks if the provided major version with the release manager.
|
152
|
+
/// the function reverts if the provided majorVersion is unknown to the release manager.
|
105
153
|
function setActiveWithVersionCheck(
|
106
154
|
uint256 chainId,
|
107
155
|
address token,
|
@@ -109,18 +157,27 @@ contract TokenRegistry is
|
|
109
157
|
bool active,
|
110
158
|
bool enforceVersionCheck
|
111
159
|
)
|
112
|
-
|
113
|
-
|
160
|
+
external
|
161
|
+
restricted()
|
162
|
+
onlyRegisteredToken(chainId, token)
|
114
163
|
{
|
115
|
-
|
116
|
-
|
117
|
-
revert ErrorTokenRegistryTokenNotRegistered(chainId, token);
|
118
|
-
}
|
164
|
+
_setActiveWithVersionCheck(chainId, token, majorVersion, active, enforceVersionCheck);
|
165
|
+
}
|
119
166
|
|
167
|
+
|
168
|
+
function _setActiveWithVersionCheck(
|
169
|
+
uint256 chainId,
|
170
|
+
address token,
|
171
|
+
VersionPart majorVersion,
|
172
|
+
bool active,
|
173
|
+
bool enforceVersionCheck
|
174
|
+
)
|
175
|
+
internal
|
176
|
+
{
|
120
177
|
// verify valid major version
|
121
178
|
if(enforceVersionCheck) {
|
122
179
|
uint256 version = majorVersion.toInt();
|
123
|
-
if (!getRegistry().
|
180
|
+
if (!getRegistry().isActiveRelease(majorVersion)) {
|
124
181
|
revert ErrorTokenRegistryMajorVersionInvalid(majorVersion);
|
125
182
|
}
|
126
183
|
}
|
@@ -130,22 +187,77 @@ contract TokenRegistry is
|
|
130
187
|
emit LogTokenRegistryTokenStateSet(chainId, token, majorVersion, active);
|
131
188
|
}
|
132
189
|
|
190
|
+
/// @dev returns the dip token for this chain
|
191
|
+
function getDipToken() external view returns (IERC20Metadata dipToken) {
|
192
|
+
return _dipToken;
|
193
|
+
}
|
194
|
+
|
195
|
+
/// @dev returns the number of registered tokens
|
133
196
|
function tokens() external view returns (uint256) {
|
134
197
|
return _token.length;
|
135
198
|
}
|
136
199
|
|
137
|
-
|
200
|
+
/// @dev returns the token info for the specified index position [0 .. tokens() - 1].
|
201
|
+
function getTokenInfo(uint256 idx) external view returns (TokenInfo memory tokenInfo) {
|
138
202
|
return _token[idx];
|
139
203
|
}
|
140
204
|
|
141
|
-
|
142
|
-
|
205
|
+
/// @dev returns the token info for the specified token coordinates.
|
206
|
+
function getTokenInfo(uint256 chainId, address token) external view returns (TokenInfo memory tokenInfo) {
|
207
|
+
return _tokenInfo[chainId][token];
|
208
|
+
}
|
209
|
+
|
210
|
+
/// @dev returns true iff the specified token has been registered for this TokenRegistry contract.
|
211
|
+
function isRegistered(uint256 chainId, address token) public view returns (bool) {
|
212
|
+
return _tokenInfo[chainId][token].chainId > 0;
|
143
213
|
}
|
144
214
|
|
215
|
+
/// @dev returns true iff both the token is active for the specfied version and the global token state is active
|
145
216
|
function isActive(uint256 chainId, address token, VersionPart majorVersion) external view returns (bool) {
|
217
|
+
if(!_tokenInfo[chainId][token].active) {
|
218
|
+
return false;
|
219
|
+
}
|
220
|
+
|
146
221
|
return _active[chainId][token][majorVersion];
|
147
222
|
}
|
148
223
|
|
224
|
+
function getDipTokenAddress() external view returns (address) {
|
225
|
+
return address(_dipToken);
|
226
|
+
}
|
227
|
+
|
228
|
+
//--- IRegistryLinked --------------------------------------------------//
|
229
|
+
|
230
|
+
/// @dev returns the dip token for this chain
|
231
|
+
function getRegistry() public view returns (IRegistry) {
|
232
|
+
return _registry;
|
233
|
+
}
|
234
|
+
|
235
|
+
//--- internal functions ------------------------------------------------//
|
236
|
+
|
237
|
+
|
238
|
+
/// @dev checks if provided token address refers to a smart contract that implements
|
239
|
+
/// erc20 functionality (via its non-optional functions)
|
240
|
+
function _verifyOnchainToken(address tokenAddress)
|
241
|
+
internal
|
242
|
+
virtual
|
243
|
+
view
|
244
|
+
returns (IERC20Metadata token)
|
245
|
+
{
|
246
|
+
token = IERC20Metadata(tokenAddress);
|
247
|
+
uint256 chainId = block.chainid;
|
248
|
+
|
249
|
+
// MUST be contract
|
250
|
+
if(tokenAddress.code.length == 0) {
|
251
|
+
revert ErrorTokenRegistryTokenNotContract(chainId, tokenAddress);
|
252
|
+
}
|
253
|
+
|
254
|
+
// MUST implement required erc20 view functions
|
255
|
+
if(!_implementsErc20Functions(token)) {
|
256
|
+
revert ErrorTokenRegistryTokenNotErc20(chainId, tokenAddress);
|
257
|
+
}
|
258
|
+
}
|
259
|
+
|
260
|
+
|
149
261
|
/// @dev checks availability of non-optional view functions
|
150
262
|
/// https://eips.ethereum.org/EIPS/eip-20#methods
|
151
263
|
function _implementsErc20Functions(IERC20Metadata token) internal view returns (bool implementsErc20Functions) {
|
@@ -170,17 +282,33 @@ contract TokenRegistry is
|
|
170
282
|
return true;
|
171
283
|
}
|
172
284
|
|
173
|
-
/// @dev some sanity checks to prevent unintended registration
|
285
|
+
/// @dev some sanity checks to prevent unintended registration:
|
286
|
+
/// - token not yet registered
|
287
|
+
/// - chainId not zero
|
288
|
+
/// - token address not zero
|
174
289
|
function _registerToken(uint256 chainId, address token, uint8 decimals, string memory symbol) internal {
|
175
290
|
|
176
|
-
|
177
|
-
|
178
|
-
|
291
|
+
if (isRegistered(chainId, token)) {
|
292
|
+
revert ErrorTokenRegistryTokenAlreadyRegistered(chainId, token);
|
293
|
+
}
|
294
|
+
|
295
|
+
if(chainId == 0) {
|
296
|
+
revert ErrorTokenRegistryChainIdZero();
|
297
|
+
}
|
298
|
+
|
299
|
+
if(token == address(0)) {
|
300
|
+
revert ErrorTokenRegistryTokenAddressZero();
|
301
|
+
}
|
302
|
+
|
303
|
+
TokenInfo memory tokenInfo = TokenInfo({
|
179
304
|
chainId: chainId,
|
180
305
|
token: token,
|
181
306
|
decimals: decimals,
|
182
|
-
symbol: symbol
|
183
|
-
|
307
|
+
symbol: symbol,
|
308
|
+
active: true});
|
309
|
+
|
310
|
+
_tokenInfo[chainId][token] = tokenInfo;
|
311
|
+
_token.push(tokenInfo);
|
184
312
|
|
185
313
|
emit LogTokenRegistryTokenRegistered(chainId, token, decimals, symbol);
|
186
314
|
}
|
@@ -6,21 +6,15 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
|
|
6
6
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
7
7
|
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
8
8
|
|
9
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
9
10
|
import {IComponent} from "./IComponent.sol";
|
10
11
|
import {IComponents} from "../instance/module/IComponents.sol";
|
11
|
-
import {
|
12
|
-
import {IInstance} from "../instance/IInstance.sol";
|
13
|
-
import {InstanceAccessManager} from "../instance/InstanceAccessManager.sol";
|
14
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
15
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
12
|
+
import {IComponentService} from "./IComponentService.sol";
|
16
13
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
17
|
-
import {ObjectType,
|
18
|
-
import {VersionPart} from "../type/Version.sol";
|
14
|
+
import {ObjectType, COMPONENT} from "../type/ObjectType.sol";
|
19
15
|
import {Registerable} from "../shared/Registerable.sol";
|
20
|
-
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
21
|
-
import {IAccess} from "../instance/module/IAccess.sol";
|
22
16
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
23
|
-
import {
|
17
|
+
import {VersionPartLib} from "../type/Version.sol";
|
24
18
|
|
25
19
|
abstract contract Component is
|
26
20
|
AccessManagedUpgradeable,
|
@@ -33,10 +27,9 @@ abstract contract Component is
|
|
33
27
|
struct ComponentStorage {
|
34
28
|
string _name; // unique (per instance) component name
|
35
29
|
IERC20Metadata _token; // token for this component
|
36
|
-
TokenHandler _tokenHandler;
|
37
|
-
address _wallet;
|
38
30
|
bool _isInterceptor;
|
39
31
|
bytes _data;
|
32
|
+
IComponentService _componentService;
|
40
33
|
}
|
41
34
|
|
42
35
|
|
@@ -47,14 +40,13 @@ abstract contract Component is
|
|
47
40
|
_;
|
48
41
|
}
|
49
42
|
|
50
|
-
|
51
43
|
function _getComponentStorage() private pure returns (ComponentStorage storage $) {
|
52
44
|
assembly {
|
53
45
|
$.slot := COMPONENT_LOCATION_V1
|
54
46
|
}
|
55
47
|
}
|
56
48
|
|
57
|
-
function
|
49
|
+
function _initializeComponent(
|
58
50
|
address authority,
|
59
51
|
address registry,
|
60
52
|
NftId parentNftId,
|
@@ -66,13 +58,10 @@ abstract contract Component is
|
|
66
58
|
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
67
59
|
bytes memory componentData // other component specific data
|
68
60
|
)
|
69
|
-
|
61
|
+
internal
|
70
62
|
virtual
|
71
63
|
onlyInitializing()
|
72
64
|
{
|
73
|
-
initializeRegisterable(registry, parentNftId, componentType, isInterceptor, initialOwner, registryData);
|
74
|
-
__AccessManaged_init(authority);
|
75
|
-
|
76
65
|
if (token == address(0)) {
|
77
66
|
revert ErrorComponentTokenAddressZero();
|
78
67
|
}
|
@@ -81,107 +70,59 @@ abstract contract Component is
|
|
81
70
|
revert ErrorComponentNameLengthZero();
|
82
71
|
}
|
83
72
|
|
73
|
+
_initializeRegisterable(
|
74
|
+
registry,
|
75
|
+
parentNftId,
|
76
|
+
componentType,
|
77
|
+
isInterceptor,
|
78
|
+
initialOwner,
|
79
|
+
registryData);
|
80
|
+
|
81
|
+
__AccessManaged_init(authority);
|
82
|
+
|
84
83
|
// set component state
|
85
84
|
ComponentStorage storage $ = _getComponentStorage();
|
86
85
|
$._name = name;
|
87
86
|
$._token = IERC20Metadata(token);
|
88
|
-
$._tokenHandler = TokenHandler(address(0));
|
89
|
-
$._wallet = address(this);
|
90
87
|
$._isInterceptor = isInterceptor;
|
91
88
|
$._data = componentData;
|
89
|
+
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
92
90
|
|
93
|
-
|
94
|
-
|
91
|
+
_registerInterface(type(IAccessManaged).interfaceId);
|
92
|
+
_registerInterface(type(IComponent).interfaceId);
|
95
93
|
}
|
96
94
|
|
97
95
|
|
98
|
-
function approveTokenHandler(
|
99
|
-
external
|
100
|
-
virtual
|
101
|
-
onlyOwner
|
102
|
-
{
|
103
|
-
approveTokenHandler(address(getToken()), spendingLimitAmount);
|
104
|
-
}
|
105
|
-
|
106
|
-
function approveTokenHandler(address token, uint256 spendingLimitAmount)
|
96
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount)
|
107
97
|
public
|
108
|
-
|
109
|
-
onlyOwner
|
110
|
-
{
|
111
|
-
if(getWallet() != address(this)) {
|
112
|
-
revert ErrorComponentWalletNotComponent();
|
113
|
-
}
|
114
|
-
|
115
|
-
IERC20Metadata(token).approve(
|
116
|
-
address(getTokenHandler()),
|
117
|
-
spendingLimitAmount);
|
118
|
-
|
119
|
-
emit LogComponentTokenHandlerApproved(address(getTokenHandler()), spendingLimitAmount);
|
120
|
-
}
|
121
|
-
|
122
|
-
function setWallet(address newWallet)
|
123
|
-
external
|
124
|
-
virtual
|
125
|
-
override
|
126
|
-
onlyOwner
|
98
|
+
onlyOwner()
|
127
99
|
{
|
128
|
-
|
129
|
-
address currentWallet = getWallet();
|
130
|
-
IERC20Metadata token = getToken();
|
131
|
-
uint256 currentBalance = token.balanceOf(currentWallet);
|
132
|
-
|
133
|
-
if (currentBalance > 0) {
|
134
|
-
if (currentWallet == address(this)) {
|
135
|
-
// move tokens from component smart contract to external wallet
|
136
|
-
} else {
|
137
|
-
// move tokens from external wallet to component smart contract or another external wallet
|
138
|
-
uint256 allowance = token.allowance(currentWallet, address(this));
|
139
|
-
if (allowance < currentBalance) {
|
140
|
-
revert ErrorComponentWalletAllowanceTooSmall(currentWallet, newWallet, allowance, currentBalance);
|
141
|
-
}
|
142
|
-
}
|
143
|
-
}
|
144
|
-
|
145
|
-
// effects
|
146
|
-
_setWallet(newWallet);
|
147
|
-
|
148
|
-
// interactions
|
149
|
-
if (currentBalance > 0) {
|
150
|
-
// transfer tokens from current wallet to new wallet
|
151
|
-
if (currentWallet == address(this)) {
|
152
|
-
// transferFrom requires self allowance too
|
153
|
-
token.approve(address(this), currentBalance);
|
154
|
-
}
|
155
|
-
|
156
|
-
SafeERC20.safeTransferFrom(token, currentWallet, newWallet, currentBalance);
|
157
|
-
emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
|
158
|
-
}
|
100
|
+
_approveTokenHandler(token, amount);
|
159
101
|
}
|
160
102
|
|
161
103
|
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
}
|
104
|
+
// function setWallet(address newWallet)
|
105
|
+
// external
|
106
|
+
// virtual
|
107
|
+
// override
|
108
|
+
// onlyOwner
|
109
|
+
// {
|
110
|
+
// _setWallet(newWallet);
|
111
|
+
// }
|
171
112
|
|
172
113
|
/// @dev callback function for nft transfers
|
173
114
|
/// may only be called by chain nft contract.
|
174
115
|
/// override internal function _nftTransferFrom to implement custom behaviour
|
175
|
-
function nftTransferFrom(address from, address to, uint256 tokenId)
|
116
|
+
function nftTransferFrom(address from, address to, uint256 tokenId, address operator)
|
176
117
|
external
|
177
118
|
onlyChainNft
|
178
119
|
{
|
179
|
-
_nftTransferFrom(from, to, tokenId);
|
120
|
+
_nftTransferFrom(from, to, tokenId, operator);
|
180
121
|
}
|
181
122
|
|
182
123
|
|
183
124
|
function getWallet() public view virtual returns (address walletAddress) {
|
184
|
-
return
|
125
|
+
return getTokenHandler().getWallet();
|
185
126
|
}
|
186
127
|
|
187
128
|
function getTokenHandler() public virtual view returns (TokenHandler tokenHandler) {
|
@@ -221,20 +162,23 @@ abstract contract Component is
|
|
221
162
|
|
222
163
|
|
223
164
|
function isRegistered() public virtual view returns (bool) {
|
224
|
-
return getRegistry().
|
165
|
+
return getRegistry().getNftIdForAddress(address(this)).gtz();
|
225
166
|
}
|
226
167
|
|
227
168
|
|
228
|
-
|
229
|
-
/// handling logic that deals with nft transfers need to overwrite this function
|
230
|
-
function _nftMint(address to, uint256 tokenId)
|
169
|
+
function _approveTokenHandler(IERC20Metadata token, Amount amount)
|
231
170
|
internal
|
232
171
|
virtual
|
233
|
-
{
|
172
|
+
{
|
173
|
+
_getComponentStorage()._componentService.approveTokenHandler(
|
174
|
+
token,
|
175
|
+
amount);
|
176
|
+
}
|
177
|
+
|
234
178
|
|
235
179
|
/// @dev internal function for nft transfers.
|
236
180
|
/// handling logic that deals with nft transfers need to overwrite this function
|
237
|
-
function _nftTransferFrom(address from, address to, uint256 tokenId)
|
181
|
+
function _nftTransferFrom(address from, address to, uint256 tokenId, address operator)
|
238
182
|
internal
|
239
183
|
virtual
|
240
184
|
{ }
|
@@ -242,45 +186,32 @@ abstract contract Component is
|
|
242
186
|
|
243
187
|
/// @dev depending on the source of the component information this function needs to be overwritten.
|
244
188
|
/// eg for instance linked components that externally store this information with the instance store contract
|
245
|
-
function _setWallet(
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
if (newWallet == address(0)) {
|
250
|
-
revert ErrorComponentWalletAddressZero();
|
251
|
-
}
|
252
|
-
|
253
|
-
if (newWallet == currentWallet) {
|
254
|
-
revert ErrorComponentWalletAddressIsSameAsCurrent();
|
255
|
-
}
|
256
|
-
|
257
|
-
$._wallet = newWallet;
|
258
|
-
emit LogComponentWalletAddressChanged(currentWallet, newWallet);
|
259
|
-
|
260
|
-
}
|
261
|
-
|
262
|
-
/// @dev for component contracts that hold its own component information
|
263
|
-
/// this function creates and sets a token hanlder for the components tokens
|
264
|
-
function _createAndSetTokenHandler()
|
189
|
+
function _setWallet(
|
190
|
+
address newWallet
|
191
|
+
)
|
265
192
|
internal
|
193
|
+
virtual
|
266
194
|
{
|
267
|
-
|
268
|
-
$._tokenHandler = new TokenHandler(address($._token));
|
195
|
+
_getComponentStorage()._componentService.setWallet(newWallet);
|
269
196
|
}
|
270
197
|
|
198
|
+
|
271
199
|
/// @dev depending on the source of the component information this function needs to be overwritten.
|
272
200
|
/// eg for instance linked components that externally store this information with the instance store contract
|
273
201
|
function _getComponentInfo() internal virtual view returns (IComponents.ComponentInfo memory info) {
|
274
202
|
ComponentStorage storage $ = _getComponentStorage();
|
275
|
-
|
203
|
+
|
276
204
|
return IComponents.ComponentInfo({
|
277
205
|
name: $._name,
|
278
|
-
productNftId: NftIdLib.zero(),
|
279
206
|
token: $._token,
|
280
|
-
tokenHandler:
|
281
|
-
wallet: $._wallet, // initial wallet address
|
207
|
+
tokenHandler: TokenHandler(address(0)),
|
282
208
|
data: $._data // user specific component data
|
283
209
|
});
|
284
210
|
}
|
285
211
|
|
212
|
+
/// @dev returns the service address for the specified domain
|
213
|
+
/// gets address via lookup from registry using the major version form the linked instance
|
214
|
+
function _getServiceAddress(ObjectType domain) internal view returns (address) {
|
215
|
+
return getRegistry().getServiceAddress(domain, getRelease());
|
216
|
+
}
|
286
217
|
}
|