@etherisc/gif-next 0.0.2-e9c5694-914 → 0.0.2-ea09fbf-195
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 +27 -6
- 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 +103 -55
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- 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 +37 -5
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- 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 +106 -186
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -89
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +154 -108
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +75 -53
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -58
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +50 -3
- 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 +101 -164
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +49 -17
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +258 -290
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +17 -17
- 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 +137 -129
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +90 -126
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +225 -162
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +630 -317
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +94 -47
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +77 -20
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +131 -56
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +239 -92
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +40 -27
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +478 -197
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +104 -74
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -27
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +410 -370
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +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/ObjectSetHelper.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelper.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +74 -154
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- 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 +44 -58
- 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 +58 -90
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +112 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +69 -27
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +57 -104
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +49 -17
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +128 -226
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +60 -74
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +46 -60
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -97
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +104 -78
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -128
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +175 -174
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +64 -38
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +105 -63
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -27
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +163 -175
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +251 -144
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +79 -57
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +61 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +143 -3
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +65 -22
- 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 +150 -144
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +158 -140
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +73 -47
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +99 -76
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -38
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +163 -175
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +88 -73
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +54 -24
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +31 -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 +69 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +188 -213
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +42 -20
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +310 -52
- 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 +57 -75
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +250 -421
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +71 -61
- 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 +454 -5
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +44 -44
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +134 -248
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +44 -58
- 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 +57 -89
- 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 +388 -35
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +62 -80
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +27 -3
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +3 -3
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +134 -173
- 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 +58 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +73 -50
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +46 -24
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +129 -129
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
- 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 +3 -3
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +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 +62 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +3 -3
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/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/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
- 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 +18 -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 +136 -73
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/IAccessAdmin.sol +6 -3
- package/contracts/distribution/BasicDistribution.sol +6 -6
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +32 -30
- package/contracts/distribution/DistributionService.sol +34 -32
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +5 -6
- package/contracts/examples/fire/FirePool.sol +22 -5
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -0
- package/contracts/examples/fire/FireProduct.sol +31 -8
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +7 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +33 -2
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +40 -21
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +8 -8
- package/contracts/instance/IInstanceService.sol +9 -9
- package/contracts/instance/Instance.sol +20 -17
- package/contracts/instance/InstanceAdmin.sol +96 -47
- package/contracts/instance/InstanceAuthorizationV3.sol +45 -14
- package/contracts/instance/InstanceReader.sol +108 -7
- package/contracts/instance/InstanceService.sol +73 -82
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelper.sol +30 -0
- package/contracts/instance/module/IComponents.sol +4 -4
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +92 -73
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +24 -3
- package/contracts/pool/BasicPoolAuthorization.sol +12 -1
- package/contracts/pool/BundleService.sol +26 -94
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +2 -24
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +12 -26
- package/contracts/pool/Pool.sol +112 -102
- package/contracts/pool/PoolService.sol +171 -100
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +15 -15
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +9 -11
- package/contracts/product/BasicProductAuthorization.sol +1 -2
- package/contracts/product/ClaimService.sol +147 -51
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +13 -0
- package/contracts/product/IPolicyService.sol +17 -7
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/PolicyService.sol +244 -199
- 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 +47 -39
- package/contracts/product/RiskService.sol +78 -23
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +8 -15
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/Registry.sol +12 -3
- package/contracts/registry/RegistryAdmin.sol +121 -225
- 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 +129 -119
- package/contracts/registry/ServiceAuthorizationV3.sol +88 -40
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +59 -98
- package/contracts/shared/ComponentService.sol +206 -251
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +15 -13
- package/contracts/shared/ContractLib.sol +223 -9
- package/contracts/shared/IComponent.sol +4 -17
- package/contracts/shared/IComponentService.sol +20 -24
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +2 -18
- package/contracts/shared/NftOwnable.sol +4 -4
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +44 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +316 -66
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +9 -4
- package/contracts/staking/Staking.sol +62 -33
- package/contracts/staking/StakingService.sol +41 -9
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +32 -18
- package/contracts/type/RiskId.sol +23 -6
- package/contracts/type/RoleId.sol +5 -2
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +9 -119
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +3 -3
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
@@ -3,10 +3,8 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
|
-
import {
|
7
|
-
import {
|
8
|
-
import {ContractLib} from "../shared/ContractLib.sol";
|
9
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
6
|
+
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
7
|
+
import {IComponent} from "../shared/IComponent.sol";
|
10
8
|
import {IComponents} from "../instance/module/IComponents.sol";
|
11
9
|
import {IComponentService} from "./IComponentService.sol";
|
12
10
|
import {IInstance} from "../instance/IInstance.sol";
|
@@ -15,32 +13,56 @@ import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
|
15
13
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
16
14
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
17
15
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
18
|
-
import {IRegisterable} from "../shared/IRegisterable.sol";
|
19
16
|
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
20
17
|
import {IProductComponent} from "../product/IProductComponent.sol";
|
18
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
21
19
|
import {IRegistry} from "../registry/IRegistry.sol";
|
22
20
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
21
|
+
|
22
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
23
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
24
|
+
import {Fee, FeeLib} from "../type/Fee.sol";
|
23
25
|
import {KEEP_STATE} from "../type/StateId.sol";
|
24
|
-
import {NftId} from "../type/NftId.sol";
|
25
|
-
import {ObjectType,
|
26
|
-
import {
|
26
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
27
|
+
import {ObjectType, ACCOUNTING, REGISTRY, COMPONENT, DISTRIBUTION, INSTANCE, ORACLE, POOL, PRODUCT} from "../type/ObjectType.sol";
|
28
|
+
import {Service} from "../shared/Service.sol";
|
29
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
27
30
|
import {TokenHandlerDeployerLib} from "../shared/TokenHandlerDeployerLib.sol";
|
31
|
+
import {VersionPart} from "../type/Version.sol";
|
32
|
+
|
28
33
|
|
29
34
|
contract ComponentService is
|
30
|
-
|
35
|
+
Service,
|
31
36
|
IComponentService
|
32
37
|
{
|
33
|
-
|
34
38
|
bool private constant INCREASE = true;
|
35
39
|
bool private constant DECREASE = false;
|
36
40
|
|
41
|
+
IAccountingService private _accountingService;
|
37
42
|
IRegistryService private _registryService;
|
38
43
|
IInstanceService private _instanceService;
|
39
44
|
|
40
45
|
modifier onlyComponent(address component) {
|
41
|
-
|
42
|
-
|
46
|
+
_checkSupportsInterface(component);
|
47
|
+
_;
|
48
|
+
}
|
49
|
+
|
50
|
+
modifier onlyInstance() {
|
51
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
52
|
+
if (instanceNftId.eqz()) {
|
53
|
+
revert ErrorComponentServiceNotRegistered(msg.sender);
|
54
|
+
}
|
55
|
+
|
56
|
+
ObjectType objectType = getRegistry().getObjectInfo(instanceNftId).objectType;
|
57
|
+
if (objectType != INSTANCE()) {
|
58
|
+
revert ErrorComponentServiceNotInstance(msg.sender, objectType);
|
43
59
|
}
|
60
|
+
|
61
|
+
VersionPart instanceVersion = IInstance(msg.sender).getRelease();
|
62
|
+
if (instanceVersion != getVersion().toMajorPart()) {
|
63
|
+
revert ErrorComponentServiceInstanceVersionMismatch(msg.sender, instanceVersion);
|
64
|
+
}
|
65
|
+
|
44
66
|
_;
|
45
67
|
}
|
46
68
|
|
@@ -54,12 +76,13 @@ contract ComponentService is
|
|
54
76
|
initializer()
|
55
77
|
{
|
56
78
|
(
|
57
|
-
address
|
58
|
-
address
|
79
|
+
address authority,
|
80
|
+
address registry
|
59
81
|
) = abi.decode(data, (address, address));
|
60
82
|
|
61
|
-
|
83
|
+
__Service_init(authority, registry, owner);
|
62
84
|
|
85
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
63
86
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
64
87
|
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
65
88
|
|
@@ -90,43 +113,84 @@ contract ComponentService is
|
|
90
113
|
revert ErrorComponentServiceTypeNotSupported(component, componentType);
|
91
114
|
}
|
92
115
|
|
116
|
+
function approveTokenHandler(
|
117
|
+
IERC20Metadata token,
|
118
|
+
Amount amount
|
119
|
+
)
|
120
|
+
external
|
121
|
+
virtual
|
122
|
+
{
|
123
|
+
// checks
|
124
|
+
(NftId componentNftId, IInstance instance) = _getAndVerifyActiveComponent(COMPONENT());
|
125
|
+
TokenHandler tokenHandler = instance.getInstanceReader().getComponentInfo(
|
126
|
+
componentNftId).tokenHandler;
|
93
127
|
|
94
|
-
|
95
|
-
(
|
96
|
-
|
97
|
-
address currentWallet = info.wallet;
|
128
|
+
// effects
|
129
|
+
tokenHandler.approve(token, amount);
|
130
|
+
}
|
98
131
|
|
99
|
-
if (newWallet == address(0)) {
|
100
|
-
revert ErrorComponentServiceNewWalletAddressZero();
|
101
|
-
}
|
102
132
|
|
103
|
-
|
104
|
-
|
105
|
-
|
133
|
+
function approveStakingTokenHandler(
|
134
|
+
IERC20Metadata token,
|
135
|
+
Amount amount
|
136
|
+
)
|
137
|
+
external
|
138
|
+
virtual
|
139
|
+
{
|
140
|
+
// checks
|
141
|
+
ContractLib.getAndVerifyStaking(
|
142
|
+
getRegistry(),
|
143
|
+
msg.sender); // only active
|
106
144
|
|
107
|
-
|
108
|
-
|
109
|
-
|
145
|
+
// effects
|
146
|
+
TokenHandler tokenHandler = IComponent(msg.sender).getTokenHandler();
|
147
|
+
tokenHandler.approve(token, amount);
|
148
|
+
}
|
110
149
|
|
111
|
-
|
112
|
-
|
113
|
-
|
150
|
+
|
151
|
+
function setWallet(address newWallet)
|
152
|
+
external
|
153
|
+
virtual
|
154
|
+
{
|
155
|
+
// checks
|
156
|
+
(NftId componentNftId, IInstance instance) = _getAndVerifyActiveComponent(COMPONENT());
|
157
|
+
TokenHandler tokenHandler = instance.getInstanceReader().getComponentInfo(
|
158
|
+
componentNftId).tokenHandler;
|
159
|
+
|
160
|
+
// effects
|
161
|
+
tokenHandler.setWallet(newWallet);
|
114
162
|
}
|
115
163
|
|
116
|
-
|
117
|
-
function
|
164
|
+
/// @inheritdoc IComponentService
|
165
|
+
function setLockedFromInstance(address componentAddress, bool locked)
|
166
|
+
external
|
167
|
+
virtual
|
168
|
+
onlyInstance()
|
169
|
+
{
|
170
|
+
address instanceAddress = msg.sender;
|
171
|
+
// NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
172
|
+
IInstance instance = IInstance(instanceAddress);
|
173
|
+
_setLocked(instance.getInstanceAdmin(), componentAddress, locked);
|
174
|
+
}
|
118
175
|
|
119
|
-
|
120
|
-
function
|
176
|
+
/// @inheritdoc IComponentService
|
177
|
+
function setLockedFromComponent(address componentAddress, bool locked)
|
178
|
+
external
|
179
|
+
virtual
|
180
|
+
onlyComponent(msg.sender)
|
181
|
+
{
|
182
|
+
(, IInstance instance) = _getAndVerifyComponent(COMPONENT(), false);
|
183
|
+
_setLocked(instance.getInstanceAdmin(), componentAddress, locked);
|
184
|
+
}
|
121
185
|
|
122
186
|
function withdrawFees(Amount amount)
|
123
187
|
external
|
124
188
|
virtual
|
125
189
|
returns (Amount withdrawnAmount)
|
126
190
|
{
|
127
|
-
(NftId componentNftId
|
191
|
+
(NftId componentNftId, IInstance instance) = _getAndVerifyActiveComponent(COMPONENT());
|
128
192
|
IComponents.ComponentInfo memory info = instance.getInstanceReader().getComponentInfo(componentNftId);
|
129
|
-
address componentWallet = info.
|
193
|
+
address componentWallet = info.tokenHandler.getWallet();
|
130
194
|
|
131
195
|
// determine withdrawn amount
|
132
196
|
withdrawnAmount = amount;
|
@@ -142,7 +206,7 @@ contract ComponentService is
|
|
142
206
|
}
|
143
207
|
|
144
208
|
// decrease fee counters by withdrawnAmount
|
145
|
-
|
209
|
+
_accountingService.decreaseComponentFees(instance.getInstanceStore(), componentNftId, withdrawnAmount);
|
146
210
|
|
147
211
|
// transfer amount to component owner
|
148
212
|
address componentOwner = getRegistry().ownerOf(componentNftId);
|
@@ -156,6 +220,7 @@ contract ComponentService is
|
|
156
220
|
function registerProduct(address productAddress)
|
157
221
|
external
|
158
222
|
virtual
|
223
|
+
nonReentrant()
|
159
224
|
onlyComponent(productAddress)
|
160
225
|
returns (NftId productNftId)
|
161
226
|
{
|
@@ -168,11 +233,21 @@ contract ComponentService is
|
|
168
233
|
|
169
234
|
// get product
|
170
235
|
IProductComponent product = IProductComponent(productAddress);
|
236
|
+
|
237
|
+
IComponents.ProductInfo memory initialProductInfo = product.getInitialProductInfo();
|
238
|
+
// force initialization of linked components with empty values to
|
239
|
+
// ensure no components are linked upon initialization of the product
|
240
|
+
initialProductInfo.poolNftId = NftIdLib.zero();
|
241
|
+
initialProductInfo.distributionNftId = NftIdLib.zero();
|
242
|
+
initialProductInfo.oracleNftId = new NftId[](initialProductInfo.expectedNumberOfOracles);
|
171
243
|
|
172
244
|
// create info
|
173
245
|
instanceStore.createProduct(
|
174
246
|
productNftId,
|
175
|
-
|
247
|
+
initialProductInfo);
|
248
|
+
instanceStore.createFee(
|
249
|
+
productNftId,
|
250
|
+
product.getInitialFeeInfo());
|
176
251
|
|
177
252
|
// authorize
|
178
253
|
instanceAdmin.initializeComponentAuthorization(product);
|
@@ -185,62 +260,39 @@ contract ComponentService is
|
|
185
260
|
)
|
186
261
|
external
|
187
262
|
virtual
|
263
|
+
nonReentrant()
|
188
264
|
{
|
189
|
-
(NftId productNftId
|
190
|
-
IComponents.
|
265
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
266
|
+
IComponents.FeeInfo memory feeInfo = instance.getInstanceReader().getFeeInfo(productNftId);
|
191
267
|
bool feesChanged = false;
|
192
268
|
|
193
269
|
// update product fee if required
|
194
|
-
if(!FeeLib.eq(
|
195
|
-
_logUpdateFee(productNftId, "ProductFee",
|
196
|
-
|
270
|
+
if(!FeeLib.eq(feeInfo.productFee, productFee)) {
|
271
|
+
_logUpdateFee(productNftId, "ProductFee", feeInfo.productFee, productFee);
|
272
|
+
feeInfo.productFee = productFee;
|
197
273
|
feesChanged = true;
|
198
274
|
}
|
199
275
|
|
200
276
|
// update processing fee if required
|
201
|
-
if(!FeeLib.eq(
|
202
|
-
_logUpdateFee(productNftId, "ProcessingFee",
|
203
|
-
|
277
|
+
if(!FeeLib.eq(feeInfo.processingFee, processingFee)) {
|
278
|
+
_logUpdateFee(productNftId, "ProcessingFee", feeInfo.processingFee, processingFee);
|
279
|
+
feeInfo.processingFee = processingFee;
|
204
280
|
feesChanged = true;
|
205
281
|
}
|
206
282
|
|
207
283
|
if(feesChanged) {
|
208
|
-
instance.getInstanceStore().
|
284
|
+
instance.getInstanceStore().updateFee(productNftId, feeInfo);
|
209
285
|
emit LogComponentServiceProductFeesUpdated(productNftId);
|
210
286
|
}
|
211
287
|
}
|
212
288
|
|
213
|
-
function increaseProductFees(
|
214
|
-
InstanceStore instanceStore,
|
215
|
-
NftId productNftId,
|
216
|
-
Amount feeAmount
|
217
|
-
)
|
218
|
-
external
|
219
|
-
virtual
|
220
|
-
// TODO re-enable once role granting is stable and fixed
|
221
|
-
// restricted()
|
222
|
-
{
|
223
|
-
_checkNftType(productNftId, PRODUCT());
|
224
|
-
_changeTargetBalance(INCREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
|
225
|
-
}
|
226
|
-
|
227
|
-
|
228
|
-
function decreaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount)
|
229
|
-
external
|
230
|
-
virtual
|
231
|
-
// TODO re-enable once role granting is stable and fixed
|
232
|
-
// restricted()
|
233
|
-
{
|
234
|
-
_checkNftType(productNftId, PRODUCT());
|
235
|
-
_changeTargetBalance(DECREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
|
236
|
-
}
|
237
|
-
|
238
289
|
//-------- distribution -------------------------------------------------//
|
239
290
|
|
240
291
|
/// @dev registers the sending component as a distribution component
|
241
292
|
function _registerDistribution(address distributioAddress)
|
242
293
|
internal
|
243
294
|
virtual
|
295
|
+
nonReentrant()
|
244
296
|
returns (NftId distributionNftId)
|
245
297
|
{
|
246
298
|
// register/create component info
|
@@ -278,94 +330,31 @@ contract ComponentService is
|
|
278
330
|
external
|
279
331
|
virtual
|
280
332
|
{
|
281
|
-
(NftId distributionNftId
|
282
|
-
(NftId productNftId, IComponents.
|
333
|
+
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
334
|
+
(NftId productNftId, IComponents.FeeInfo memory feeInfo) = _getLinkedFeeInfo(
|
283
335
|
instance.getInstanceReader(), distributionNftId);
|
284
336
|
bool feesChanged = false;
|
285
337
|
|
286
338
|
// update distributino fee if required
|
287
|
-
if(!FeeLib.eq(
|
288
|
-
_logUpdateFee(productNftId, "DistributionFee",
|
289
|
-
|
339
|
+
if(!FeeLib.eq(feeInfo.distributionFee, distributionFee)) {
|
340
|
+
_logUpdateFee(productNftId, "DistributionFee", feeInfo.distributionFee, distributionFee);
|
341
|
+
feeInfo.distributionFee = distributionFee;
|
290
342
|
feesChanged = true;
|
291
343
|
}
|
292
344
|
|
293
345
|
// update min distribution owner fee if required
|
294
|
-
if(!FeeLib.eq(
|
295
|
-
_logUpdateFee(productNftId, "MinDistributionOwnerFee",
|
296
|
-
|
346
|
+
if(!FeeLib.eq(feeInfo.minDistributionOwnerFee, minDistributionOwnerFee)) {
|
347
|
+
_logUpdateFee(productNftId, "MinDistributionOwnerFee", feeInfo.minDistributionOwnerFee, minDistributionOwnerFee);
|
348
|
+
feeInfo.minDistributionOwnerFee = minDistributionOwnerFee;
|
297
349
|
feesChanged = true;
|
298
350
|
}
|
299
351
|
|
300
352
|
if(feesChanged) {
|
301
|
-
instance.getInstanceStore().
|
353
|
+
instance.getInstanceStore().updateFee(productNftId, feeInfo);
|
302
354
|
emit LogComponentServiceDistributionFeesUpdated(distributionNftId);
|
303
355
|
}
|
304
356
|
}
|
305
357
|
|
306
|
-
function increaseDistributionBalance(
|
307
|
-
InstanceStore instanceStore,
|
308
|
-
NftId distributionNftId,
|
309
|
-
Amount amount,
|
310
|
-
Amount feeAmount
|
311
|
-
)
|
312
|
-
external
|
313
|
-
virtual
|
314
|
-
// TODO re-enable once role granting is stable and fixed
|
315
|
-
// restricted()
|
316
|
-
{
|
317
|
-
_checkNftType(distributionNftId, DISTRIBUTION());
|
318
|
-
_changeTargetBalance(INCREASE, instanceStore, distributionNftId, amount, feeAmount);
|
319
|
-
}
|
320
|
-
|
321
|
-
|
322
|
-
function decreaseDistributionBalance(
|
323
|
-
InstanceStore instanceStore,
|
324
|
-
NftId distributionNftId,
|
325
|
-
Amount amount,
|
326
|
-
Amount feeAmount
|
327
|
-
)
|
328
|
-
external
|
329
|
-
virtual
|
330
|
-
// TODO re-enable once role granting is stable and fixed
|
331
|
-
// restricted()
|
332
|
-
{
|
333
|
-
_checkNftType(distributionNftId, DISTRIBUTION());
|
334
|
-
_changeTargetBalance(DECREASE, instanceStore, distributionNftId, amount, feeAmount);
|
335
|
-
}
|
336
|
-
|
337
|
-
//-------- distributor -------------------------------------------------------//
|
338
|
-
|
339
|
-
function increaseDistributorBalance(
|
340
|
-
InstanceStore instanceStore,
|
341
|
-
NftId distributorNftId,
|
342
|
-
Amount amount,
|
343
|
-
Amount feeAmount
|
344
|
-
)
|
345
|
-
external
|
346
|
-
virtual
|
347
|
-
// TODO re-enable once role granting is stable and fixed
|
348
|
-
// restricted()
|
349
|
-
{
|
350
|
-
_checkNftType(distributorNftId, DISTRIBUTOR());
|
351
|
-
_changeTargetBalance(INCREASE, instanceStore, distributorNftId, amount, feeAmount);
|
352
|
-
}
|
353
|
-
|
354
|
-
function decreaseDistributorBalance(
|
355
|
-
InstanceStore instanceStore,
|
356
|
-
NftId distributorNftId,
|
357
|
-
Amount amount,
|
358
|
-
Amount feeAmount
|
359
|
-
)
|
360
|
-
external
|
361
|
-
virtual
|
362
|
-
// TODO re-enable once role granting is stable and fixed
|
363
|
-
// restricted()
|
364
|
-
{
|
365
|
-
_checkNftType(distributorNftId, DISTRIBUTOR());
|
366
|
-
_changeTargetBalance(DECREASE, instanceStore, distributorNftId, amount, feeAmount);
|
367
|
-
}
|
368
|
-
|
369
358
|
//-------- oracle -------------------------------------------------------//
|
370
359
|
|
371
360
|
function _registerOracle(address oracleAddress)
|
@@ -379,7 +368,7 @@ contract ComponentService is
|
|
379
368
|
InstanceStore instanceStore;
|
380
369
|
NftId productNftId;
|
381
370
|
|
382
|
-
(instanceReader, instanceAdmin, instanceStore, productNftId, oracleNftId) =_register(
|
371
|
+
(instanceReader, instanceAdmin, instanceStore, productNftId, oracleNftId) = _register(
|
383
372
|
oracleAddress,
|
384
373
|
ORACLE());
|
385
374
|
|
@@ -415,7 +404,7 @@ contract ComponentService is
|
|
415
404
|
InstanceStore instanceStore;
|
416
405
|
NftId productNftId;
|
417
406
|
|
418
|
-
(instanceReader, instanceAdmin, instanceStore, productNftId, poolNftId) =_register(
|
407
|
+
(instanceReader, instanceAdmin, instanceStore, productNftId, poolNftId) = _register(
|
419
408
|
poolAddress,
|
420
409
|
POOL());
|
421
410
|
|
@@ -448,124 +437,39 @@ contract ComponentService is
|
|
448
437
|
external
|
449
438
|
virtual
|
450
439
|
{
|
451
|
-
(NftId poolNftId
|
452
|
-
|
440
|
+
(NftId poolNftId, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
441
|
+
|
442
|
+
(NftId productNftId, IComponents.FeeInfo memory feeInfo) = _getLinkedFeeInfo(
|
453
443
|
instance.getInstanceReader(), poolNftId);
|
454
444
|
bool feesChanged = false;
|
455
445
|
|
456
446
|
// update pool fee if required
|
457
|
-
if(!FeeLib.eq(
|
458
|
-
_logUpdateFee(productNftId, "PoolFee",
|
459
|
-
|
447
|
+
if(!FeeLib.eq(feeInfo.poolFee, poolFee)) {
|
448
|
+
_logUpdateFee(productNftId, "PoolFee", feeInfo.poolFee, poolFee);
|
449
|
+
feeInfo.poolFee = poolFee;
|
460
450
|
feesChanged = true;
|
461
451
|
}
|
462
452
|
|
463
453
|
// update staking fee if required
|
464
|
-
if(!FeeLib.eq(
|
465
|
-
_logUpdateFee(productNftId, "StakingFee",
|
466
|
-
|
454
|
+
if(!FeeLib.eq(feeInfo.stakingFee, stakingFee)) {
|
455
|
+
_logUpdateFee(productNftId, "StakingFee", feeInfo.stakingFee, stakingFee);
|
456
|
+
feeInfo.stakingFee = stakingFee;
|
467
457
|
feesChanged = true;
|
468
458
|
}
|
469
459
|
|
470
460
|
// update performance fee if required
|
471
|
-
if(!FeeLib.eq(
|
472
|
-
_logUpdateFee(productNftId, "PerformanceFee",
|
473
|
-
|
461
|
+
if(!FeeLib.eq(feeInfo.performanceFee, performanceFee)) {
|
462
|
+
_logUpdateFee(productNftId, "PerformanceFee", feeInfo.performanceFee, performanceFee);
|
463
|
+
feeInfo.performanceFee = performanceFee;
|
474
464
|
feesChanged = true;
|
475
465
|
}
|
476
466
|
|
477
467
|
if(feesChanged) {
|
478
|
-
instance.getInstanceStore().
|
468
|
+
instance.getInstanceStore().updateFee(productNftId, feeInfo);
|
479
469
|
emit LogComponentServicePoolFeesUpdated(poolNftId);
|
480
470
|
}
|
481
471
|
}
|
482
472
|
|
483
|
-
function increasePoolBalance(
|
484
|
-
InstanceStore instanceStore,
|
485
|
-
NftId poolNftId,
|
486
|
-
Amount amount,
|
487
|
-
Amount feeAmount
|
488
|
-
)
|
489
|
-
public
|
490
|
-
virtual
|
491
|
-
// TODO re-enable once role granting is stable and fixed
|
492
|
-
// restricted()
|
493
|
-
{
|
494
|
-
_checkNftType(poolNftId, POOL());
|
495
|
-
_changeTargetBalance(INCREASE, instanceStore, poolNftId, amount, feeAmount);
|
496
|
-
}
|
497
|
-
|
498
|
-
function decreasePoolBalance(
|
499
|
-
InstanceStore instanceStore,
|
500
|
-
NftId poolNftId,
|
501
|
-
Amount amount,
|
502
|
-
Amount feeAmount
|
503
|
-
)
|
504
|
-
public
|
505
|
-
virtual
|
506
|
-
// TODO re-enable once role granting is stable and fixed
|
507
|
-
// restricted()
|
508
|
-
{
|
509
|
-
_checkNftType(poolNftId, POOL());
|
510
|
-
_changeTargetBalance(DECREASE, instanceStore, poolNftId, amount, feeAmount);
|
511
|
-
}
|
512
|
-
|
513
|
-
//-------- bundle -------------------------------------------------------//
|
514
|
-
|
515
|
-
function increaseBundleBalance(
|
516
|
-
InstanceStore instanceStore,
|
517
|
-
NftId bundleNftId,
|
518
|
-
Amount amount,
|
519
|
-
Amount feeAmount
|
520
|
-
)
|
521
|
-
external
|
522
|
-
virtual
|
523
|
-
// TODO re-enable once role granting is stable and fixed
|
524
|
-
// restricted()
|
525
|
-
{
|
526
|
-
_checkNftType(bundleNftId, BUNDLE());
|
527
|
-
_changeTargetBalance(INCREASE, instanceStore, bundleNftId, amount, feeAmount);
|
528
|
-
}
|
529
|
-
|
530
|
-
function decreaseBundleBalance(
|
531
|
-
InstanceStore instanceStore,
|
532
|
-
NftId bundleNftId,
|
533
|
-
Amount amount,
|
534
|
-
Amount feeAmount
|
535
|
-
)
|
536
|
-
external
|
537
|
-
virtual
|
538
|
-
// TODO re-enable once role granting is stable and fixed
|
539
|
-
// restricted()
|
540
|
-
{
|
541
|
-
_checkNftType(bundleNftId, BUNDLE());
|
542
|
-
_changeTargetBalance(DECREASE, instanceStore, bundleNftId, amount, feeAmount);
|
543
|
-
}
|
544
|
-
|
545
|
-
|
546
|
-
//-------- internal functions ------------------------------------------//
|
547
|
-
|
548
|
-
function _changeTargetBalance(
|
549
|
-
bool increase,
|
550
|
-
InstanceStore instanceStore,
|
551
|
-
NftId targetNftId,
|
552
|
-
Amount amount,
|
553
|
-
Amount feeAmount
|
554
|
-
)
|
555
|
-
internal
|
556
|
-
virtual
|
557
|
-
{
|
558
|
-
Amount totalAmount = amount + feeAmount;
|
559
|
-
|
560
|
-
if(increase) {
|
561
|
-
if(totalAmount.gtz()) { instanceStore.increaseBalance(targetNftId, totalAmount); }
|
562
|
-
if(feeAmount.gtz()) { instanceStore.increaseFees(targetNftId, feeAmount); }
|
563
|
-
} else {
|
564
|
-
if(totalAmount.gtz()) { instanceStore.decreaseBalance(targetNftId, totalAmount); }
|
565
|
-
if(feeAmount.gtz()) { instanceStore.decreaseFees(targetNftId, feeAmount); }
|
566
|
-
}
|
567
|
-
}
|
568
|
-
|
569
473
|
/// @dev Registers the component represented by the provided address.
|
570
474
|
function _register(
|
571
475
|
address componentAddress, // address of component to register
|
@@ -615,9 +519,11 @@ contract ComponentService is
|
|
615
519
|
IComponents.ComponentInfo memory componentInfo = component.getInitialComponentInfo();
|
616
520
|
IERC20Metadata token = componentInfo.token;
|
617
521
|
componentInfo.tokenHandler = TokenHandlerDeployerLib.deployTokenHandler(
|
522
|
+
address(getRegistry()),
|
523
|
+
address(component), // initially, component is its own wallet
|
618
524
|
address(token),
|
619
525
|
address(instanceAdmin.authority()));
|
620
|
-
|
526
|
+
|
621
527
|
// register component with instance
|
622
528
|
instanceStore.createComponent(
|
623
529
|
componentNftId,
|
@@ -645,7 +551,7 @@ contract ComponentService is
|
|
645
551
|
}
|
646
552
|
|
647
553
|
|
648
|
-
function
|
554
|
+
function _getLinkedFeeInfo(
|
649
555
|
InstanceReader instanceReader,
|
650
556
|
NftId componentNftId
|
651
557
|
)
|
@@ -653,11 +559,11 @@ contract ComponentService is
|
|
653
559
|
view
|
654
560
|
returns(
|
655
561
|
NftId productNftId,
|
656
|
-
IComponents.
|
562
|
+
IComponents.FeeInfo memory info
|
657
563
|
)
|
658
564
|
{
|
659
|
-
productNftId =
|
660
|
-
info = instanceReader.
|
565
|
+
productNftId = getRegistry().getObjectInfo(componentNftId).parentNftId;
|
566
|
+
info = instanceReader.getFeeInfo(productNftId);
|
661
567
|
}
|
662
568
|
|
663
569
|
|
@@ -735,11 +641,60 @@ contract ComponentService is
|
|
735
641
|
|
736
642
|
// get initial owner and instance
|
737
643
|
initialOwner = info.initialOwner;
|
738
|
-
instance =
|
644
|
+
instance = IInstance(registry.getObjectAddress(instanceNftId));
|
739
645
|
}
|
740
646
|
|
647
|
+
function _setLocked(InstanceAdmin instanceAdmin, address componentAddress, bool locked) internal {
|
648
|
+
instanceAdmin.setTargetLocked(componentAddress, locked);
|
649
|
+
}
|
650
|
+
|
651
|
+
function _getAndVerifyActiveComponent(ObjectType expectedType)
|
652
|
+
internal
|
653
|
+
view
|
654
|
+
returns (
|
655
|
+
NftId componentNftId,
|
656
|
+
IInstance instance
|
657
|
+
)
|
658
|
+
{
|
659
|
+
return _getAndVerifyComponent(expectedType, true); // only active
|
660
|
+
}
|
661
|
+
|
662
|
+
function _getAndVerifyComponent(ObjectType expectedType, bool isActive)
|
663
|
+
internal
|
664
|
+
view
|
665
|
+
returns (
|
666
|
+
NftId componentNftId,
|
667
|
+
IInstance instance
|
668
|
+
)
|
669
|
+
{
|
670
|
+
IRegistry.ObjectInfo memory info;
|
671
|
+
address instanceAddress;
|
672
|
+
|
673
|
+
if (expectedType != COMPONENT()) {
|
674
|
+
(info, instanceAddress) = ContractLib.getAndVerifyComponent(
|
675
|
+
getRegistry(),
|
676
|
+
msg.sender, // caller
|
677
|
+
expectedType,
|
678
|
+
isActive);
|
679
|
+
} else {
|
680
|
+
(info, instanceAddress) = ContractLib.getAndVerifyAnyComponent(
|
681
|
+
getRegistry(),
|
682
|
+
msg.sender,
|
683
|
+
isActive);
|
684
|
+
}
|
685
|
+
|
686
|
+
// get component nft id and instance
|
687
|
+
componentNftId = info.nftId;
|
688
|
+
instance = IInstance(instanceAddress);
|
689
|
+
}
|
741
690
|
|
742
691
|
function _getDomain() internal pure virtual override returns(ObjectType) {
|
743
692
|
return COMPONENT();
|
744
693
|
}
|
694
|
+
|
695
|
+
function _checkSupportsInterface(address component) internal view {
|
696
|
+
if (!ContractLib.supportsInterface(component, type(IInstanceLinkedComponent).interfaceId)) {
|
697
|
+
revert ErrorComponentServiceNotInstanceLinkedComponent(component);
|
698
|
+
}
|
699
|
+
}
|
745
700
|
}
|
@@ -17,7 +17,7 @@ contract ComponentServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
ComponentService svc = new ComponentService();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|