@etherisc/gif-next 0.0.2-de9ede4-391 → 0.0.2-deb924b-641
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/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +65 -58
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +20 -22
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +27 -3
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +148 -62
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
- 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 +149 -21
- 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 +82 -12
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +79 -49
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +51 -21
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +207 -192
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +53 -51
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +38 -8
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +97 -73
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +76 -42
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +127 -40
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +233 -184
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +106 -56
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +152 -33
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -45
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +98 -48
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +127 -40
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +280 -147
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +152 -33
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +54 -21
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -3
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +80 -40
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +344 -99
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +127 -40
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +175 -199
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -58
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +20 -22
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +44 -272
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
- 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 +2 -2
- 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/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +68 -38
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
- 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 +38 -8
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +52 -22
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +75 -68
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +25 -27
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -21
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +127 -40
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +102 -201
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +33 -55
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -80
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -8
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +120 -175
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -21
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +236 -281
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +61 -47
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +57 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +16 -18
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +157 -112
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -187
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -65
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +27 -3
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +105 -68
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -99
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +193 -173
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +45 -47
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +85 -78
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +31 -33
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +157 -112
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +76 -77
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +25 -19
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +26 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
- 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/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +64 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +250 -221
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +11 -13
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +315 -49
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- 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 +51 -21
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +105 -108
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +40 -38
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +57 -4
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +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 +38 -8
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -21
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -8
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -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 +27 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +51 -21
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +41 -22
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +98 -3
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +48 -43
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +101 -71
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +31 -19
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -57
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +137 -51
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +22 -20
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +128 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
- 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/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +23 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/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 +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- 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 +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +2 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +3 -4
- package/contracts/accounting/AccountingServiceManager.sol +1 -1
- package/contracts/authorization/AccessAdmin.sol +156 -82
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +277 -229
- package/contracts/authorization/IAccessAdmin.sol +13 -7
- package/contracts/authorization/IAuthorization.sol +15 -1
- package/contracts/distribution/BasicDistribution.sol +7 -5
- package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
- package/contracts/distribution/Distribution.sol +10 -8
- package/contracts/distribution/DistributionService.sol +26 -25
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +14 -13
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
- package/contracts/examples/fire/FireProduct.sol +3 -1
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -1
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleProduct.sol +25 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IInstance.sol +6 -7
- package/contracts/instance/IInstanceService.sol +2 -0
- package/contracts/instance/Instance.sol +19 -11
- package/contracts/instance/InstanceAdmin.sol +213 -64
- package/contracts/instance/InstanceAuthorizationV3.sol +8 -17
- package/contracts/instance/InstanceReader.sol +75 -34
- package/contracts/instance/InstanceService.sol +43 -31
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +1 -0
- package/contracts/instance/RiskSet.sol +11 -12
- package/contracts/instance/base/ObjectLifecycle.sol +2 -1
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +0 -8
- package/contracts/instance/module/IDistribution.sol +2 -1
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +16 -15
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPoolAuthorization.sol +21 -13
- package/contracts/pool/BundleService.sol +28 -58
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +13 -19
- package/contracts/pool/IPoolService.sol +50 -38
- package/contracts/pool/Pool.sol +9 -9
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +296 -154
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +3 -3
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +2 -0
- package/contracts/product/BasicProductAuthorization.sol +23 -8
- package/contracts/product/ClaimService.sol +157 -139
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +11 -6
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/PolicyService.sol +90 -144
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +23 -19
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +51 -0
- package/contracts/product/RiskService.sol +61 -23
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/IRegistry.sol +8 -15
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/Registry.sol +7 -2
- package/contracts/registry/RegistryAdmin.sol +126 -229
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +124 -99
- package/contracts/registry/ServiceAuthorizationV3.sol +42 -2
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +27 -19
- package/contracts/shared/ComponentService.sol +85 -89
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/ContractLib.sol +32 -3
- package/contracts/shared/IComponent.sol +3 -4
- package/contracts/shared/IComponentService.sol +0 -4
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +2 -2
- package/contracts/shared/NftOwnable.sol +4 -4
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +45 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +40 -88
- package/contracts/staking/IStaking.sol +1 -10
- package/contracts/staking/IStakingService.sol +11 -1
- package/contracts/staking/StakeManagerLib.sol +67 -16
- package/contracts/staking/Staking.sol +35 -20
- package/contracts/staking/StakingReader.sol +1 -16
- package/contracts/staking/StakingService.sol +53 -44
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/type/ObjectType.sol +41 -27
- package/contracts/type/RiskId.sol +5 -0
- package/contracts/type/RoleId.sol +24 -4
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +1 -1
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
@@ -2,12 +2,14 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
|
5
|
+
import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
|
5
6
|
|
6
7
|
// import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
7
8
|
import {IRegistry} from "../registry/IRegistry.sol";
|
8
9
|
import {IPolicyHolder} from "../shared/IPolicyHolder.sol";
|
9
10
|
import {NftId} from "../type/NftId.sol";
|
10
11
|
import {ObjectType, PRODUCT, DISTRIBUTION, ORACLE, POOL, STAKING} from "../type/ObjectType.sol";
|
12
|
+
import {VersionPart} from "../type/Version.sol";
|
11
13
|
|
12
14
|
interface ITargetHelper {
|
13
15
|
function isTargetLocked(address target) external view returns (bool);
|
@@ -17,6 +19,10 @@ interface IInstanceAdminHelper {
|
|
17
19
|
function getInstanceAdmin() external view returns (ITargetHelper);
|
18
20
|
}
|
19
21
|
|
22
|
+
interface ITokenRegistryHelper {
|
23
|
+
function isActive(uint256 chainId, address token, VersionPart release) external view returns (bool);
|
24
|
+
}
|
25
|
+
|
20
26
|
library ContractLib {
|
21
27
|
|
22
28
|
error ErrorContractLibNotRegistered(address target);
|
@@ -25,7 +31,6 @@ library ContractLib {
|
|
25
31
|
error ErrorContractLibComponentTypeMismatch(NftId componentNftId, ObjectType expectedType, ObjectType actualType);
|
26
32
|
error ErrorContractLibComponentInactive(NftId componentNftId);
|
27
33
|
|
28
|
-
|
29
34
|
function getAndVerifyComponent(
|
30
35
|
IRegistry registry,
|
31
36
|
address target,
|
@@ -130,17 +135,41 @@ library ContractLib {
|
|
130
135
|
view
|
131
136
|
returns (address instance)
|
132
137
|
{
|
133
|
-
NftId productNftId = registry.
|
134
|
-
NftId instanceNftId = registry.
|
138
|
+
NftId productNftId = registry.getParentNftId(componentNftId);
|
139
|
+
NftId instanceNftId = registry.getParentNftId(productNftId);
|
135
140
|
return registry.getObjectInfo(instanceNftId).objectAddress;
|
136
141
|
}
|
137
142
|
|
138
143
|
|
144
|
+
function isActiveToken(
|
145
|
+
address tokenRegistryAddress,
|
146
|
+
address token,
|
147
|
+
uint256 chainId,
|
148
|
+
VersionPart release
|
149
|
+
)
|
150
|
+
external
|
151
|
+
view
|
152
|
+
returns (bool)
|
153
|
+
{
|
154
|
+
return ITokenRegistryHelper(
|
155
|
+
tokenRegistryAddress).isActive(
|
156
|
+
chainId, token, release);
|
157
|
+
}
|
158
|
+
|
139
159
|
function isPolicyHolder(address target) external view returns (bool) {
|
140
160
|
return ERC165Checker.supportsInterface(target, type(IPolicyHolder).interfaceId);
|
141
161
|
}
|
142
162
|
|
143
163
|
|
164
|
+
function isAuthority(address authority) public view returns (bool) {
|
165
|
+
if (!isContract(authority)) {
|
166
|
+
return false;
|
167
|
+
}
|
168
|
+
|
169
|
+
return supportsInterface(authority, type(IAccessManager).interfaceId);
|
170
|
+
}
|
171
|
+
|
172
|
+
|
144
173
|
function isRegistry(address registry) public view returns (bool) {
|
145
174
|
if (!isContract(registry)) {
|
146
175
|
return false;
|
@@ -1,7 +1,6 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
5
|
|
7
6
|
import {Amount} from "../type/Amount.sol";
|
@@ -13,18 +12,18 @@ import {TokenHandler} from "../shared/TokenHandler.sol";
|
|
13
12
|
/// @dev component base class
|
14
13
|
/// component examples are staking, product, distribution, pool and oracle
|
15
14
|
interface IComponent is
|
16
|
-
IAccessManaged,
|
17
15
|
IRegisterable,
|
18
16
|
ITransferInterceptor
|
19
17
|
{
|
18
|
+
|
19
|
+
error ErrorComponentTokenInvalid(address token);
|
20
|
+
|
20
21
|
error ErrorComponentProductNftIdZero();
|
21
22
|
error ErrorComponentProductNftIdNonzero();
|
22
23
|
error ErrorComponentNameLengthZero();
|
23
24
|
|
24
25
|
error ErrorComponentNotChainNft(address caller);
|
25
26
|
|
26
|
-
error ErrorComponentTokenAddressNonzero();
|
27
|
-
error ErrorComponentTokenAddressZero();
|
28
27
|
error ErrorComponentWalletAddressZero();
|
29
28
|
error ErrorComponentWalletAddressIsSameAsCurrent();
|
30
29
|
error ErrorComponentWalletNotComponent();
|
@@ -67,10 +67,6 @@ interface IComponentService is
|
|
67
67
|
/// Reverts if the component's token handler wallet is not the token handler itself.
|
68
68
|
function approveTokenHandler(IERC20Metadata token, Amount amount) external;
|
69
69
|
|
70
|
-
/// @dev Approves the staking token handler.
|
71
|
-
/// Reverts if the staking token handler wallet is not the token handler itself.
|
72
|
-
function approveStakingTokenHandler(IERC20Metadata token, Amount amount) external;
|
73
|
-
|
74
70
|
/// @dev Sets the components associated wallet address
|
75
71
|
function setWallet(address newWallet) external;
|
76
72
|
|
@@ -1,7 +1,10 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
|
+
|
4
6
|
import {INftOwnable} from "./INftOwnable.sol";
|
7
|
+
import {IRelease} from "../registry/IRelease.sol";
|
5
8
|
import {IRegistry} from "../registry/IRegistry.sol";
|
6
9
|
import {VersionPart} from "../type/Version.sol";
|
7
10
|
|
@@ -9,11 +12,19 @@ import {VersionPart} from "../type/Version.sol";
|
|
9
12
|
/// @dev Marks contracts that are intended to be registered in the registry.
|
10
13
|
///
|
11
14
|
interface IRegisterable is
|
12
|
-
|
15
|
+
IAccessManaged,
|
16
|
+
INftOwnable,
|
17
|
+
IRelease
|
13
18
|
{
|
14
|
-
|
15
|
-
|
16
|
-
|
19
|
+
// __Registerable_init
|
20
|
+
error ErrorAuthorityInvalid(address authority);
|
21
|
+
|
22
|
+
// onlyActive()
|
23
|
+
error ErrorRegisterableNotActive();
|
24
|
+
|
25
|
+
/// @dev Returns true iff this contract managed by its authority is active.
|
26
|
+
/// Queries the IAccessManaged.authority().
|
27
|
+
function isActive() external view returns (bool active);
|
17
28
|
|
18
29
|
/// @dev retuns the object info relevant for registering for this contract
|
19
30
|
/// IMPORTANT information returned by this function may only be used
|
@@ -9,17 +9,15 @@ import {ObjectType} from "../type/ObjectType.sol";
|
|
9
9
|
import {RoleId} from "../type/RoleId.sol";
|
10
10
|
|
11
11
|
interface IService is
|
12
|
+
IAccessManaged,
|
12
13
|
IRegisterable,
|
13
|
-
IVersionable
|
14
|
-
IAccessManaged
|
14
|
+
IVersionable
|
15
15
|
{
|
16
|
-
error ErrorServiceNotImplemented();
|
17
|
-
|
18
16
|
/// @dev returns the domain for this service.
|
19
17
|
/// In any GIF release only one service for any given domain may be deployed.
|
20
18
|
function getDomain() external pure returns(ObjectType serviceDomain);
|
21
19
|
|
22
20
|
/// @dev returns the GIF release specific role id.
|
23
21
|
/// These role ids are used to authorize service to service communication.
|
24
|
-
function getRoleId() external
|
22
|
+
function getRoleId() external view returns(RoleId serviceRoleId);
|
25
23
|
}
|
@@ -20,7 +20,7 @@ import {NftId} from "../type/NftId.sol";
|
|
20
20
|
import {ObjectType, COMPONENT, INSTANCE, PRODUCT} from "../type/ObjectType.sol";
|
21
21
|
import {VersionPart} from "../type/Version.sol";
|
22
22
|
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
23
|
-
import {IAccess} from "../
|
23
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
24
24
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
25
25
|
import {VersionPart} from "../type/Version.sol";
|
26
26
|
|
@@ -134,7 +134,7 @@ abstract contract InstanceLinkedComponent is
|
|
134
134
|
|
135
135
|
// if not product parent is product, and parent of product is instance
|
136
136
|
IRegistry registry = _checkAndGetRegistry(registryAddress, parentNftId, PRODUCT());
|
137
|
-
return registry.
|
137
|
+
return registry.getParentNftId(parentNftId);
|
138
138
|
}
|
139
139
|
|
140
140
|
/// @dev checks the and gets registry.
|
@@ -47,9 +47,9 @@ contract NftOwnable is
|
|
47
47
|
}
|
48
48
|
|
49
49
|
|
50
|
-
/// @dev
|
51
|
-
// used in
|
52
|
-
function
|
50
|
+
/// @dev Initialization for upgradable contracts.
|
51
|
+
// used in __Registerable_init, ProxyManager._preDeployChecksAndSetup
|
52
|
+
function __NftOwnable_init(
|
53
53
|
address registry,
|
54
54
|
address initialOwner
|
55
55
|
)
|
@@ -57,7 +57,7 @@ contract NftOwnable is
|
|
57
57
|
virtual
|
58
58
|
onlyInitializing()
|
59
59
|
{
|
60
|
-
|
60
|
+
__RegistryLinked_init(registry);
|
61
61
|
_initializeERC165();
|
62
62
|
|
63
63
|
if(initialOwner == address(0)) {
|
@@ -1,6 +1,11 @@
|
|
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
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
6
|
+
|
7
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
8
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
4
9
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
5
10
|
import {NftOwnable} from "../shared/NftOwnable.sol";
|
6
11
|
import {ObjectType} from "../type/ObjectType.sol";
|
@@ -8,24 +13,33 @@ import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
|
8
13
|
|
9
14
|
import {IRegistry} from "../registry/IRegistry.sol";
|
10
15
|
import {IRegisterable} from "./IRegisterable.sol";
|
16
|
+
import {IRelease} from "../registry/IRelease.sol";
|
11
17
|
|
12
|
-
contract Registerable is
|
18
|
+
abstract contract Registerable is
|
19
|
+
AccessManagedUpgradeable,
|
13
20
|
NftOwnable,
|
14
21
|
IRegisterable
|
15
22
|
{
|
16
|
-
uint256 public constant GIF_RELEASE = 3;
|
17
|
-
|
18
23
|
// keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.Registerable.sol")) - 1)) & ~bytes32(uint256(0xff));
|
19
24
|
bytes32 public constant REGISTERABLE_LOCATION_V1 = 0x6548007c3f4340f82f348c576c0ff69f4f529cadd5ad41f96aae61abceeaa300;
|
20
25
|
|
21
26
|
struct RegisterableStorage {
|
22
27
|
NftId _parentNftId;
|
23
28
|
ObjectType _objectType;
|
29
|
+
VersionPart _release;
|
24
30
|
bool _isInterceptor;
|
25
31
|
bytes _data;
|
26
32
|
}
|
27
33
|
|
28
|
-
|
34
|
+
modifier onlyActive() {
|
35
|
+
if (!isActive()) {
|
36
|
+
revert ErrorRegisterableNotActive();
|
37
|
+
}
|
38
|
+
_;
|
39
|
+
}
|
40
|
+
|
41
|
+
function __Registerable_init(
|
42
|
+
address authority,
|
29
43
|
address registry,
|
30
44
|
NftId parentNftId,
|
31
45
|
ObjectType objectType,
|
@@ -37,25 +51,34 @@ contract Registerable is
|
|
37
51
|
virtual
|
38
52
|
onlyInitializing()
|
39
53
|
{
|
40
|
-
|
41
|
-
|
42
|
-
initialOwner);
|
43
|
-
|
44
|
-
RegisterableStorage storage $;
|
45
|
-
assembly {
|
46
|
-
$.slot := REGISTERABLE_LOCATION_V1
|
54
|
+
if (!ContractLib.isAuthority(authority)) {
|
55
|
+
revert ErrorAuthorityInvalid(authority);
|
47
56
|
}
|
48
57
|
|
58
|
+
__AccessManaged_init(authority);
|
59
|
+
__NftOwnable_init(registry, initialOwner);
|
60
|
+
|
61
|
+
RegisterableStorage storage $ = _getRegisterableStorage();
|
49
62
|
$._parentNftId = parentNftId;
|
50
63
|
$._objectType = objectType;
|
64
|
+
$._release = AccessManagerCloneable(authority).getRelease();
|
51
65
|
$._isInterceptor = isInterceptor;
|
52
66
|
$._data = data;
|
67
|
+
|
68
|
+
_registerInterface(type(IAccessManaged).interfaceId);
|
53
69
|
}
|
54
70
|
|
55
71
|
|
56
72
|
/// @inheritdoc IRegisterable
|
57
|
-
function
|
58
|
-
return
|
73
|
+
function isActive() public virtual view returns (bool active) {
|
74
|
+
return !AccessManagerCloneable(authority()).isTargetClosed(address(this));
|
75
|
+
}
|
76
|
+
|
77
|
+
|
78
|
+
/// @inheritdoc IRelease
|
79
|
+
function getRelease() public virtual view returns (VersionPart release) {
|
80
|
+
RegisterableStorage storage $ = _getRegisterableStorage();
|
81
|
+
return $._release;
|
59
82
|
}
|
60
83
|
|
61
84
|
|
@@ -66,12 +89,8 @@ contract Registerable is
|
|
66
89
|
virtual
|
67
90
|
returns (IRegistry.ObjectInfo memory info)
|
68
91
|
{
|
69
|
-
RegisterableStorage storage
|
70
|
-
|
71
|
-
$.slot := REGISTERABLE_LOCATION_V1
|
72
|
-
}
|
73
|
-
|
74
|
-
info = IRegistry.ObjectInfo(
|
92
|
+
RegisterableStorage storage $ = _getRegisterableStorage();
|
93
|
+
return IRegistry.ObjectInfo(
|
75
94
|
NftIdLib.zero(),
|
76
95
|
$._parentNftId,
|
77
96
|
$._objectType,
|
@@ -80,4 +99,11 @@ contract Registerable is
|
|
80
99
|
getOwner(),
|
81
100
|
$._data);
|
82
101
|
}
|
102
|
+
|
103
|
+
|
104
|
+
function _getRegisterableStorage() private pure returns (RegisterableStorage storage $) {
|
105
|
+
assembly {
|
106
|
+
$.slot := REGISTERABLE_LOCATION_V1
|
107
|
+
}
|
108
|
+
}
|
83
109
|
}
|
@@ -1,7 +1,6 @@
|
|
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 {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
|
7
6
|
|
@@ -19,14 +18,13 @@ import {Versionable} from "../upgradeability/Versionable.sol";
|
|
19
18
|
abstract contract Service is
|
20
19
|
Registerable,
|
21
20
|
Versionable,
|
22
|
-
AccessManagedUpgradeable,
|
23
21
|
ReentrancyGuardUpgradeable,
|
24
22
|
IService
|
25
23
|
{
|
26
24
|
|
27
|
-
function
|
28
|
-
address registry,
|
25
|
+
function __Service_init(
|
29
26
|
address authority, // real authority for registry service adress(0) for other services
|
27
|
+
address registry,
|
30
28
|
address initialOwner
|
31
29
|
)
|
32
30
|
internal
|
@@ -35,17 +33,8 @@ abstract contract Service is
|
|
35
33
|
{
|
36
34
|
__ReentrancyGuard_init();
|
37
35
|
|
38
|
-
|
39
|
-
|
40
|
-
__AccessManaged_init(authority);
|
41
|
-
} else {
|
42
|
-
address registryServiceAddress = _getServiceAddress(REGISTRY());
|
43
|
-
|
44
|
-
// copy authority from already registered registry services
|
45
|
-
__AccessManaged_init(IAccessManaged(registryServiceAddress).authority());
|
46
|
-
}
|
47
|
-
|
48
|
-
_initializeRegisterable(
|
36
|
+
__Registerable_init(
|
37
|
+
authority,
|
49
38
|
registry,
|
50
39
|
IRegistry(registry).getNftId(),
|
51
40
|
SERVICE(),
|
@@ -53,8 +42,6 @@ abstract contract Service is
|
|
53
42
|
initialOwner,
|
54
43
|
""); // data
|
55
44
|
|
56
|
-
|
57
|
-
_registerInterface(type(IAccessManaged).interfaceId);
|
58
45
|
_registerInterface(type(IService).interfaceId);
|
59
46
|
}
|
60
47
|
|
@@ -62,18 +49,12 @@ abstract contract Service is
|
|
62
49
|
return _getDomain();
|
63
50
|
}
|
64
51
|
|
65
|
-
function
|
66
|
-
return
|
52
|
+
function getVersion() public pure virtual override (IVersionable, Versionable) returns(Version) {
|
53
|
+
return VersionLib.toVersion(3, 0, 0);
|
67
54
|
}
|
68
55
|
|
69
|
-
|
70
|
-
|
71
|
-
public
|
72
|
-
pure
|
73
|
-
virtual override (IVersionable, Versionable)
|
74
|
-
returns(Version)
|
75
|
-
{
|
76
|
-
return VersionLib.toVersion(GIF_RELEASE,0,0);
|
56
|
+
function getRoleId() external virtual view returns(RoleId serviceRoleId) {
|
57
|
+
return RoleIdLib.roleForTypeAndVersion(_getDomain(), getRelease());
|
77
58
|
}
|
78
59
|
|
79
60
|
function _getDomain() internal virtual pure returns (ObjectType);
|
@@ -12,6 +12,10 @@ import {NftId} from "../type/NftId.sol";
|
|
12
12
|
import {SERVICE} from "../type/ObjectType.sol";
|
13
13
|
|
14
14
|
|
15
|
+
/// @dev Token specific transfer helper base contract.
|
16
|
+
/// A default token contract is provided via contract constructor.
|
17
|
+
/// Relies internally on OpenZeppelin SafeERC20.safeTransferFrom.
|
18
|
+
/// This base contract simplifies writing tests.
|
15
19
|
contract TokenHandlerBase {
|
16
20
|
|
17
21
|
// _setWallet
|
@@ -36,10 +40,6 @@ contract TokenHandlerBase {
|
|
36
40
|
// _approveTokenHandler
|
37
41
|
error ErrorTokenHandlerNotWallet(NftId nftId, address tokenHandler, address wallet);
|
38
42
|
|
39
|
-
// _pullAndPullToken
|
40
|
-
error ErrorTokenHandlerWalletsNotDistinct(address from, address to1, address to2);
|
41
|
-
error ErrorTokenHandlerPushAmountsTooLarge(Amount pushAmount, Amount pullAmount);
|
42
|
-
|
43
43
|
// _checkPreconditions
|
44
44
|
error ErrorTokenHandlerBalanceTooLow(address token, address from, uint256 balance, uint256 expectedBalance);
|
45
45
|
error ErrorTokenHandlerAllowanceTooSmall(address token, address from, address spender, uint256 allowance, uint256 expectedAllowance);
|
@@ -75,6 +75,23 @@ contract TokenHandlerBase {
|
|
75
75
|
}
|
76
76
|
|
77
77
|
TOKEN = IERC20Metadata(token);
|
78
|
+
|
79
|
+
// self approval of token handler to max amount
|
80
|
+
_approve(TOKEN, AmountLib.max());
|
81
|
+
}
|
82
|
+
|
83
|
+
|
84
|
+
/// @dev Checks the balance and allowance for the from address and amount.
|
85
|
+
/// When requiring amount > 0 set checkAmount to true.
|
86
|
+
function checkBalanceAndAllowance(
|
87
|
+
address from,
|
88
|
+
Amount amount,
|
89
|
+
bool checkAmount
|
90
|
+
)
|
91
|
+
external
|
92
|
+
view
|
93
|
+
{
|
94
|
+
_checkBalanceAndAllowance(from, amount, checkAmount);
|
78
95
|
}
|
79
96
|
|
80
97
|
|
@@ -159,33 +176,6 @@ contract TokenHandlerBase {
|
|
159
176
|
}
|
160
177
|
|
161
178
|
|
162
|
-
function _pullAndPushToken(
|
163
|
-
address from,
|
164
|
-
Amount pullAmount,
|
165
|
-
address to1,
|
166
|
-
Amount amount1,
|
167
|
-
address to2,
|
168
|
-
Amount amount2
|
169
|
-
)
|
170
|
-
internal
|
171
|
-
{
|
172
|
-
address wallet = getWallet();
|
173
|
-
|
174
|
-
if (wallet == to1 || wallet == to2 || to1 == to2) {
|
175
|
-
revert ErrorTokenHandlerWalletsNotDistinct(wallet, to1, to2);
|
176
|
-
}
|
177
|
-
|
178
|
-
if (amount1 + amount2 > pullAmount) {
|
179
|
-
revert ErrorTokenHandlerPushAmountsTooLarge(amount1 + amount2, pullAmount);
|
180
|
-
}
|
181
|
-
|
182
|
-
_pullToken(from, pullAmount);
|
183
|
-
|
184
|
-
if (amount1.gtz()) { _pushToken(to1, amount1); }
|
185
|
-
if (amount2.gtz()) { _pushToken(to2, amount2); }
|
186
|
-
}
|
187
|
-
|
188
|
-
|
189
179
|
function _pullToken(address from, Amount amount)
|
190
180
|
internal
|
191
181
|
{
|
@@ -209,8 +199,8 @@ contract TokenHandlerBase {
|
|
209
199
|
internal
|
210
200
|
{
|
211
201
|
if (checkPreconditions) {
|
212
|
-
|
213
|
-
|
202
|
+
bool checkAmount = true;
|
203
|
+
_checkBalanceAndAllowance(from, amount, checkAmount);
|
214
204
|
}
|
215
205
|
|
216
206
|
// transfer the tokens
|
@@ -224,15 +214,16 @@ contract TokenHandlerBase {
|
|
224
214
|
}
|
225
215
|
|
226
216
|
|
227
|
-
function
|
217
|
+
function _checkBalanceAndAllowance(
|
228
218
|
address from,
|
229
|
-
Amount amount
|
219
|
+
Amount amount,
|
220
|
+
bool checkAmount
|
230
221
|
)
|
231
222
|
internal
|
232
223
|
view
|
233
224
|
{
|
234
225
|
// amount must be greater than zero
|
235
|
-
if (amount.eqz()) {
|
226
|
+
if (checkAmount && amount.eqz()) {
|
236
227
|
revert ErrorTokenHandlerAmountIsZero();
|
237
228
|
}
|
238
229
|
|
@@ -251,9 +242,9 @@ contract TokenHandlerBase {
|
|
251
242
|
}
|
252
243
|
|
253
244
|
|
254
|
-
/// @dev Token specific transfer helper
|
255
|
-
///
|
256
|
-
///
|
245
|
+
/// @dev Token specific transfer helper.
|
246
|
+
/// Contract is derived from TokenHandlerBase and adds
|
247
|
+
/// authorization based on OpenZeppelin AccessManaged.
|
257
248
|
contract TokenHandler is
|
258
249
|
AccessManaged,
|
259
250
|
TokenHandlerBase
|
@@ -262,9 +253,6 @@ contract TokenHandler is
|
|
262
253
|
// onlyService
|
263
254
|
error ErrorTokenHandlerNotService(address service);
|
264
255
|
|
265
|
-
// TODO delete
|
266
|
-
error ErrorTokenHandlerRecipientWalletsMustBeDistinct(address to, address to2, address to3);
|
267
|
-
|
268
256
|
modifier onlyService() {
|
269
257
|
if (!REGISTRY.isObjectType(msg.sender, SERVICE())) {
|
270
258
|
revert ErrorTokenHandlerNotService(msg.sender);
|
@@ -289,7 +277,7 @@ contract TokenHandler is
|
|
289
277
|
/// covers the current component balance must exist
|
290
278
|
function setWallet(address newWallet)
|
291
279
|
external
|
292
|
-
|
280
|
+
restricted()
|
293
281
|
onlyService()
|
294
282
|
{
|
295
283
|
_setWallet(newWallet);
|
@@ -305,7 +293,7 @@ contract TokenHandler is
|
|
305
293
|
Amount amount
|
306
294
|
)
|
307
295
|
external
|
308
|
-
|
296
|
+
restricted()
|
309
297
|
onlyService()
|
310
298
|
{
|
311
299
|
_approve(token, amount);
|
@@ -313,69 +301,34 @@ contract TokenHandler is
|
|
313
301
|
|
314
302
|
/// @dev Collect tokens from outside of GIF and transfer them to the wallet.
|
315
303
|
/// This method also checks balance and allowance and makes sure the amount is greater than zero.
|
316
|
-
function
|
304
|
+
function pullToken(
|
317
305
|
address from,
|
318
306
|
Amount amount
|
319
307
|
)
|
320
308
|
external
|
321
|
-
|
309
|
+
restricted()
|
322
310
|
onlyService()
|
323
311
|
{
|
324
312
|
_pullToken(from, amount);
|
325
313
|
}
|
326
314
|
|
327
315
|
|
328
|
-
/// @dev
|
329
|
-
/// This method also checks balance and allowance and makes sure the amount is greater than zero.
|
316
|
+
/// @dev Distribute tokens from a wallet within the scope of gif to some address.
|
330
317
|
function pushToken(
|
331
|
-
address from,
|
332
|
-
Amount amount
|
333
|
-
)
|
334
|
-
external
|
335
|
-
// restricted() // TODO re-activate
|
336
|
-
onlyService()
|
337
|
-
{
|
338
|
-
_pushToken(from, amount);
|
339
|
-
}
|
340
|
-
|
341
|
-
|
342
|
-
/// @dev collect tokens from outside of the gif and transfer them to three distinct wallets within the scope of gif
|
343
|
-
/// This method also checks balance and allowance and makes sure the amount is greater than zero.
|
344
|
-
function collectTokensToThreeRecipients(
|
345
|
-
address from,
|
346
318
|
address to,
|
347
|
-
Amount amount
|
348
|
-
address to2,
|
349
|
-
Amount amount2,
|
350
|
-
address to3,
|
351
|
-
Amount amount3
|
319
|
+
Amount amount
|
352
320
|
)
|
353
321
|
external
|
354
322
|
restricted()
|
355
323
|
onlyService()
|
356
324
|
{
|
357
|
-
|
358
|
-
revert ErrorTokenHandlerRecipientWalletsMustBeDistinct(to, to2, to3);
|
359
|
-
}
|
360
|
-
|
361
|
-
_checkPreconditions(from, amount + amount2 + amount3);
|
362
|
-
|
363
|
-
if (amount.gtz()) {
|
364
|
-
_transfer(from, to, amount, false);
|
365
|
-
}
|
366
|
-
if (amount2.gtz()) {
|
367
|
-
_transfer(from, to2, amount2, false);
|
368
|
-
}
|
369
|
-
if (amount3.gtz()) {
|
370
|
-
_transfer(from, to3, amount3, false);
|
371
|
-
}
|
325
|
+
_pushToken(to, amount);
|
372
326
|
}
|
373
327
|
|
374
328
|
|
375
|
-
/// @dev
|
376
|
-
///
|
377
|
-
function
|
378
|
-
address from,
|
329
|
+
/// @dev Distribute fee tokens from a wallet within the scope of gif to some address.
|
330
|
+
/// Separate push function for component service.
|
331
|
+
function pushFeeToken(
|
379
332
|
address to,
|
380
333
|
Amount amount
|
381
334
|
)
|
@@ -383,7 +336,6 @@ contract TokenHandler is
|
|
383
336
|
restricted()
|
384
337
|
onlyService()
|
385
338
|
{
|
386
|
-
// _transfer(from, to, amount, true);
|
387
339
|
_pushToken(to, amount);
|
388
340
|
}
|
389
341
|
}
|