@etherisc/gif-next 0.0.2-f15b559-661 → 0.0.2-f1b01e0-214
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +38 -38
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +26 -26
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +6 -6
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +366 -251
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +8 -39
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +101 -28
- 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 +283 -189
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +37 -5
- 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 +32 -145
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +101 -46
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1 -87
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +160 -89
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +56 -52
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +1 -87
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +68 -5
- 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 +44 -74
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +101 -46
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +94 -124
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +101 -46
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +82 -173
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +101 -46
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +20 -63
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +69 -112
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +101 -46
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +95 -138
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +101 -46
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +104 -8
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +62 -13
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +119 -26
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +520 -413
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +101 -46
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +225 -196
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +94 -65
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +26 -36
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +356 -346
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
- 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 +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +14 -35
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +98 -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 +0 -21
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +0 -21
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +42 -42
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +31 -31
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +22 -43
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +101 -46
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +64 -64
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +39 -39
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +6 -6
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +10 -31
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +18 -18
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +10 -31
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +34 -34
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +80 -80
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +41 -41
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +90 -24
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +34 -22
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +27 -48
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +101 -46
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +78 -78
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +50 -50
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +42 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +21 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +21 -42
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +21 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +62 -62
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +32 -32
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +41 -41
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +63 -82
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +31 -51
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +21 -42
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +55 -26
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +27 -23
- 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/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +445 -355
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +19 -19
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +481 -376
- 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 +128 -124
- 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 +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +0 -21
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +114 -129
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +45 -49
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +60 -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 +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -21
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +44 -51
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +0 -21
- 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/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +0 -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/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/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +83 -39
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +75 -4
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +133 -94
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- 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 +41 -37
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +34 -61
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +109 -30
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +27 -23
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +148 -134
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +47 -37
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- 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/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +56 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +4 -4
- 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/IAccountingService.sol +2 -2
- package/contracts/authorization/AccessAdmin.sol +201 -186
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +40 -31
- package/contracts/authorization/Authorization.sol +61 -33
- package/contracts/authorization/IAccess.sol +13 -5
- package/contracts/authorization/IAccessAdmin.sol +63 -36
- package/contracts/authorization/IAuthorization.sol +6 -0
- package/contracts/distribution/BasicDistribution.sol +6 -6
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +3 -48
- package/contracts/distribution/DistributionService.sol +57 -30
- package/contracts/distribution/IDistributionComponent.sol +0 -9
- package/contracts/distribution/IDistributionService.sol +4 -2
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +0 -4
- package/contracts/instance/IInstance.sol +45 -9
- package/contracts/instance/IInstanceService.sol +19 -3
- package/contracts/instance/Instance.sol +73 -16
- package/contracts/instance/InstanceAdmin.sol +120 -107
- package/contracts/instance/InstanceAuthorizationV3.sol +43 -21
- package/contracts/instance/InstanceReader.sol +13 -0
- package/contracts/instance/InstanceService.sol +128 -73
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +16 -5
- package/contracts/instance/module/IDistribution.sol +19 -7
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracle.sol +1 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +1 -1
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +0 -2
- package/contracts/pool/BasicPool.sol +0 -2
- package/contracts/pool/BasicPoolAuthorization.sol +1 -1
- package/contracts/pool/Pool.sol +0 -2
- package/contracts/pool/PoolService.sol +1 -3
- package/contracts/product/ApplicationService.sol +21 -6
- package/contracts/product/BasicProduct.sol +0 -2
- package/contracts/product/BasicProductAuthorization.sol +1 -1
- package/contracts/product/IApplicationService.sol +3 -0
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IRiskService.sol +3 -0
- package/contracts/product/PolicyService.sol +0 -18
- package/contracts/product/PricingService.sol +11 -6
- package/contracts/product/Product.sol +0 -2
- package/contracts/product/RiskService.sol +10 -0
- package/contracts/registry/IRegistry.sol +4 -0
- package/contracts/registry/RegistryAdmin.sol +133 -229
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/ReleaseAdmin.sol +30 -22
- package/contracts/registry/ReleaseRegistry.sol +39 -33
- package/contracts/registry/ServiceAuthorizationV3.sol +87 -3
- package/contracts/shared/Component.sol +13 -30
- package/contracts/shared/ComponentService.sol +58 -42
- package/contracts/shared/ContractLib.sol +28 -0
- package/contracts/shared/IComponent.sol +0 -3
- package/contracts/shared/IComponentService.sol +9 -9
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +0 -2
- package/contracts/shared/NftOwnable.sol +1 -1
- package/contracts/shared/Registerable.sol +1 -4
- package/contracts/shared/TokenHandler.sol +5 -4
- package/contracts/staking/IStaking.sol +12 -2
- package/contracts/staking/IStakingService.sol +8 -1
- package/contracts/staking/Staking.sol +35 -15
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +79 -22
- package/contracts/staking/StakingReader.sol +5 -15
- package/contracts/staking/StakingService.sol +36 -2
- package/contracts/staking/StakingStore.sol +2 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/ObjectType.sol +5 -14
- package/contracts/type/UFixed.sol +27 -10
- package/contracts/type/Version.sol +39 -0
- package/package.json +2 -2
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
@@ -7,10 +7,14 @@ import {
|
|
7
7
|
|
8
8
|
import {IAccess} from "../authorization/IAccess.sol";
|
9
9
|
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
10
|
+
import {IApplicationService} from "../product/IApplicationService.sol";
|
10
11
|
import {IBundleService} from "../pool/IBundleService.sol";
|
11
12
|
import {IClaimService} from "../product/IClaimService.sol";
|
13
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
12
14
|
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
13
15
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
16
|
+
import {IOracleService} from "../oracle/IOracleService.sol";
|
17
|
+
import {IPolicyService} from "../product/IPolicyService.sol";
|
14
18
|
import {IPoolService} from "../pool/IPoolService.sol";
|
15
19
|
import {IStakingService} from "../staking/IStakingService.sol";
|
16
20
|
import {IRegistryService} from "./IRegistryService.sol";
|
@@ -62,6 +66,9 @@ contract ServiceAuthorizationV3
|
|
62
66
|
_setupDistributionServiceAuthorization();
|
63
67
|
_setupPoolServiceAuthorization();
|
64
68
|
_setupBundleServiceAuthorization();
|
69
|
+
_setupOracleServiceAuthorization();
|
70
|
+
_setupApplicationServiceAuthorization();
|
71
|
+
_setupPolicyServiceAuthorization();
|
65
72
|
}
|
66
73
|
|
67
74
|
|
@@ -104,6 +111,7 @@ contract ServiceAuthorizationV3
|
|
104
111
|
_authorize(functions, IStakingService.createInstanceTarget.selector, "createInstanceTarget");
|
105
112
|
_authorize(functions, IStakingService.setInstanceLockingPeriod.selector, "setInstanceLockingPeriod");
|
106
113
|
_authorize(functions, IStakingService.setInstanceRewardRate.selector, "setInstanceRewardRate");
|
114
|
+
_authorize(functions, IStakingService.setInstanceMaxStakedAmount.selector, "setInstanceMaxStakedAmount");
|
107
115
|
_authorize(functions, IStakingService.refillInstanceRewardReserves.selector, "refillInstanceRewardReserves");
|
108
116
|
_authorize(functions, IStakingService.withdrawInstanceRewardReserves.selector, "withdrawInstanceRewardReserves");
|
109
117
|
|
@@ -123,12 +131,16 @@ contract ServiceAuthorizationV3
|
|
123
131
|
{
|
124
132
|
IAccess.FunctionInfo[] storage functions;
|
125
133
|
functions = _authorizeForService(INSTANCE(), ALL());
|
134
|
+
_authorize(functions, IInstanceService.setInstanceLocked.selector, "setInstanceLocked");
|
135
|
+
_authorize(functions, IInstanceService.setTargetLocked.selector, "setTargetLocked");
|
136
|
+
|
126
137
|
_authorize(functions, IInstanceService.createInstance.selector, "createInstance");
|
127
138
|
_authorize(functions, IInstanceService.upgradeInstanceReader.selector, "upgradeInstanceReader");
|
128
139
|
_authorize(functions, IInstanceService.upgradeMasterInstanceReader.selector, "upgradeMasterInstanceReader");
|
129
140
|
|
130
141
|
_authorize(functions, IInstanceService.setStakingLockingPeriod.selector, "setStakingLockingPeriod");
|
131
142
|
_authorize(functions, IInstanceService.setStakingRewardRate.selector, "setStakingRewardRate");
|
143
|
+
_authorize(functions, IInstanceService.setStakingMaxAmount.selector, "setStakingMaxAmount");
|
132
144
|
_authorize(functions, IInstanceService.refillStakingRewardReserves.selector, "refillStakingRewardReserves");
|
133
145
|
_authorize(functions, IInstanceService.withdrawStakingRewardReserves.selector, "withdrawStakingRewardReserves");
|
134
146
|
}
|
@@ -143,9 +155,6 @@ contract ServiceAuthorizationV3
|
|
143
155
|
_authorize(functions, IAccountingService.increaseBundleBalance.selector, "increaseBundleBalance");
|
144
156
|
_authorize(functions, IAccountingService.decreaseBundleBalance.selector, "decreaseBundleBalance");
|
145
157
|
|
146
|
-
functions = _authorizeForService(ACCOUNTING(), POOL());
|
147
|
-
_authorize(functions, IAccountingService.decreaseBundleBalanceForPool.selector, "decreaseBundleBalanceForPool");
|
148
|
-
|
149
158
|
functions = _authorizeForService(ACCOUNTING(), COMPONENT());
|
150
159
|
_authorize(functions, IAccountingService.decreaseComponentFees.selector, "decreaseComponentFees");
|
151
160
|
|
@@ -171,6 +180,19 @@ contract ServiceAuthorizationV3
|
|
171
180
|
function _setupComponentServiceAuthorization()
|
172
181
|
internal
|
173
182
|
{
|
183
|
+
IAccess.FunctionInfo[] storage functions;
|
184
|
+
|
185
|
+
functions = _authorizeForService(COMPONENT(), ALL());
|
186
|
+
_authorize(functions, IComponentService.registerComponent.selector, "registerComponent");
|
187
|
+
_authorize(functions, IComponentService.approveTokenHandler.selector, "approveTokenHandler");
|
188
|
+
_authorize(functions, IComponentService.setWallet.selector, "setWallet");
|
189
|
+
_authorize(functions, IComponentService.setLocked.selector, "setLocked");
|
190
|
+
_authorize(functions, IComponentService.withdrawFees.selector, "withdrawFees");
|
191
|
+
_authorize(functions, IComponentService.registerProduct.selector, "registerProduct");
|
192
|
+
_authorize(functions, IComponentService.setProductFees.selector, "setProductFees");
|
193
|
+
_authorize(functions, IComponentService.setDistributionFees.selector, "setDistributionFees");
|
194
|
+
_authorize(functions, IComponentService.setPoolFees.selector, "setPoolFees");
|
195
|
+
|
174
196
|
}
|
175
197
|
|
176
198
|
/// @dev Distribution service function authorization.
|
@@ -191,6 +213,14 @@ contract ServiceAuthorizationV3
|
|
191
213
|
IAccess.FunctionInfo[] storage functions;
|
192
214
|
functions = _authorizeForService(CLAIM(), ALL());
|
193
215
|
_authorize(functions, IClaimService.submit.selector, "submit");
|
216
|
+
_authorize(functions, IClaimService.confirm.selector, "confirm");
|
217
|
+
_authorize(functions, IClaimService.decline.selector, "decline");
|
218
|
+
_authorize(functions, IClaimService.revoke.selector, "revoke");
|
219
|
+
_authorize(functions, IClaimService.close.selector, "close");
|
220
|
+
_authorize(functions, IClaimService.createPayoutForBeneficiary.selector, "createPayoutForBeneficiary");
|
221
|
+
_authorize(functions, IClaimService.createPayout.selector, "createPayout");
|
222
|
+
_authorize(functions, IClaimService.processPayout.selector, "processPayout");
|
223
|
+
_authorize(functions, IClaimService.cancelPayout.selector, "cancelPayout");
|
194
224
|
}
|
195
225
|
|
196
226
|
/// @dev Distribution service function authorization.
|
@@ -201,6 +231,13 @@ contract ServiceAuthorizationV3
|
|
201
231
|
functions = _authorizeForService(DISTRIBUTION(), POLICY());
|
202
232
|
_authorize(functions, IDistributionService.processSale.selector, "processSale");
|
203
233
|
_authorize(functions, IDistributionService.processReferral.selector, "processReferral");
|
234
|
+
|
235
|
+
functions = _authorizeForService(DISTRIBUTION(), ALL());
|
236
|
+
_authorize(functions, IDistributionService.createDistributorType.selector, "createDistributorType");
|
237
|
+
_authorize(functions, IDistributionService.createDistributor.selector, "createDistributor");
|
238
|
+
_authorize(functions, IDistributionService.changeDistributorType.selector, "changeDistributorType");
|
239
|
+
_authorize(functions, IDistributionService.createReferral.selector, "createReferral");
|
240
|
+
_authorize(functions, IDistributionService.withdrawCommission.selector, "withdrawCommission");
|
204
241
|
}
|
205
242
|
|
206
243
|
|
@@ -219,6 +256,13 @@ contract ServiceAuthorizationV3
|
|
219
256
|
_authorize(functions, IPoolService.processPayout.selector, "processPayout");
|
220
257
|
|
221
258
|
functions = _authorizeForService(POOL(), ALL());
|
259
|
+
_authorize(functions, IPoolService.setMaxBalanceAmount.selector, "setMaxBalanceAmount");
|
260
|
+
_authorize(functions, IPoolService.closeBundle.selector, "closeBundle");
|
261
|
+
_authorize(functions, IPoolService.processFundedClaim.selector, "processFundedClaim");
|
262
|
+
_authorize(functions, IPoolService.stake.selector, "stake");
|
263
|
+
_authorize(functions, IPoolService.unstake.selector, "unstake");
|
264
|
+
_authorize(functions, IPoolService.fundPoolWallet.selector, "fundPoolWallet");
|
265
|
+
_authorize(functions, IPoolService.defundPoolWallet.selector, "defundPoolWallet");
|
222
266
|
_authorize(functions, IPoolService.withdrawBundleFees.selector, "withdrawBundleFees");
|
223
267
|
}
|
224
268
|
|
@@ -243,5 +287,45 @@ contract ServiceAuthorizationV3
|
|
243
287
|
_authorize(functions, IBundleService.unlock.selector, "unlock");
|
244
288
|
_authorize(functions, IBundleService.setFee.selector, "setFee");
|
245
289
|
}
|
290
|
+
|
291
|
+
function _setupOracleServiceAuthorization()
|
292
|
+
internal
|
293
|
+
{
|
294
|
+
IAccess.FunctionInfo[] storage functions;
|
295
|
+
|
296
|
+
functions = _authorizeForService(ORACLE(), ALL());
|
297
|
+
_authorize(functions, IOracleService.request.selector, "request");
|
298
|
+
_authorize(functions, IOracleService.respond.selector, "respond");
|
299
|
+
_authorize(functions, IOracleService.resend.selector, "resend");
|
300
|
+
_authorize(functions, IOracleService.cancel.selector, "cancel");
|
301
|
+
}
|
302
|
+
|
303
|
+
function _setupApplicationServiceAuthorization()
|
304
|
+
internal
|
305
|
+
{
|
306
|
+
IAccess.FunctionInfo[] storage functions;
|
307
|
+
|
308
|
+
functions = _authorizeForService(APPLICATION(), ALL());
|
309
|
+
_authorize(functions, IApplicationService.create.selector, "create");
|
310
|
+
_authorize(functions, IApplicationService.renew.selector, "renew");
|
311
|
+
_authorize(functions, IApplicationService.adjust.selector, "adjust");
|
312
|
+
_authorize(functions, IApplicationService.revoke.selector, "revoke");
|
313
|
+
}
|
314
|
+
|
315
|
+
function _setupPolicyServiceAuthorization()
|
316
|
+
internal
|
317
|
+
{
|
318
|
+
IAccess.FunctionInfo[] storage functions;
|
319
|
+
|
320
|
+
functions = _authorizeForService(POLICY(), ALL());
|
321
|
+
_authorize(functions, IPolicyService.decline.selector, "decline");
|
322
|
+
_authorize(functions, IPolicyService.createPolicy.selector, "createPolicy");
|
323
|
+
_authorize(functions, IPolicyService.collectPremium.selector, "collectPremium");
|
324
|
+
_authorize(functions, IPolicyService.activate.selector, "activate");
|
325
|
+
_authorize(functions, IPolicyService.expire.selector, "expire");
|
326
|
+
_authorize(functions, IPolicyService.expirePolicy.selector, "expirePolicy");
|
327
|
+
_authorize(functions, IPolicyService.close.selector, "close");
|
328
|
+
|
329
|
+
}
|
246
330
|
}
|
247
331
|
|
@@ -4,19 +4,15 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
5
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
6
|
|
7
|
+
import {Amount} from "../type/Amount.sol";
|
7
8
|
import {IComponent} from "./IComponent.sol";
|
8
9
|
import {IComponents} from "../instance/module/IComponents.sol";
|
9
10
|
import {IComponentService} from "./IComponentService.sol";
|
10
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
11
|
-
import {IRelease} from "../registry/IRelease.sol";
|
12
|
-
|
13
|
-
import {Amount, AmountLib} from "../type/Amount.sol";
|
14
|
-
import {ContractLib} from "./ContractLib.sol";
|
15
11
|
import {NftId} from "../type/NftId.sol";
|
16
|
-
import {ObjectType, COMPONENT
|
12
|
+
import {ObjectType, COMPONENT} from "../type/ObjectType.sol";
|
17
13
|
import {Registerable} from "../shared/Registerable.sol";
|
18
14
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
19
|
-
import {Version, VersionLib
|
15
|
+
import {Version, VersionLib} from "../type/Version.sol";
|
20
16
|
|
21
17
|
|
22
18
|
abstract contract Component is
|
@@ -28,7 +24,6 @@ abstract contract Component is
|
|
28
24
|
|
29
25
|
struct ComponentStorage {
|
30
26
|
string _name; // unique (per instance) component name
|
31
|
-
IERC20Metadata _token; // token for this component
|
32
27
|
bool _isInterceptor;
|
33
28
|
bytes _data;
|
34
29
|
IComponentService _componentService;
|
@@ -44,6 +39,7 @@ abstract contract Component is
|
|
44
39
|
|
45
40
|
|
46
41
|
function _getComponentStorage() private pure returns (ComponentStorage storage $) {
|
42
|
+
// solhint-disable-next-line no-inline-assembly
|
47
43
|
assembly {
|
48
44
|
$.slot := COMPONENT_LOCATION_V1
|
49
45
|
}
|
@@ -55,7 +51,6 @@ abstract contract Component is
|
|
55
51
|
address registry,
|
56
52
|
NftId parentNftId,
|
57
53
|
string memory name,
|
58
|
-
address token,
|
59
54
|
ObjectType componentType,
|
60
55
|
bool isInterceptor,
|
61
56
|
address initialOwner,
|
@@ -66,20 +61,6 @@ abstract contract Component is
|
|
66
61
|
virtual
|
67
62
|
onlyInitializing()
|
68
63
|
{
|
69
|
-
address tokenRegistry = IRegistry(registry).getTokenRegistryAddress();
|
70
|
-
VersionPart release = IRelease(authority).getRelease();
|
71
|
-
|
72
|
-
// special case for staking: component intitialization happens before
|
73
|
-
// GIF core contract setup is complete. at that time token registry
|
74
|
-
// is not yet available. therefore we skip the check for staking.
|
75
|
-
if (componentType != STAKING()) {
|
76
|
-
|
77
|
-
// check if provided token is whitelisted and active
|
78
|
-
if (!ContractLib.isActiveToken(tokenRegistry, token, block.chainid, release)) {
|
79
|
-
revert ErrorComponentTokenInvalid(token);
|
80
|
-
}
|
81
|
-
}
|
82
|
-
|
83
64
|
if (bytes(name).length == 0) {
|
84
65
|
revert ErrorComponentNameLengthZero();
|
85
66
|
}
|
@@ -96,7 +77,6 @@ abstract contract Component is
|
|
96
77
|
// set component state
|
97
78
|
ComponentStorage storage $ = _getComponentStorage();
|
98
79
|
$._name = name;
|
99
|
-
$._token = IERC20Metadata(token);
|
100
80
|
$._isInterceptor = isInterceptor;
|
101
81
|
$._data = componentData;
|
102
82
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
@@ -111,7 +91,7 @@ abstract contract Component is
|
|
111
91
|
/// override internal function _nftTransferFrom to implement custom behaviour
|
112
92
|
function nftTransferFrom(address from, address to, uint256 tokenId, address operator)
|
113
93
|
external
|
114
|
-
onlyChainNft
|
94
|
+
onlyChainNft
|
115
95
|
{
|
116
96
|
_nftTransferFrom(from, to, tokenId, operator);
|
117
97
|
}
|
@@ -126,7 +106,7 @@ abstract contract Component is
|
|
126
106
|
}
|
127
107
|
|
128
108
|
function getToken() public view virtual returns (IERC20Metadata token) {
|
129
|
-
return
|
109
|
+
return getTokenHandler().TOKEN();
|
130
110
|
}
|
131
111
|
|
132
112
|
function getName() public view override returns(string memory name) {
|
@@ -184,10 +164,14 @@ abstract contract Component is
|
|
184
164
|
function _nftTransferFrom(address from, address to, uint256 tokenId, address operator)
|
185
165
|
internal
|
186
166
|
virtual
|
187
|
-
|
167
|
+
// solhint-disable-next-line no-empty-blocks
|
168
|
+
{
|
169
|
+
// empty default implementation
|
170
|
+
}
|
188
171
|
|
189
172
|
|
190
|
-
/// @dev
|
173
|
+
/// @dev Sets the components wallet to the specified address.
|
174
|
+
/// Depending on the source of the component information this function needs to be overwritten.
|
191
175
|
/// eg for instance linked components that externally store this information with the instance store contract
|
192
176
|
function _setWallet(
|
193
177
|
address newWallet
|
@@ -202,7 +186,7 @@ abstract contract Component is
|
|
202
186
|
internal
|
203
187
|
virtual
|
204
188
|
{
|
205
|
-
_getComponentStorage()._componentService.
|
189
|
+
_getComponentStorage()._componentService.setLocked(locked);
|
206
190
|
}
|
207
191
|
|
208
192
|
|
@@ -213,7 +197,6 @@ abstract contract Component is
|
|
213
197
|
|
214
198
|
return IComponents.ComponentInfo({
|
215
199
|
name: $._name,
|
216
|
-
token: $._token,
|
217
200
|
tokenHandler: TokenHandler(address(0)),
|
218
201
|
data: $._data // user specific component data
|
219
202
|
});
|
@@ -19,6 +19,7 @@ import {IRegisterable} from "../shared/IRegisterable.sol";
|
|
19
19
|
import {IRegistry} from "../registry/IRegistry.sol";
|
20
20
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
21
21
|
|
22
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
22
23
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
23
24
|
import {ContractLib} from "../shared/ContractLib.sol";
|
24
25
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
@@ -98,15 +99,18 @@ contract ComponentService is
|
|
98
99
|
returns (NftId componentNftId)
|
99
100
|
{
|
100
101
|
// type specific registration
|
101
|
-
|
102
|
+
IRegistry.ObjectInfo memory componentObjectInfo = IInstanceLinkedComponent(component).getInitialInfo();
|
103
|
+
ObjectType componentType = componentObjectInfo.objectType;
|
104
|
+
IComponent productComponent = IComponent(getRegistry().getObjectAddress(componentObjectInfo.parentNftId));
|
105
|
+
|
102
106
|
if (componentType == POOL()) {
|
103
|
-
return _registerPool(component);
|
107
|
+
return _registerPool(component, address(productComponent.getToken()));
|
104
108
|
}
|
105
109
|
if (componentType == DISTRIBUTION()) {
|
106
|
-
return _registerDistribution(component);
|
110
|
+
return _registerDistribution(component, address(productComponent.getToken()));
|
107
111
|
}
|
108
112
|
if (componentType == ORACLE()) {
|
109
|
-
return _registerOracle(component);
|
113
|
+
return _registerOracle(component, address(productComponent.getToken()));
|
110
114
|
}
|
111
115
|
|
112
116
|
// fail
|
@@ -144,31 +148,24 @@ contract ComponentService is
|
|
144
148
|
}
|
145
149
|
|
146
150
|
/// @inheritdoc IComponentService
|
147
|
-
function
|
151
|
+
function setLocked(bool locked)
|
148
152
|
external
|
149
153
|
virtual
|
150
|
-
|
151
|
-
{
|
152
|
-
address instanceAddress = msg.sender;
|
153
|
-
// NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
154
|
-
IInstance instance = IInstance(instanceAddress);
|
155
|
-
_setLocked(instance.getInstanceAdmin(), componentAddress, locked);
|
156
|
-
}
|
157
|
-
|
158
|
-
/// @inheritdoc IComponentService
|
159
|
-
function setLockedFromComponent(address componentAddress, bool locked)
|
160
|
-
external
|
161
|
-
virtual
|
162
|
-
onlyComponent(msg.sender)
|
154
|
+
restricted()
|
163
155
|
{
|
164
156
|
(, IInstance instance) = _getAndVerifyComponent(COMPONENT(), false);
|
165
|
-
|
157
|
+
|
158
|
+
address component = msg.sender;
|
159
|
+
instance.getInstanceAdmin().setComponentLocked(
|
160
|
+
component,
|
161
|
+
locked);
|
166
162
|
}
|
167
163
|
|
168
164
|
/// @inheritdoc IComponentService
|
169
165
|
function withdrawFees(Amount amount)
|
170
166
|
external
|
171
167
|
virtual
|
168
|
+
restricted()
|
172
169
|
returns (Amount withdrawnAmount)
|
173
170
|
{
|
174
171
|
// checks
|
@@ -198,6 +195,7 @@ contract ComponentService is
|
|
198
195
|
componentNftId,
|
199
196
|
withdrawnAmount);
|
200
197
|
|
198
|
+
// transfer amount to component owner
|
201
199
|
address componentOwner = getRegistry().ownerOf(componentNftId);
|
202
200
|
TokenHandler tokenHandler = instanceReader.getTokenHandler(componentNftId);
|
203
201
|
emit LogComponentServiceComponentFeesWithdrawn(
|
@@ -216,7 +214,7 @@ contract ComponentService is
|
|
216
214
|
|
217
215
|
//-------- product ------------------------------------------------------//
|
218
216
|
|
219
|
-
function registerProduct(address productAddress)
|
217
|
+
function registerProduct(address productAddress, address token)
|
220
218
|
external
|
221
219
|
virtual
|
222
220
|
nonReentrant()
|
@@ -228,7 +226,8 @@ contract ComponentService is
|
|
228
226
|
InstanceStore instanceStore;
|
229
227
|
(, instanceAdmin, instanceStore,, productNftId) = _register(
|
230
228
|
productAddress,
|
231
|
-
PRODUCT()
|
229
|
+
PRODUCT(),
|
230
|
+
token);
|
232
231
|
|
233
232
|
// get product
|
234
233
|
IProductComponent product = IProductComponent(productAddress);
|
@@ -286,7 +285,7 @@ contract ComponentService is
|
|
286
285
|
//-------- distribution -------------------------------------------------//
|
287
286
|
|
288
287
|
/// @dev registers the sending component as a distribution component
|
289
|
-
function _registerDistribution(address distributioAddress)
|
288
|
+
function _registerDistribution(address distributioAddress, address token)
|
290
289
|
internal
|
291
290
|
virtual
|
292
291
|
nonReentrant()
|
@@ -299,7 +298,8 @@ contract ComponentService is
|
|
299
298
|
NftId productNftId;
|
300
299
|
(instanceReader, instanceAdmin, instanceStore, productNftId, distributionNftId) = _register(
|
301
300
|
distributioAddress,
|
302
|
-
DISTRIBUTION()
|
301
|
+
DISTRIBUTION(),
|
302
|
+
token);
|
303
303
|
|
304
304
|
// check product is still expecting a distribution registration
|
305
305
|
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
@@ -350,7 +350,7 @@ contract ComponentService is
|
|
350
350
|
|
351
351
|
//-------- oracle -------------------------------------------------------//
|
352
352
|
|
353
|
-
function _registerOracle(address oracleAddress)
|
353
|
+
function _registerOracle(address oracleAddress, address token)
|
354
354
|
internal
|
355
355
|
virtual
|
356
356
|
returns (NftId oracleNftId)
|
@@ -363,7 +363,8 @@ contract ComponentService is
|
|
363
363
|
|
364
364
|
(instanceReader, instanceAdmin, instanceStore, productNftId, oracleNftId) = _register(
|
365
365
|
oracleAddress,
|
366
|
-
ORACLE()
|
366
|
+
ORACLE(),
|
367
|
+
token);
|
367
368
|
|
368
369
|
// check product is still expecting an oracle registration
|
369
370
|
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
@@ -382,7 +383,7 @@ contract ComponentService is
|
|
382
383
|
|
383
384
|
//-------- pool ---------------------------------------------------------//
|
384
385
|
|
385
|
-
function _registerPool(address poolAddress)
|
386
|
+
function _registerPool(address poolAddress, address token)
|
386
387
|
internal
|
387
388
|
virtual
|
388
389
|
returns (NftId poolNftId)
|
@@ -395,7 +396,8 @@ contract ComponentService is
|
|
395
396
|
|
396
397
|
(instanceReader, instanceAdmin, instanceStore, productNftId, poolNftId) = _register(
|
397
398
|
poolAddress,
|
398
|
-
POOL()
|
399
|
+
POOL(),
|
400
|
+
token);
|
399
401
|
|
400
402
|
// check product is still expecting a pool registration
|
401
403
|
IComponents.ProductInfo memory productInfo = instanceReader.getProductInfo(productNftId);
|
@@ -459,7 +461,8 @@ contract ComponentService is
|
|
459
461
|
/// @dev Registers the component represented by the provided address.
|
460
462
|
function _register(
|
461
463
|
address componentAddress, // address of component to register
|
462
|
-
ObjectType requiredType // required type for component for registration
|
464
|
+
ObjectType requiredType, // required type for component for registration
|
465
|
+
address token
|
463
466
|
)
|
464
467
|
internal
|
465
468
|
virtual
|
@@ -487,6 +490,18 @@ contract ComponentService is
|
|
487
490
|
componentAddress,
|
488
491
|
requiredType);
|
489
492
|
|
493
|
+
if (! instance.isTokenRegistryDisabled()) {
|
494
|
+
// check if provided token is whitelisted and active
|
495
|
+
if (!ContractLib.isActiveToken(
|
496
|
+
getRegistry().getTokenRegistryAddress(),
|
497
|
+
token,
|
498
|
+
block.chainid,
|
499
|
+
AccessManagerCloneable(authority()).getRelease())
|
500
|
+
) {
|
501
|
+
revert ErrorComponentServiceTokenInvalid(token);
|
502
|
+
}
|
503
|
+
}
|
504
|
+
|
490
505
|
// get instance supporting contracts (as function return values)
|
491
506
|
instanceReader = instance.getInstanceReader();
|
492
507
|
instanceAdmin = instance.getInstanceAdmin();
|
@@ -502,26 +517,27 @@ contract ComponentService is
|
|
502
517
|
}
|
503
518
|
|
504
519
|
// deploy and wire token handler
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
520
|
+
{
|
521
|
+
IComponents.ComponentInfo memory componentInfo = component.getInitialComponentInfo();
|
522
|
+
componentInfo.tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
|
523
|
+
address(getRegistry()),
|
524
|
+
componentAddress, // initially, component is its own wallet
|
525
|
+
token,
|
526
|
+
address(instanceAdmin.authority()));
|
527
|
+
|
528
|
+
// register component with instance
|
529
|
+
instanceStore.createComponent(
|
530
|
+
componentNftId,
|
531
|
+
componentInfo);
|
532
|
+
}
|
517
533
|
|
518
534
|
// link component contract to nft id
|
519
535
|
component.linkToRegisteredNftId();
|
520
536
|
|
521
537
|
// authorize
|
522
|
-
instanceAdmin.initializeComponentAuthorization(
|
538
|
+
instanceAdmin.initializeComponentAuthorization(componentAddress, requiredType);
|
523
539
|
|
524
|
-
emit LogComponentServiceRegistered(instanceNftId, componentNftId, requiredType,
|
540
|
+
emit LogComponentServiceRegistered(instanceNftId, componentNftId, requiredType, componentAddress, token, initialOwner);
|
525
541
|
}
|
526
542
|
|
527
543
|
|
@@ -3,6 +3,7 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
|
5
5
|
import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
|
6
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
6
7
|
|
7
8
|
// import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
8
9
|
import {IRegistry} from "../registry/IRegistry.sol";
|
@@ -170,6 +171,33 @@ library ContractLib {
|
|
170
171
|
}
|
171
172
|
|
172
173
|
|
174
|
+
function isAccessManaged(address target)
|
175
|
+
public
|
176
|
+
view
|
177
|
+
returns (bool)
|
178
|
+
{
|
179
|
+
if (!isContract(target)) {
|
180
|
+
return false;
|
181
|
+
}
|
182
|
+
|
183
|
+
(bool success, ) = target.staticcall(
|
184
|
+
abi.encodeWithSelector(
|
185
|
+
IAccessManaged.authority.selector));
|
186
|
+
|
187
|
+
return success;
|
188
|
+
}
|
189
|
+
|
190
|
+
|
191
|
+
function isRegistered(address registry, address caller, ObjectType expectedType) public view returns (bool) {
|
192
|
+
NftId nftId = IRegistry(registry).getNftIdForAddress(caller);
|
193
|
+
if (nftId.eqz()) {
|
194
|
+
return false;
|
195
|
+
}
|
196
|
+
|
197
|
+
return IRegistry(registry).getObjectInfo(nftId).objectType == expectedType;
|
198
|
+
}
|
199
|
+
|
200
|
+
|
173
201
|
function isRegistry(address registry) public view returns (bool) {
|
174
202
|
if (!isContract(registry)) {
|
175
203
|
return false;
|
@@ -15,9 +15,6 @@ interface IComponent is
|
|
15
15
|
IRegisterable,
|
16
16
|
ITransferInterceptor
|
17
17
|
{
|
18
|
-
|
19
|
-
error ErrorComponentTokenInvalid(address token);
|
20
|
-
|
21
18
|
error ErrorComponentProductNftIdZero();
|
22
19
|
error ErrorComponentProductNftIdNonzero();
|
23
20
|
error ErrorComponentNameLengthZero();
|
@@ -16,6 +16,8 @@ import {VersionPart} from "../type/Version.sol";
|
|
16
16
|
interface IComponentService is
|
17
17
|
IService
|
18
18
|
{
|
19
|
+
error ErrorComponentServiceTokenInvalid(address token);
|
20
|
+
|
19
21
|
error ErrorComponentServiceNotInstanceLinkedComponent(address component);
|
20
22
|
error ErrorComponentServiceSenderNotRegistered(address sender);
|
21
23
|
error ErrorComponentServiceNotComponent(address component);
|
@@ -56,9 +58,9 @@ interface IComponentService is
|
|
56
58
|
NftId nftId,
|
57
59
|
string feeName,
|
58
60
|
UFixed previousFractionalFee,
|
59
|
-
|
61
|
+
Amount previousFixedFee,
|
60
62
|
UFixed newFractionalFee,
|
61
|
-
|
63
|
+
Amount newFixedFee
|
62
64
|
);
|
63
65
|
|
64
66
|
//-------- component ----------------------------------------------------//
|
@@ -67,14 +69,12 @@ interface IComponentService is
|
|
67
69
|
/// Reverts if the component's token handler wallet is not the token handler itself.
|
68
70
|
function approveTokenHandler(IERC20Metadata token, Amount amount) external;
|
69
71
|
|
70
|
-
/// @dev Sets the components associated wallet address
|
72
|
+
/// @dev Sets the components associated wallet address.
|
73
|
+
/// To set the wallet to the token handler contract, use address(0) as the new wallet adress.
|
71
74
|
function setWallet(address newWallet) external;
|
72
75
|
|
73
|
-
/// @dev Locks/Unlocks the
|
74
|
-
function
|
75
|
-
|
76
|
-
/// @dev Locks/Unlocks the given component - call from component
|
77
|
-
function setLockedFromComponent(address componentAddress, bool locked) external;
|
76
|
+
/// @dev Locks/Unlocks the calling component.
|
77
|
+
function setLocked(bool locked) external;
|
78
78
|
|
79
79
|
/// @dev Withdraw fees from the distribution component. Only component owner is allowed to withdraw fees.
|
80
80
|
/// @param withdrawAmount the amount to withdraw
|
@@ -87,7 +87,7 @@ interface IComponentService is
|
|
87
87
|
//-------- product ------------------------------------------------------//
|
88
88
|
|
89
89
|
/// @dev Registers the specified product component for the instance (sender)
|
90
|
-
function registerProduct(address product) external returns (NftId productNftId);
|
90
|
+
function registerProduct(address product, address token) external returns (NftId productNftId);
|
91
91
|
|
92
92
|
function setProductFees(
|
93
93
|
Fee memory productFee, // product fee on net premium
|
@@ -11,13 +11,21 @@ contract InitializableERC165 is
|
|
11
11
|
mapping(bytes4 => bool) private _isSupported;
|
12
12
|
|
13
13
|
// @dev initializes with support for ERC165
|
14
|
-
function
|
14
|
+
function __ERC165_init() internal onlyInitializing() {
|
15
|
+
_initializeERC165();
|
16
|
+
}
|
17
|
+
|
18
|
+
function _initializeERC165() internal {
|
15
19
|
_isSupported[type(IERC165).interfaceId] = true;
|
16
20
|
}
|
17
21
|
|
18
22
|
// @dev register support for provided interfaceId
|
19
23
|
// includes initialization for ERC165_ID if not yet done
|
20
24
|
function _registerInterface(bytes4 interfaceId) internal onlyInitializing() {
|
25
|
+
_registerInterfaceNotInitializing(interfaceId);
|
26
|
+
}
|
27
|
+
|
28
|
+
function _registerInterfaceNotInitializing(bytes4 interfaceId) internal{
|
21
29
|
_isSupported[interfaceId] = true;
|
22
30
|
}
|
23
31
|
|
@@ -71,7 +71,6 @@ abstract contract InstanceLinkedComponent is
|
|
71
71
|
address registry,
|
72
72
|
NftId parentNftId,
|
73
73
|
string memory name,
|
74
|
-
address token,
|
75
74
|
ObjectType componentType,
|
76
75
|
IAuthorization authorization,
|
77
76
|
bool isInterceptor,
|
@@ -99,7 +98,6 @@ abstract contract InstanceLinkedComponent is
|
|
99
98
|
registry,
|
100
99
|
parentNftId,
|
101
100
|
name,
|
102
|
-
token,
|
103
101
|
componentType,
|
104
102
|
isInterceptor,
|
105
103
|
initialOwner,
|