@etherisc/gif-next 0.0.2-f634e5c-828 → 0.0.2-f677999-878
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 +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 +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 -67
- 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 -39
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +231 -186
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +57 -51
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +38 -26
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +119 -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 +102 -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 +257 -190
- 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 +150 -56
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -63
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +111 -48
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +315 -150
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -0
- 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 +351 -198
- 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 +422 -352
- 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 -56
- 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 -26
- 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 -40
- 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 -39
- 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 -26
- 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 -39
- 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 -130
- 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 -117
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +37 -7
- 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 -130
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +102 -81
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +33 -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 -39
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +105 -442
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +40 -70
- 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 -26
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -291
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -26
- 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 -39
- 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 +38 -26
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +56 -3
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +32 -32
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +90 -57
- 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 +27 -19
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +87 -51
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +18 -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 +30 -6
- 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 +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- 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 +11 -9
- package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
- package/contracts/distribution/Distribution.sol +37 -32
- package/contracts/distribution/DistributionService.sol +59 -33
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +16 -13
- package/contracts/examples/fire/FirePool.sol +6 -2
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +9 -3
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +29 -9
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +7 -9
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +36 -4
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- 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 +18 -23
- package/contracts/instance/InstanceReader.sol +91 -35
- package/contracts/instance/InstanceService.sol +43 -31
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +11 -12
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +3 -2
- package/contracts/instance/module/IDistribution.sol +5 -2
- 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 +35 -63
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +13 -20
- 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 +307 -162
- 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 +24 -10
- 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/IRiskService.sol +5 -8
- package/contracts/product/PolicyService.sol +95 -146
- 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 +55 -13
- package/contracts/product/RiskService.sol +66 -29
- 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 +129 -226
- 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 +85 -14
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +32 -27
- package/contracts/shared/ComponentService.sol +89 -266
- 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 -9
- package/contracts/shared/IComponentService.sol +1 -23
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +3 -3
- 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 +0 -8
- package/contracts/staking/IStakingService.sol +8 -0
- package/contracts/staking/StakeManagerLib.sol +1 -1
- package/contracts/staking/Staking.sol +34 -13
- package/contracts/staking/StakingReader.sol +1 -1
- package/contracts/staking/StakingService.sol +32 -42
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/type/ObjectType.sol +46 -21
- package/contracts/type/RiskId.sol +9 -3
- 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 +2 -2
- 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
@@ -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();
|
@@ -33,11 +32,6 @@ interface IComponent is
|
|
33
32
|
event LogComponentWalletTokensTransferred(address from, address to, uint256 amount);
|
34
33
|
event LogComponentTokenHandlerApproved(address tokenHandler, address token, Amount limit, bool isMaxAmount);
|
35
34
|
|
36
|
-
/// @dev Approves token hanlder to spend up to the specified amount of tokens.
|
37
|
-
/// Reverts if component wallet is not token handler itself.
|
38
|
-
/// Only component owner (nft holder) is authorizes to call this function.
|
39
|
-
function approveTokenHandler(IERC20Metadata token, Amount spendingLimitAmount) external;
|
40
|
-
|
41
35
|
/// @dev returns the name of this component
|
42
36
|
/// to successfully register the component with an instance the name MUST be unique in the linked instance
|
43
37
|
function getName() external view returns (string memory name);
|
@@ -5,7 +5,6 @@ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IER
|
|
5
5
|
|
6
6
|
import {Amount} from "../type/Amount.sol";
|
7
7
|
import {Fee} from "../type/Fee.sol";
|
8
|
-
import {InstanceStore} from "../instance/InstanceStore.sol";
|
9
8
|
import {IService} from "../shared/IService.sol";
|
10
9
|
import {NftId} from "../type/NftId.sol";
|
11
10
|
import {ObjectType} from "../type/ObjectType.sol";
|
@@ -61,17 +60,13 @@ interface IComponentService is
|
|
61
60
|
UFixed newFractionalFee,
|
62
61
|
uint256 newFixedFee
|
63
62
|
);
|
64
|
-
|
63
|
+
|
65
64
|
//-------- component ----------------------------------------------------//
|
66
65
|
|
67
66
|
/// @dev Approves the callers token handler to spend up to the specified amount of tokens.
|
68
67
|
/// Reverts if the component's token handler wallet is not the token handler itself.
|
69
68
|
function approveTokenHandler(IERC20Metadata token, Amount amount) external;
|
70
69
|
|
71
|
-
/// @dev Approves the staking token handler.
|
72
|
-
/// Reverts if the staking token handler wallet is not the token handler itself.
|
73
|
-
function approveStakingTokenHandler(IERC20Metadata token, Amount amount) external;
|
74
|
-
|
75
70
|
/// @dev Sets the components associated wallet address
|
76
71
|
function setWallet(address newWallet) external;
|
77
72
|
|
@@ -99,9 +94,6 @@ interface IComponentService is
|
|
99
94
|
Fee memory processingFee // product fee on payout amounts
|
100
95
|
) external;
|
101
96
|
|
102
|
-
function increaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount) external;
|
103
|
-
function decreaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount) external;
|
104
|
-
|
105
97
|
//-------- distribution -------------------------------------------------//
|
106
98
|
|
107
99
|
function setDistributionFees(
|
@@ -109,13 +101,6 @@ interface IComponentService is
|
|
109
101
|
Fee memory minDistributionOwnerFee // min fee required by distribution owner (not including commissions for distributors)
|
110
102
|
) external;
|
111
103
|
|
112
|
-
function increaseDistributionBalance(InstanceStore instanceStore, NftId distributionNftId, Amount amount, Amount feeAmount) external;
|
113
|
-
function decreaseDistributionBalance(InstanceStore instanceStore, NftId distributionNftId, Amount amount, Amount feeAmount) external;
|
114
|
-
|
115
|
-
//-------- distributor --------------------------------------------------//
|
116
|
-
function increaseDistributorBalance(InstanceStore instanceStore, NftId distributorNftId, Amount amount, Amount feeAmount) external;
|
117
|
-
function decreaseDistributorBalance(InstanceStore instanceStore, NftId distributorNftId, Amount amount, Amount feeAmount) external;
|
118
|
-
|
119
104
|
//-------- pool ---------------------------------------------------------//
|
120
105
|
|
121
106
|
function setPoolFees(
|
@@ -124,11 +109,4 @@ interface IComponentService is
|
|
124
109
|
Fee memory performanceFee // pool fee on profits from capital investors
|
125
110
|
) external;
|
126
111
|
|
127
|
-
function increasePoolBalance(InstanceStore instanceStore, NftId poolNftId, Amount amount, Amount feeAmount) external;
|
128
|
-
function decreasePoolBalance(InstanceStore instanceStore, NftId poolNftId, Amount amount, Amount feeAmount) external;
|
129
|
-
|
130
|
-
//-------- bundle -------------------------------------------------------//
|
131
|
-
function increaseBundleBalance(InstanceStore instanceStore, NftId bundleNftId, Amount amount, Amount feeAmount) external;
|
132
|
-
function decreaseBundleBalance(InstanceStore instanceStore, NftId bundleNftId, Amount amount, Amount feeAmount) external;
|
133
|
-
|
134
112
|
}
|
@@ -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
|
|
@@ -44,8 +44,8 @@ abstract contract InstanceLinkedComponent is
|
|
44
44
|
function withdrawFees(Amount amount)
|
45
45
|
external
|
46
46
|
virtual
|
47
|
-
onlyOwner()
|
48
47
|
restricted()
|
48
|
+
onlyOwner()
|
49
49
|
returns (Amount withdrawnAmount)
|
50
50
|
{
|
51
51
|
return _withdrawFees(amount);
|
@@ -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
|
}
|
@@ -158,14 +158,6 @@ interface IStaking is
|
|
158
158
|
Amount rewardsClaimedAmount
|
159
159
|
);
|
160
160
|
|
161
|
-
//--- helper functions --------------------------------------------------//
|
162
|
-
|
163
|
-
// /// @dev transfers the specified amount of dips from the from address to the staking wallet.
|
164
|
-
// function collectDipAmount(address from, Amount dipAmount) external;
|
165
|
-
|
166
|
-
// /// @dev transfers the specified amount of dips from the staking wallet to the to addess.
|
167
|
-
// function transferDipAmount(address to, Amount dipAmount) external;
|
168
|
-
|
169
161
|
//--- view and pure functions -------------------------------------------//
|
170
162
|
|
171
163
|
function getStakingStore() external view returns (StakingStore stakingStore);
|