@etherisc/gif-next 0.0.2-d696c44-627 → 0.0.2-d6a50e7-658
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 +46 -8
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +158 -70
- 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 +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
- 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 +97 -37
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +173 -375
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +123 -317
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +336 -229
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +143 -109
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +135 -139
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +198 -33
- 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 +1475 -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 +2040 -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 +1479 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2408 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +130 -61
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +165 -157
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +317 -143
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +57 -84
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +919 -315
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +131 -266
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -92
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +619 -492
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -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/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +139 -335
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
- 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 +128 -126
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +115 -303
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +162 -387
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +434 -201
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +163 -97
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +270 -27
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +143 -195
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +448 -217
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +128 -370
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +569 -396
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -91
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +258 -396
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +435 -212
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +145 -107
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +318 -8
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +361 -113
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +250 -198
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +57 -4
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +455 -318
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +141 -99
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +230 -312
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +256 -394
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -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 +315 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +521 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +275 -160
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +412 -246
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +76 -265
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +559 -558
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +137 -121
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +89 -88
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +492 -212
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +117 -126
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -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 +55 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +104 -303
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +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 +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
- 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 +134 -125
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +73 -93
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +210 -366
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +122 -95
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -11
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +100 -171
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +98 -84
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +153 -107
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +59 -23
- 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 +61 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -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 +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +7 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -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 +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 +118 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +3 -3
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -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/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +52 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -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/{shared → upgradeability}/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +192 -124
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +111 -40
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +10 -6
- package/contracts/authorization/IAuthorization.sol +13 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +12 -22
- package/contracts/distribution/BasicDistributionAuthorization.sol +6 -2
- package/contracts/distribution/Distribution.sol +37 -50
- package/contracts/distribution/DistributionService.sol +152 -97
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +6 -3
- package/contracts/distribution/IDistributionService.sol +23 -8
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +438 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +370 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +16 -36
- package/contracts/instance/IInstanceService.sol +9 -29
- package/contracts/instance/Instance.sol +47 -66
- package/contracts/instance/InstanceAdmin.sol +133 -73
- package/contracts/instance/InstanceAuthorizationV3.sol +55 -32
- package/contracts/instance/InstanceReader.sol +218 -27
- package/contracts/instance/InstanceService.sol +125 -164
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +24 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +11 -4
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +14 -15
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +26 -25
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +21 -22
- package/contracts/oracle/OracleService.sol +113 -81
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +38 -27
- package/contracts/pool/BasicPoolAuthorization.sol +22 -3
- package/contracts/pool/BundleService.sol +226 -97
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +33 -18
- package/contracts/pool/IPoolComponent.sol +20 -10
- package/contracts/pool/IPoolService.sol +53 -50
- package/contracts/pool/Pool.sol +150 -116
- package/contracts/pool/PoolService.sol +343 -179
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +83 -78
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +13 -44
- package/contracts/product/BasicProductAuthorization.sol +3 -2
- package/contracts/product/ClaimService.sol +425 -159
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +6 -2
- package/contracts/product/IClaimService.sol +44 -7
- package/contracts/product/IPolicyService.sol +46 -34
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +28 -5
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +520 -259
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +66 -62
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +160 -89
- package/contracts/product/RiskService.sol +151 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +58 -28
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +353 -203
- package/contracts/registry/RegistryAdmin.sol +161 -182
- package/contracts/registry/RegistryService.sol +41 -66
- package/contracts/registry/RegistryServiceManager.sol +5 -5
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +258 -234
- package/contracts/registry/ServiceAuthorizationV3.sol +94 -52
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +71 -126
- package/contracts/shared/ComponentService.sol +441 -358
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- package/contracts/shared/ContractLib.sol +252 -0
- package/contracts/shared/IComponent.sol +8 -17
- package/contracts/shared/IComponentService.sol +47 -39
- package/contracts/shared/IInstanceLinkedComponent.sol +7 -27
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +4 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +3 -3
- package/contracts/shared/InstanceLinkedComponent.sol +80 -34
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +31 -11
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +55 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +18 -36
- package/contracts/shared/TokenHandler.sol +357 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +12 -6
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +85 -70
- package/contracts/staking/StakingManager.sol +10 -11
- package/contracts/staking/StakingReader.sol +17 -13
- package/contracts/staking/StakingService.sol +64 -36
- package/contracts/staking/StakingServiceManager.sol +4 -4
- package/contracts/staking/StakingStore.sol +5 -15
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +36 -17
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +35 -4
- package/contracts/type/RoleId.sol +4 -13
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +10 -5
- package/contracts/type/UFixed.sol +35 -122
- package/contracts/type/Version.sol +15 -5
- package/contracts/{shared → upgradeability}/ProxyManager.sol +71 -37
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +4 -3
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/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 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/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/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/product/ProductService.sol +0 -124
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/shared/InitializableCustom.sol +0 -177
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +0 -0
@@ -2,18 +2,19 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {
|
5
|
-
ALL,
|
5
|
+
ALL, ACCOUNTING, REGISTRY, RISK, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
|
6
6
|
} from "../../contracts/type/ObjectType.sol";
|
7
7
|
|
8
|
-
import {ComponentService} from "../shared/ComponentService.sol";
|
9
8
|
import {IAccess} from "../authorization/IAccess.sol";
|
9
|
+
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
10
10
|
import {IBundleService} from "../pool/IBundleService.sol";
|
11
|
+
import {IClaimService} from "../product/IClaimService.sol";
|
11
12
|
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
12
|
-
import {InstanceService} from "../instance/InstanceService.sol";
|
13
13
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
14
14
|
import {IPoolService} from "../pool/IPoolService.sol";
|
15
15
|
import {IStakingService} from "../staking/IStakingService.sol";
|
16
16
|
import {IRegistryService} from "./IRegistryService.sol";
|
17
|
+
import {IRiskService} from "../product/IRiskService.sol";
|
17
18
|
import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
|
18
19
|
|
19
20
|
|
@@ -22,7 +23,7 @@ contract ServiceAuthorizationV3
|
|
22
23
|
{
|
23
24
|
|
24
25
|
constructor(string memory commitHash)
|
25
|
-
ServiceAuthorization(commitHash)
|
26
|
+
ServiceAuthorization(commitHash, 3)
|
26
27
|
{}
|
27
28
|
|
28
29
|
function _setupDomains()
|
@@ -32,16 +33,17 @@ contract ServiceAuthorizationV3
|
|
32
33
|
_authorizeDomain(REGISTRY(), address(1));
|
33
34
|
_authorizeDomain(STAKING(), address(2));
|
34
35
|
_authorizeDomain(INSTANCE(), address(3));
|
35
|
-
_authorizeDomain(
|
36
|
-
_authorizeDomain(
|
37
|
-
_authorizeDomain(
|
38
|
-
_authorizeDomain(
|
39
|
-
_authorizeDomain(
|
40
|
-
_authorizeDomain(
|
41
|
-
_authorizeDomain(
|
42
|
-
_authorizeDomain(
|
43
|
-
_authorizeDomain(
|
44
|
-
_authorizeDomain(
|
36
|
+
_authorizeDomain(ACCOUNTING(), address(4));
|
37
|
+
_authorizeDomain(COMPONENT(), address(5));
|
38
|
+
_authorizeDomain(DISTRIBUTION(), address(6));
|
39
|
+
_authorizeDomain(PRICE(), address(7));
|
40
|
+
_authorizeDomain(BUNDLE(), address(8));
|
41
|
+
_authorizeDomain(POOL(), address(9));
|
42
|
+
_authorizeDomain(ORACLE(), address(10));
|
43
|
+
_authorizeDomain(RISK(), address(11));
|
44
|
+
_authorizeDomain(POLICY(), address(12));
|
45
|
+
_authorizeDomain(CLAIM(), address(13));
|
46
|
+
_authorizeDomain(APPLICATION(), address(14));
|
45
47
|
}
|
46
48
|
|
47
49
|
|
@@ -52,7 +54,11 @@ contract ServiceAuthorizationV3
|
|
52
54
|
_setupIRegistryServiceAuthorization();
|
53
55
|
_setupStakingServiceAuthorization();
|
54
56
|
_setupInstanceServiceAuthorization();
|
57
|
+
_setupInstanceServiceAuthorization();
|
58
|
+
_setupAccountingServiceAuthorization();
|
55
59
|
_setupComponentServiceAuthorization();
|
60
|
+
_setupClaimServiceAuthorization();
|
61
|
+
_setupRiskServiceAuthorization();
|
56
62
|
_setupDistributionServiceAuthorization();
|
57
63
|
_setupPoolServiceAuthorization();
|
58
64
|
_setupBundleServiceAuthorization();
|
@@ -69,27 +75,21 @@ contract ServiceAuthorizationV3
|
|
69
75
|
functions = _authorizeForService(REGISTRY(), APPLICATION());
|
70
76
|
_authorize(functions, IRegistryService.registerPolicy.selector, "registerPolicy");
|
71
77
|
|
72
|
-
// functions = _authorizeForService(REGISTRY(), POOL());
|
73
|
-
// _authorize(functions, IRegistryService.registerPool.selector, "registerPool");
|
74
|
-
|
75
78
|
functions = _authorizeForService(REGISTRY(), BUNDLE());
|
76
79
|
_authorize(functions, IRegistryService.registerBundle.selector, "registerBundle");
|
77
80
|
|
81
|
+
functions = _authorizeForService(REGISTRY(), COMPONENT());
|
82
|
+
_authorize(functions, IRegistryService.registerProduct.selector, "registerProduct");
|
83
|
+
_authorize(functions, IRegistryService.registerProductLinkedComponent.selector, "registerProductLinkedComponent");
|
84
|
+
|
78
85
|
functions = _authorizeForService(REGISTRY(), DISTRIBUTION());
|
79
|
-
// _authorize(functions, IRegistryService.registerDistribution.selector, "registerDistribution");
|
80
86
|
_authorize(functions, IRegistryService.registerDistributor.selector, "registerDistributor");
|
81
87
|
|
82
|
-
functions = _authorizeForService(REGISTRY(), COMPONENT());
|
83
|
-
_authorize(functions, IRegistryService.registerComponent.selector, "registerComponent");
|
84
|
-
|
85
88
|
functions = _authorizeForService(REGISTRY(), INSTANCE());
|
86
89
|
_authorize(functions, IRegistryService.registerInstance.selector, "registerInstance");
|
87
90
|
|
88
91
|
functions = _authorizeForService(REGISTRY(), STAKING());
|
89
92
|
_authorize(functions, IRegistryService.registerStake.selector, "registerStake");
|
90
|
-
|
91
|
-
// functions = _authorizeForService(REGISTRY(), PRODUCT());
|
92
|
-
// _authorize(functions, IRegistryService.registerProduct.selector, "registerProduct");
|
93
93
|
}
|
94
94
|
|
95
95
|
|
@@ -122,9 +122,45 @@ contract ServiceAuthorizationV3
|
|
122
122
|
internal
|
123
123
|
{
|
124
124
|
IAccess.FunctionInfo[] storage functions;
|
125
|
+
functions = _authorizeForService(INSTANCE(), ALL());
|
126
|
+
_authorize(functions, IInstanceService.createInstance.selector, "createInstance");
|
127
|
+
_authorize(functions, IInstanceService.upgradeInstanceReader.selector, "upgradeInstanceReader");
|
128
|
+
_authorize(functions, IInstanceService.upgradeMasterInstanceReader.selector, "upgradeMasterInstanceReader");
|
129
|
+
|
130
|
+
_authorize(functions, IInstanceService.setStakingLockingPeriod.selector, "setStakingLockingPeriod");
|
131
|
+
_authorize(functions, IInstanceService.setStakingRewardRate.selector, "setStakingRewardRate");
|
132
|
+
_authorize(functions, IInstanceService.refillStakingRewardReserves.selector, "refillStakingRewardReserves");
|
133
|
+
_authorize(functions, IInstanceService.withdrawStakingRewardReserves.selector, "withdrawStakingRewardReserves");
|
134
|
+
}
|
135
|
+
|
136
|
+
/// @dev Accounting service function authorization.
|
137
|
+
function _setupAccountingServiceAuthorization()
|
138
|
+
internal
|
139
|
+
{
|
140
|
+
IAccess.FunctionInfo[] storage functions;
|
141
|
+
|
142
|
+
functions = _authorizeForService(ACCOUNTING(), BUNDLE());
|
143
|
+
_authorize(functions, IAccountingService.increaseBundleBalance.selector, "increaseBundleBalance");
|
144
|
+
_authorize(functions, IAccountingService.decreaseBundleBalance.selector, "decreaseBundleBalance");
|
145
|
+
|
146
|
+
functions = _authorizeForService(ACCOUNTING(), COMPONENT());
|
147
|
+
_authorize(functions, IAccountingService.decreaseComponentFees.selector, "decreaseComponentFees");
|
148
|
+
|
149
|
+
functions = _authorizeForService(ACCOUNTING(), DISTRIBUTION());
|
150
|
+
_authorize(functions, IAccountingService.increaseDistributionBalance.selector, "increaseDistributionBalance");
|
151
|
+
_authorize(functions, IAccountingService.decreaseDistributionBalance.selector, "decreaseDistributionBalance");
|
152
|
+
_authorize(functions, IAccountingService.increaseDistributorBalance.selector, "increaseDistributorBalance");
|
153
|
+
_authorize(functions, IAccountingService.decreaseDistributorBalance.selector, "decreaseDistributorBalance");
|
154
|
+
|
155
|
+
functions = _authorizeForService(ACCOUNTING(), POLICY());
|
156
|
+
_authorize(functions, IAccountingService.increaseProductFees.selector, "increaseProductFees");
|
157
|
+
|
158
|
+
functions = _authorizeForService(ACCOUNTING(), POOL());
|
159
|
+
_authorize(functions, IAccountingService.increasePoolBalance.selector, "increasePoolBalance");
|
160
|
+
_authorize(functions, IAccountingService.decreasePoolBalance.selector, "decreasePoolBalance");
|
161
|
+
_authorize(functions, IAccountingService.increaseBundleBalanceForPool.selector, "increaseBundleBalanceForPool");
|
162
|
+
_authorize(functions, IAccountingService.decreaseBundleBalanceForPool.selector, "decreaseBundleBalanceForPool");
|
125
163
|
|
126
|
-
functions = _authorizeForService(INSTANCE(), COMPONENT());
|
127
|
-
_authorize(functions, IInstanceService.initializeAuthorization.selector, "initializeAuthorization");
|
128
164
|
}
|
129
165
|
|
130
166
|
|
@@ -132,37 +168,36 @@ contract ServiceAuthorizationV3
|
|
132
168
|
function _setupComponentServiceAuthorization()
|
133
169
|
internal
|
134
170
|
{
|
135
|
-
// authz.authorizations = new DomainAuthorization[](4);
|
136
|
-
|
137
|
-
// authz.authorizations[0].domain = POLICY();
|
138
|
-
// _functions = new IAccessAdmin.Function[](1);
|
139
|
-
// __authorize(ComponentService.increaseProductFees.selector, "increaseProductFees"));
|
140
|
-
// authz.authorizations[0].functions = _functions;
|
141
|
-
|
142
|
-
// authz.authorizations[1].domain = DISTRIBUTION();
|
143
|
-
// _functions = new IAccessAdmin.Function[](1);
|
144
|
-
// __authorize(ComponentService.increaseDistributionBalance.selector, "increaseDistributionBalance"));
|
145
|
-
// authz.authorizations[1].functions = _functions;
|
146
|
-
|
147
|
-
// authz.authorizations[2].domain = POOL();
|
148
|
-
// _functions = new IAccessAdmin.Function[](1);
|
149
|
-
// __authorize(ComponentService.increasePoolBalance.selector, "increasePoolBalance"));
|
150
|
-
// authz.authorizations[2].functions = _functions;
|
151
|
-
|
152
|
-
// authz.authorizations[3].domain = BUNDLE();
|
153
|
-
// _functions = new IAccessAdmin.Function[](1);
|
154
|
-
// __authorize(ComponentService.increaseBundleBalance.selector, "increaseBundleBalance"));
|
155
|
-
// authz.authorizations[3].functions = _functions;
|
156
171
|
}
|
157
172
|
|
158
173
|
/// @dev Distribution service function authorization.
|
159
|
-
function
|
174
|
+
function _setupRiskServiceAuthorization()
|
175
|
+
internal
|
176
|
+
{
|
177
|
+
IAccess.FunctionInfo[] storage functions;
|
178
|
+
functions = _authorizeForService(RISK(), ALL());
|
179
|
+
_authorize(functions, IRiskService.createRisk.selector, "createRisk");
|
180
|
+
_authorize(functions, IRiskService.updateRisk.selector, "updateRisk");
|
181
|
+
_authorize(functions, IRiskService.updateRiskState.selector, "updateRiskState");
|
182
|
+
}
|
183
|
+
|
184
|
+
/// @dev Distribution service function authorization.
|
185
|
+
function _setupClaimServiceAuthorization()
|
160
186
|
internal
|
161
187
|
{
|
162
188
|
IAccess.FunctionInfo[] storage functions;
|
189
|
+
functions = _authorizeForService(CLAIM(), ALL());
|
190
|
+
_authorize(functions, IClaimService.submit.selector, "submit");
|
191
|
+
}
|
163
192
|
|
193
|
+
/// @dev Distribution service function authorization.
|
194
|
+
function _setupDistributionServiceAuthorization()
|
195
|
+
internal
|
196
|
+
{
|
197
|
+
IAccess.FunctionInfo[] storage functions;
|
164
198
|
functions = _authorizeForService(DISTRIBUTION(), POLICY());
|
165
199
|
_authorize(functions, IDistributionService.processSale.selector, "processSale");
|
200
|
+
_authorize(functions, IDistributionService.processReferral.selector, "processReferral");
|
166
201
|
}
|
167
202
|
|
168
203
|
|
@@ -175,11 +210,10 @@ contract ServiceAuthorizationV3
|
|
175
210
|
functions = _authorizeForService(POOL(), POLICY());
|
176
211
|
_authorize(functions, IPoolService.lockCollateral.selector, "lockCollateral");
|
177
212
|
_authorize(functions, IPoolService.releaseCollateral.selector, "releaseCollateral");
|
178
|
-
_authorize(functions, IPoolService.reduceCollateral.selector, "reduceCollateral");
|
179
213
|
_authorize(functions, IPoolService.processSale.selector, "processSale");
|
180
214
|
|
181
215
|
functions = _authorizeForService(POOL(), CLAIM());
|
182
|
-
_authorize(functions, IPoolService.
|
216
|
+
_authorize(functions, IPoolService.processPayout.selector, "processPayout");
|
183
217
|
}
|
184
218
|
|
185
219
|
|
@@ -190,11 +224,19 @@ contract ServiceAuthorizationV3
|
|
190
224
|
IAccess.FunctionInfo[] storage functions;
|
191
225
|
|
192
226
|
functions = _authorizeForService(BUNDLE(), POOL());
|
193
|
-
_authorize(functions, IBundleService.
|
227
|
+
_authorize(functions, IBundleService.stake.selector, "stake");
|
228
|
+
_authorize(functions, IBundleService.unstake.selector, "unstake");
|
194
229
|
_authorize(functions, IBundleService.close.selector, "close");
|
195
230
|
_authorize(functions, IBundleService.lockCollateral.selector, "lockCollateral");
|
196
231
|
_authorize(functions, IBundleService.releaseCollateral.selector, "releaseCollateral");
|
197
|
-
|
232
|
+
|
233
|
+
functions = _authorizeForService(BUNDLE(), ALL());
|
234
|
+
_authorize(functions, IBundleService.create.selector, "create");
|
235
|
+
_authorize(functions, IBundleService.extend.selector, "extend");
|
236
|
+
_authorize(functions, IBundleService.lock.selector, "lock");
|
237
|
+
_authorize(functions, IBundleService.unlock.selector, "unlock");
|
238
|
+
_authorize(functions, IBundleService.setFee.selector, "setFee");
|
239
|
+
_authorize(functions, IBundleService.withdrawBundleFees.selector, "withdrawBundleFees");
|
198
240
|
}
|
199
241
|
}
|
200
242
|
|
@@ -8,15 +8,13 @@ import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165C
|
|
8
8
|
import {REGISTRY} from "../type/ObjectType.sol";
|
9
9
|
import {VersionPart} from "../type/Version.sol";
|
10
10
|
|
11
|
-
import {IRegisterable} from "../shared/IRegisterable.sol";
|
12
|
-
|
13
11
|
import {IRegistry} from "./IRegistry.sol";
|
14
12
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
15
13
|
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
16
14
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
17
15
|
|
18
|
-
|
19
|
-
///
|
16
|
+
/// @dev The TokenRegistry contract is used to whitelist/manage ERC-20 of tokens per major release.
|
17
|
+
/// Only whitelisted tokens can be used as default tokens for products, distribution and pools components.
|
20
18
|
contract TokenRegistry is
|
21
19
|
AccessManaged,
|
22
20
|
IRegistryLinked
|
@@ -68,7 +66,7 @@ contract TokenRegistry is
|
|
68
66
|
setAuthority(authority);
|
69
67
|
|
70
68
|
_registry = registry;
|
71
|
-
_dipToken = dipToken;
|
69
|
+
_dipToken = _verifyOnchainToken(address(dipToken));
|
72
70
|
|
73
71
|
// register dip token
|
74
72
|
uint256 chainId = block.chainid;
|
@@ -212,13 +210,13 @@ contract TokenRegistry is
|
|
212
210
|
return _tokenInfo[chainId][token].chainId > 0;
|
213
211
|
}
|
214
212
|
|
215
|
-
/// @dev returns true iff both the token is active for the specfied
|
216
|
-
function isActive(uint256 chainId, address token, VersionPart
|
213
|
+
/// @dev returns true iff both the token is active for the specfied release and the global token state is active
|
214
|
+
function isActive(uint256 chainId, address token, VersionPart release) external view returns (bool) {
|
217
215
|
if(!_tokenInfo[chainId][token].active) {
|
218
216
|
return false;
|
219
217
|
}
|
220
218
|
|
221
|
-
return _active[chainId][token][
|
219
|
+
return _active[chainId][token][release];
|
222
220
|
}
|
223
221
|
|
224
222
|
function getDipTokenAddress() external view returns (address) {
|
@@ -1,22 +1,24 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
4
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
6
5
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
7
|
-
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
8
6
|
|
9
7
|
import {Amount} from "../type/Amount.sol";
|
8
|
+
import {ContractLib} from "./ContractLib.sol";
|
10
9
|
import {IComponent} from "./IComponent.sol";
|
11
10
|
import {IComponents} from "../instance/module/IComponents.sol";
|
12
|
-
import {
|
13
|
-
import {
|
11
|
+
import {IComponentService} from "./IComponentService.sol";
|
12
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
13
|
+
import {IRelease} from "../registry/IRelease.sol";
|
14
|
+
import {NftId} from "../type/NftId.sol";
|
15
|
+
import {ObjectType, COMPONENT, STAKING} from "../type/ObjectType.sol";
|
14
16
|
import {Registerable} from "../shared/Registerable.sol";
|
15
17
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
16
|
-
import {
|
18
|
+
import {Version, VersionLib, VersionPart} from "../type/Version.sol";
|
19
|
+
|
17
20
|
|
18
21
|
abstract contract Component is
|
19
|
-
AccessManagedUpgradeable,
|
20
22
|
Registerable,
|
21
23
|
IComponent
|
22
24
|
{
|
@@ -26,10 +28,9 @@ abstract contract Component is
|
|
26
28
|
struct ComponentStorage {
|
27
29
|
string _name; // unique (per instance) component name
|
28
30
|
IERC20Metadata _token; // token for this component
|
29
|
-
TokenHandler _tokenHandler;
|
30
|
-
address _wallet;
|
31
31
|
bool _isInterceptor;
|
32
32
|
bytes _data;
|
33
|
+
IComponentService _componentService;
|
33
34
|
}
|
34
35
|
|
35
36
|
|
@@ -47,7 +48,8 @@ abstract contract Component is
|
|
47
48
|
}
|
48
49
|
}
|
49
50
|
|
50
|
-
|
51
|
+
|
52
|
+
function _initializeComponent(
|
51
53
|
address authority,
|
52
54
|
address registry,
|
53
55
|
NftId parentNftId,
|
@@ -59,122 +61,63 @@ abstract contract Component is
|
|
59
61
|
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
60
62
|
bytes memory componentData // other component specific data
|
61
63
|
)
|
62
|
-
|
64
|
+
internal
|
63
65
|
virtual
|
64
66
|
onlyInitializing()
|
65
67
|
{
|
66
|
-
|
67
|
-
|
68
|
+
address tokenRegistry = IRegistry(registry).getTokenRegistryAddress();
|
69
|
+
VersionPart release = IRelease(authority).getRelease();
|
70
|
+
|
71
|
+
// special case for staking: component intitialization happens before
|
72
|
+
// GIF core contract setup is complete. at that time token registry
|
73
|
+
// is not yet available. therefore we skip the check for staking.
|
74
|
+
if (componentType != STAKING()) {
|
68
75
|
|
69
|
-
|
70
|
-
|
76
|
+
// check if provided token is whitelisted and active
|
77
|
+
if (!ContractLib.isActiveToken(tokenRegistry, token, block.chainid, release)) {
|
78
|
+
revert ErrorComponentTokenInvalid(token);
|
79
|
+
}
|
71
80
|
}
|
72
81
|
|
73
82
|
if (bytes(name).length == 0) {
|
74
83
|
revert ErrorComponentNameLengthZero();
|
75
84
|
}
|
76
85
|
|
86
|
+
__Registerable_init(
|
87
|
+
authority,
|
88
|
+
registry,
|
89
|
+
parentNftId,
|
90
|
+
componentType,
|
91
|
+
isInterceptor,
|
92
|
+
initialOwner,
|
93
|
+
registryData);
|
94
|
+
|
77
95
|
// set component state
|
78
96
|
ComponentStorage storage $ = _getComponentStorage();
|
79
97
|
$._name = name;
|
80
98
|
$._token = IERC20Metadata(token);
|
81
|
-
$._tokenHandler = TokenHandler(address(0));
|
82
|
-
$._wallet = address(this);
|
83
99
|
$._isInterceptor = isInterceptor;
|
84
100
|
$._data = componentData;
|
101
|
+
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
85
102
|
|
86
|
-
|
87
|
-
|
88
|
-
}
|
89
|
-
|
90
|
-
|
91
|
-
function approveTokenHandler(Amount spendingLimitAmount)
|
92
|
-
external
|
93
|
-
virtual
|
94
|
-
onlyOwner
|
95
|
-
{
|
96
|
-
approveTokenHandler(address(getToken()), spendingLimitAmount);
|
97
|
-
}
|
98
|
-
|
99
|
-
function approveTokenHandler(address token, Amount spendingLimitAmount)
|
100
|
-
public
|
101
|
-
virtual
|
102
|
-
onlyOwner
|
103
|
-
{
|
104
|
-
if(getWallet() != address(this)) {
|
105
|
-
revert ErrorComponentWalletNotComponent();
|
106
|
-
}
|
107
|
-
|
108
|
-
IERC20Metadata(token).approve(
|
109
|
-
address(getTokenHandler()),
|
110
|
-
spendingLimitAmount.toInt());
|
111
|
-
|
112
|
-
emit LogComponentTokenHandlerApproved(address(getTokenHandler()), spendingLimitAmount);
|
113
|
-
}
|
114
|
-
|
115
|
-
function setWallet(address newWallet)
|
116
|
-
external
|
117
|
-
virtual
|
118
|
-
override
|
119
|
-
onlyOwner
|
120
|
-
{
|
121
|
-
// checks
|
122
|
-
address currentWallet = getWallet();
|
123
|
-
IERC20Metadata token = getToken();
|
124
|
-
uint256 currentBalance = token.balanceOf(currentWallet);
|
125
|
-
|
126
|
-
if (currentBalance > 0) {
|
127
|
-
if (currentWallet == address(this)) {
|
128
|
-
// move tokens from component smart contract to external wallet
|
129
|
-
} else {
|
130
|
-
// move tokens from external wallet to component smart contract or another external wallet
|
131
|
-
uint256 allowance = token.allowance(currentWallet, address(this));
|
132
|
-
if (allowance < currentBalance) {
|
133
|
-
revert ErrorComponentWalletAllowanceTooSmall(currentWallet, newWallet, allowance, currentBalance);
|
134
|
-
}
|
135
|
-
}
|
136
|
-
}
|
137
|
-
|
138
|
-
// effects
|
139
|
-
_setWallet(newWallet);
|
140
|
-
|
141
|
-
// interactions
|
142
|
-
if (currentBalance > 0) {
|
143
|
-
// transfer tokens from current wallet to new wallet
|
144
|
-
if (currentWallet == address(this)) {
|
145
|
-
// transferFrom requires self allowance too
|
146
|
-
token.approve(address(this), currentBalance);
|
147
|
-
}
|
148
|
-
|
149
|
-
SafeERC20.safeTransferFrom(token, currentWallet, newWallet, currentBalance);
|
150
|
-
emit LogComponentWalletTokensTransferred(currentWallet, newWallet, currentBalance);
|
151
|
-
}
|
103
|
+
_registerInterface(type(IAccessManaged).interfaceId);
|
104
|
+
_registerInterface(type(IComponent).interfaceId);
|
152
105
|
}
|
153
106
|
|
154
107
|
|
155
|
-
/// @dev callback function for nft mints
|
156
|
-
/// may only be called by chain nft contract.
|
157
|
-
/// override internal function _nftMint to implement custom behaviour
|
158
|
-
function nftMint(address to, uint256 tokenId)
|
159
|
-
external
|
160
|
-
onlyChainNft
|
161
|
-
{
|
162
|
-
_nftMint(to, tokenId);
|
163
|
-
}
|
164
|
-
|
165
108
|
/// @dev callback function for nft transfers
|
166
109
|
/// may only be called by chain nft contract.
|
167
110
|
/// override internal function _nftTransferFrom to implement custom behaviour
|
168
|
-
function nftTransferFrom(address from, address to, uint256 tokenId)
|
111
|
+
function nftTransferFrom(address from, address to, uint256 tokenId, address operator)
|
169
112
|
external
|
170
113
|
onlyChainNft
|
171
114
|
{
|
172
|
-
_nftTransferFrom(from, to, tokenId);
|
115
|
+
_nftTransferFrom(from, to, tokenId, operator);
|
173
116
|
}
|
174
117
|
|
175
118
|
|
176
119
|
function getWallet() public view virtual returns (address walletAddress) {
|
177
|
-
return
|
120
|
+
return getTokenHandler().getWallet();
|
178
121
|
}
|
179
122
|
|
180
123
|
function getTokenHandler() public virtual view returns (TokenHandler tokenHandler) {
|
@@ -189,6 +132,10 @@ abstract contract Component is
|
|
189
132
|
return getComponentInfo().name;
|
190
133
|
}
|
191
134
|
|
135
|
+
function getVersion() public view virtual returns (Version version) {
|
136
|
+
return VersionLib.toVersion(1, 0, 0);
|
137
|
+
}
|
138
|
+
|
192
139
|
function getComponentInfo() public virtual view returns (IComponents.ComponentInfo memory info) {
|
193
140
|
if (isRegistered()) {
|
194
141
|
return _getComponentInfo();
|
@@ -214,20 +161,26 @@ abstract contract Component is
|
|
214
161
|
|
215
162
|
|
216
163
|
function isRegistered() public virtual view returns (bool) {
|
217
|
-
return getRegistry().
|
164
|
+
return getRegistry().getNftIdForAddress(address(this)).gtz();
|
218
165
|
}
|
219
166
|
|
220
167
|
|
221
|
-
/// @dev
|
222
|
-
///
|
223
|
-
|
168
|
+
/// @dev Approves token hanlder to spend up to the specified amount of tokens.
|
169
|
+
/// Reverts if component wallet is not token handler itself.
|
170
|
+
/// Only component owner (nft holder) is authorizes to call this function.
|
171
|
+
function _approveTokenHandler(IERC20Metadata token, Amount amount)
|
224
172
|
internal
|
225
173
|
virtual
|
226
|
-
{
|
174
|
+
{
|
175
|
+
_getComponentStorage()._componentService.approveTokenHandler(
|
176
|
+
token,
|
177
|
+
amount);
|
178
|
+
}
|
179
|
+
|
227
180
|
|
228
181
|
/// @dev internal function for nft transfers.
|
229
182
|
/// handling logic that deals with nft transfers need to overwrite this function
|
230
|
-
function _nftTransferFrom(address from, address to, uint256 tokenId)
|
183
|
+
function _nftTransferFrom(address from, address to, uint256 tokenId, address operator)
|
231
184
|
internal
|
232
185
|
virtual
|
233
186
|
{ }
|
@@ -235,31 +188,20 @@ abstract contract Component is
|
|
235
188
|
|
236
189
|
/// @dev depending on the source of the component information this function needs to be overwritten.
|
237
190
|
/// eg for instance linked components that externally store this information with the instance store contract
|
238
|
-
function _setWallet(
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
if (newWallet == currentWallet) {
|
247
|
-
revert ErrorComponentWalletAddressIsSameAsCurrent();
|
248
|
-
}
|
249
|
-
|
250
|
-
$._wallet = newWallet;
|
251
|
-
emit LogComponentWalletAddressChanged(currentWallet, newWallet);
|
252
|
-
|
191
|
+
function _setWallet(
|
192
|
+
address newWallet
|
193
|
+
)
|
194
|
+
internal
|
195
|
+
virtual
|
196
|
+
{
|
197
|
+
_getComponentStorage()._componentService.setWallet(newWallet);
|
253
198
|
}
|
254
199
|
|
255
|
-
|
256
|
-
/// @dev for component contracts that hold its own component information
|
257
|
-
/// this function creates and sets a token hanlder for the components tokens
|
258
|
-
function _createAndSetTokenHandler()
|
200
|
+
function _setLocked(bool locked)
|
259
201
|
internal
|
202
|
+
virtual
|
260
203
|
{
|
261
|
-
|
262
|
-
$._tokenHandler = new TokenHandler(address($._token));
|
204
|
+
_getComponentStorage()._componentService.setLockedFromComponent(address(this), locked);
|
263
205
|
}
|
264
206
|
|
265
207
|
|
@@ -267,15 +209,18 @@ abstract contract Component is
|
|
267
209
|
/// eg for instance linked components that externally store this information with the instance store contract
|
268
210
|
function _getComponentInfo() internal virtual view returns (IComponents.ComponentInfo memory info) {
|
269
211
|
ComponentStorage storage $ = _getComponentStorage();
|
270
|
-
|
212
|
+
|
271
213
|
return IComponents.ComponentInfo({
|
272
214
|
name: $._name,
|
273
|
-
productNftId: NftIdLib.zero(),
|
274
215
|
token: $._token,
|
275
|
-
tokenHandler:
|
276
|
-
wallet: $._wallet, // initial wallet address
|
216
|
+
tokenHandler: TokenHandler(address(0)),
|
277
217
|
data: $._data // user specific component data
|
278
218
|
});
|
279
219
|
}
|
280
220
|
|
221
|
+
/// @dev returns the service address for the specified domain
|
222
|
+
/// gets address via lookup from registry using the major version form the linked instance
|
223
|
+
function _getServiceAddress(ObjectType domain) internal view returns (address) {
|
224
|
+
return getRegistry().getServiceAddress(domain, getRelease());
|
225
|
+
}
|
281
226
|
}
|