@etherisc/gif-next 0.0.2-e20063b-144 → 0.0.2-e2a1510-528
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 +48 -5
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1518 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +214 -363
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1557 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +854 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +213 -239
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +157 -302
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +227 -2186
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +198 -74
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +433 -2805
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +624 -353
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +263 -243
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -119
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3469 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- 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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +190 -218
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1055 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +296 -240
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1534 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +842 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +288 -47
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +223 -341
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +475 -106
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1218 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1652 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +774 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +393 -280
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +512 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +252 -82
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +150 -282
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +63 -141
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +985 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +11 -61
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1300 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1238 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
- 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 +182 -28
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -125
- 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 +443 -43
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +367 -73
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +138 -122
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1712 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +820 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +27 -95
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +110 -84
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +737 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +17 -6
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +977 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +17 -6
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +107 -6
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +470 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1991 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +773 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +222 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/{components → distribution}/Distribution.sol +172 -161
- package/contracts/distribution/DistributionService.sol +336 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +52 -0
- package/contracts/{instance/service → distribution}/IDistributionService.sol +36 -38
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +27 -27
- package/contracts/instance/IInstance.sol +54 -70
- package/contracts/instance/IInstanceService.sol +51 -27
- package/contracts/instance/Instance.sol +151 -207
- package/contracts/instance/InstanceAdmin.sol +266 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +148 -60
- package/contracts/instance/InstanceService.sol +282 -317
- package/contracts/instance/InstanceServiceManager.sol +12 -26
- package/contracts/instance/InstanceStore.sol +277 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
- package/contracts/instance/module/IAccess.sol +4 -12
- package/contracts/instance/module/IBundle.sol +6 -9
- package/contracts/instance/module/IComponents.sol +20 -14
- package/contracts/instance/module/IDistribution.sol +6 -6
- package/contracts/instance/module/IPolicy.sol +22 -15
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +166 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +437 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +58 -21
- package/contracts/pool/IPoolComponent.sol +58 -0
- package/contracts/pool/IPoolService.sol +149 -0
- package/contracts/pool/Pool.sol +328 -0
- package/contracts/pool/PoolService.sol +525 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +230 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
- package/contracts/product/BasicProduct.sol +52 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +417 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
- package/contracts/product/IClaimService.sol +99 -0
- package/contracts/product/IPolicyService.sol +84 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +40 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +529 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +300 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/{components → product}/Product.sol +171 -131
- package/contracts/product/ProductService.sol +99 -0
- package/contracts/product/ProductServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +59 -26
- package/contracts/registry/IRegistryService.sol +42 -41
- package/contracts/registry/Registry.sol +234 -125
- package/contracts/registry/RegistryAdmin.sol +365 -0
- package/contracts/registry/RegistryService.sol +69 -99
- package/contracts/registry/RegistryServiceManager.sol +23 -32
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +280 -0
- package/contracts/shared/ComponentService.sol +650 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/{components → shared}/IComponent.sol +27 -32
- package/contracts/shared/IComponentService.sol +108 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- package/contracts/shared/INftOwnable.sol +2 -2
- package/contracts/shared/IPolicyHolder.sol +29 -10
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +12 -3
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +172 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +77 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +5 -18
- package/contracts/shared/PolicyHolder.sol +41 -23
- package/contracts/shared/Registerable.sol +13 -12
- package/contracts/shared/RegistryLinked.sol +0 -5
- package/contracts/shared/Service.sol +32 -22
- package/contracts/shared/TokenHandler.sol +31 -2
- package/contracts/staking/IStaking.sol +167 -0
- package/contracts/staking/IStakingService.sol +160 -0
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +516 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +50 -0
- package/contracts/staking/StakingReader.sol +183 -0
- package/contracts/staking/StakingService.sol +407 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +135 -0
- package/contracts/{types → type}/Blocknumber.sol +26 -3
- package/contracts/{types → type}/Fee.sol +24 -22
- package/contracts/{types → type}/NftId.sol +14 -16
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +271 -0
- package/contracts/{types → type}/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +174 -0
- package/contracts/{types → type}/Seconds.sol +40 -1
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +27 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +17 -3
- package/contracts/{types → type}/UFixed.sol +34 -9
- package/contracts/{types → type}/Version.sol +4 -2
- package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
- package/package.json +8 -5
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1060
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1266
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1511
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -559
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
- package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -185
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -179
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -209
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
- package/contracts/components/Component.sol +0 -253
- package/contracts/components/IDistributionComponent.sol +0 -71
- package/contracts/components/IPoolComponent.sol +0 -113
- package/contracts/components/IProductComponent.sol +0 -40
- package/contracts/components/Pool.sol +0 -302
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/instance/Cloneable.sol +0 -51
- package/contracts/instance/InstanceAccessManager.sol +0 -527
- package/contracts/instance/base/ComponentService.sol +0 -121
- package/contracts/instance/base/KeyValueStore.sol +0 -180
- package/contracts/instance/base/Lifecycle.sol +0 -117
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -355
- package/contracts/instance/service/BundleService.sol +0 -436
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -239
- package/contracts/instance/service/DistributionService.sol +0 -431
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IClaimService.sol +0 -92
- package/contracts/instance/service/IPolicyService.sol +0 -137
- package/contracts/instance/service/IPoolService.sol +0 -99
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -541
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -303
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -210
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/registry/ReleaseManager.sol +0 -324
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/Amount.sol +0 -65
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -157
- package/contracts/types/RoleId.sol +0 -97
- /package/contracts/{types → type}/ClaimId.sol +0 -0
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/PayoutId.sol +0 -0
@@ -0,0 +1,650 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
6
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
7
|
+
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
8
|
+
import {Fee, FeeLib} from "../type/Fee.sol";
|
9
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
10
|
+
import {IComponentService} from "./IComponentService.sol";
|
11
|
+
import {IInstance} from "../instance/IInstance.sol";
|
12
|
+
import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
13
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
14
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
15
|
+
import {IInstanceService} from "../instance/IInstanceService.sol";
|
16
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
17
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
18
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
19
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
20
|
+
import {KEEP_STATE} from "../type/StateId.sol";
|
21
|
+
import {NftId} from "../type/NftId.sol";
|
22
|
+
import {ObjectType, REGISTRY, COMPONENT, DISTRIBUTION, INSTANCE, ORACLE, POOL, PRODUCT} from "../type/ObjectType.sol";
|
23
|
+
import {RoleId, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
|
24
|
+
import {TokenHandler} from "./TokenHandler.sol";
|
25
|
+
|
26
|
+
contract ComponentService is
|
27
|
+
ComponentVerifyingService,
|
28
|
+
IComponentService
|
29
|
+
{
|
30
|
+
error ErrorComponentServiceAlreadyRegistered(address component);
|
31
|
+
error ErrorComponentServiceNotComponent(address component);
|
32
|
+
error ErrorComponentServiceInvalidType(address component, ObjectType requiredType, ObjectType componentType);
|
33
|
+
error ErrorComponentServiceSenderNotOwner(address component, address initialOwner, address sender);
|
34
|
+
error ErrorComponentServiceExpectedRoleMissing(NftId instanceNftId, RoleId requiredRole, address sender);
|
35
|
+
error ErrorComponentServiceComponentLocked(address component);
|
36
|
+
error ErrorComponentServiceSenderNotService(address sender);
|
37
|
+
error ErrorComponentServiceComponentTypeInvalid(address component, ObjectType expectedType, ObjectType foundType);
|
38
|
+
|
39
|
+
bool private constant INCREASE = true;
|
40
|
+
bool private constant DECREASE = false;
|
41
|
+
|
42
|
+
IRegistryService private _registryService;
|
43
|
+
IInstanceService private _instanceService;
|
44
|
+
|
45
|
+
function _initialize(
|
46
|
+
address owner,
|
47
|
+
bytes memory data
|
48
|
+
)
|
49
|
+
internal
|
50
|
+
virtual override
|
51
|
+
initializer()
|
52
|
+
{
|
53
|
+
// TODO check this, might no longer be the way, refactor if necessary
|
54
|
+
address registryAddress;
|
55
|
+
address initialOwner;
|
56
|
+
(registryAddress, initialOwner) = abi.decode(data, (address, address));
|
57
|
+
|
58
|
+
initializeService(registryAddress, address(0), owner);
|
59
|
+
|
60
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
61
|
+
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
62
|
+
|
63
|
+
registerInterface(type(IComponentService).interfaceId);
|
64
|
+
}
|
65
|
+
|
66
|
+
//-------- component ----------------------------------------------------//
|
67
|
+
|
68
|
+
function setWallet(address newWallet) external virtual {
|
69
|
+
(NftId componentNftId,, IInstance instance) = _getAndVerifyActiveComponent(COMPONENT());
|
70
|
+
IComponents.ComponentInfo memory info = instance.getInstanceReader().getComponentInfo(componentNftId);
|
71
|
+
address currentWallet = info.wallet;
|
72
|
+
|
73
|
+
if (newWallet == address(0)) {
|
74
|
+
revert ErrorComponentServiceNewWalletAddressZero();
|
75
|
+
}
|
76
|
+
|
77
|
+
if (currentWallet == address(0)) {
|
78
|
+
revert ErrorComponentServiceWalletAddressZero();
|
79
|
+
}
|
80
|
+
|
81
|
+
if (newWallet == currentWallet) {
|
82
|
+
revert ErrorComponentServiceWalletAddressIsSameAsCurrent();
|
83
|
+
}
|
84
|
+
|
85
|
+
info.wallet = newWallet;
|
86
|
+
instance.getInstanceStore().updateComponent(componentNftId, info, KEEP_STATE());
|
87
|
+
emit LogComponentServiceWalletAddressChanged(componentNftId, currentWallet, newWallet);
|
88
|
+
}
|
89
|
+
|
90
|
+
// TODO implement
|
91
|
+
function lock() external virtual {}
|
92
|
+
|
93
|
+
// TODO implement
|
94
|
+
function unlock() external virtual {}
|
95
|
+
|
96
|
+
function withdrawFees(Amount amount)
|
97
|
+
external
|
98
|
+
virtual
|
99
|
+
returns (Amount withdrawnAmount)
|
100
|
+
{
|
101
|
+
(NftId componentNftId,, IInstance instance) = _getAndVerifyActiveComponent(COMPONENT());
|
102
|
+
IComponents.ComponentInfo memory info = instance.getInstanceReader().getComponentInfo(componentNftId);
|
103
|
+
address componentWallet = info.wallet;
|
104
|
+
|
105
|
+
// determine withdrawn amount
|
106
|
+
withdrawnAmount = amount;
|
107
|
+
if (withdrawnAmount.gte(AmountLib.max())) {
|
108
|
+
withdrawnAmount = instance.getInstanceReader().getFeeAmount(componentNftId);
|
109
|
+
} else if (withdrawnAmount.eqz()) {
|
110
|
+
revert ErrorComponentServiceWithdrawAmountIsZero();
|
111
|
+
} else {
|
112
|
+
Amount withdrawLimit = instance.getInstanceReader().getFeeAmount(componentNftId);
|
113
|
+
if (withdrawnAmount.gt(withdrawLimit)) {
|
114
|
+
revert ErrorComponentServiceWithdrawAmountExceedsLimit(withdrawnAmount, withdrawLimit);
|
115
|
+
}
|
116
|
+
}
|
117
|
+
|
118
|
+
// check allowance
|
119
|
+
TokenHandler tokenHandler = info.tokenHandler;
|
120
|
+
IERC20Metadata token = IERC20Metadata(info.token);
|
121
|
+
uint256 tokenAllowance = token.allowance(componentWallet, address(tokenHandler));
|
122
|
+
if (tokenAllowance < withdrawnAmount.toInt()) {
|
123
|
+
revert ErrorComponentServiceWalletAllowanceTooSmall(componentWallet, address(tokenHandler), tokenAllowance, withdrawnAmount.toInt());
|
124
|
+
}
|
125
|
+
|
126
|
+
// decrease fee counters by withdrawnAmount
|
127
|
+
_changeTargetBalance(DECREASE, instance.getInstanceStore(), componentNftId, AmountLib.zero(), withdrawnAmount);
|
128
|
+
|
129
|
+
// transfer amount to component owner
|
130
|
+
address componentOwner = getRegistry().ownerOf(componentNftId);
|
131
|
+
emit LogComponentServiceComponentFeesWithdrawn(componentNftId, componentOwner, address(token), withdrawnAmount);
|
132
|
+
// TODO: centralize token handling (issue #471)
|
133
|
+
tokenHandler.transfer(componentWallet, componentOwner, withdrawnAmount);
|
134
|
+
}
|
135
|
+
|
136
|
+
|
137
|
+
//-------- product ------------------------------------------------------//
|
138
|
+
|
139
|
+
function registerProduct()
|
140
|
+
external
|
141
|
+
virtual
|
142
|
+
{
|
143
|
+
address contractAddress = msg.sender;
|
144
|
+
|
145
|
+
// register/create component setup
|
146
|
+
(
|
147
|
+
InstanceReader instanceReader,
|
148
|
+
InstanceStore instanceStore,
|
149
|
+
NftId productNftId
|
150
|
+
) = _register(
|
151
|
+
contractAddress,
|
152
|
+
PRODUCT(),
|
153
|
+
PRODUCT_OWNER_ROLE());
|
154
|
+
|
155
|
+
// create product info
|
156
|
+
IComponents.ProductInfo memory productInfo = IProductComponent(contractAddress).getInitialProductInfo();
|
157
|
+
instanceStore.createProduct(productNftId, productInfo);
|
158
|
+
|
159
|
+
// link distribution and pool to product
|
160
|
+
_linkToProduct(instanceReader, instanceStore, productInfo.distributionNftId, productNftId);
|
161
|
+
_linkToProduct(instanceReader, instanceStore, productInfo.poolNftId, productNftId);
|
162
|
+
}
|
163
|
+
|
164
|
+
|
165
|
+
function setProductFees(
|
166
|
+
Fee memory productFee, // product fee on net premium
|
167
|
+
Fee memory processingFee // product fee on payout amounts
|
168
|
+
)
|
169
|
+
external
|
170
|
+
virtual
|
171
|
+
{
|
172
|
+
(NftId productNftId,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
173
|
+
IComponents.ProductInfo memory productInfo = instance.getInstanceReader().getProductInfo(productNftId);
|
174
|
+
bool feesChanged = false;
|
175
|
+
|
176
|
+
// update product fee if required
|
177
|
+
if(!FeeLib.eq(productInfo.productFee, productFee)) {
|
178
|
+
_logUpdateFee(productNftId, "ProductFee", productInfo.productFee, productFee);
|
179
|
+
productInfo.productFee = productFee;
|
180
|
+
feesChanged = true;
|
181
|
+
}
|
182
|
+
|
183
|
+
// update processing fee if required
|
184
|
+
if(!FeeLib.eq(productInfo.processingFee, processingFee)) {
|
185
|
+
_logUpdateFee(productNftId, "ProcessingFee", productInfo.processingFee, processingFee);
|
186
|
+
productInfo.processingFee = processingFee;
|
187
|
+
feesChanged = true;
|
188
|
+
}
|
189
|
+
|
190
|
+
if(feesChanged) {
|
191
|
+
instance.getInstanceStore().updateProduct(productNftId, productInfo, KEEP_STATE());
|
192
|
+
emit LogComponentServiceProductFeesUpdated(productNftId);
|
193
|
+
}
|
194
|
+
}
|
195
|
+
|
196
|
+
function increaseProductFees(
|
197
|
+
InstanceStore instanceStore,
|
198
|
+
NftId productNftId,
|
199
|
+
Amount feeAmount
|
200
|
+
)
|
201
|
+
external
|
202
|
+
virtual
|
203
|
+
// TODO re-enable once role granting is stable and fixed
|
204
|
+
// restricted()
|
205
|
+
{
|
206
|
+
_changeTargetBalance(INCREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
|
207
|
+
}
|
208
|
+
|
209
|
+
|
210
|
+
function decreaseProductFees(InstanceStore instanceStore, NftId productNftId, Amount feeAmount)
|
211
|
+
external
|
212
|
+
virtual
|
213
|
+
// TODO re-enable once role granting is stable and fixed
|
214
|
+
// restricted()
|
215
|
+
{
|
216
|
+
_changeTargetBalance(DECREASE, instanceStore, productNftId, AmountLib.zero(), feeAmount);
|
217
|
+
}
|
218
|
+
|
219
|
+
//-------- distribution -------------------------------------------------//
|
220
|
+
|
221
|
+
/// @dev registers the sending component as a distribution component
|
222
|
+
function registerDistribution()
|
223
|
+
external
|
224
|
+
virtual
|
225
|
+
{
|
226
|
+
address contractAddress = msg.sender;
|
227
|
+
|
228
|
+
// register/create component info
|
229
|
+
_register(
|
230
|
+
contractAddress,
|
231
|
+
DISTRIBUTION(),
|
232
|
+
DISTRIBUTION_OWNER_ROLE());
|
233
|
+
}
|
234
|
+
|
235
|
+
|
236
|
+
function setDistributionFees(
|
237
|
+
Fee memory distributionFee, // distribution fee for sales that do not include commissions
|
238
|
+
Fee memory minDistributionOwnerFee // min fee required by distribution owner (not including commissions for distributors)
|
239
|
+
)
|
240
|
+
external
|
241
|
+
virtual
|
242
|
+
{
|
243
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
244
|
+
(NftId productNftId, IComponents.ProductInfo memory productInfo) = _getLinkedProductInfo(
|
245
|
+
instance.getInstanceReader(), distributionNftId);
|
246
|
+
bool feesChanged = false;
|
247
|
+
|
248
|
+
// update distributino fee if required
|
249
|
+
if(!FeeLib.eq(productInfo.distributionFee, distributionFee)) {
|
250
|
+
_logUpdateFee(productNftId, "DistributionFee", productInfo.distributionFee, distributionFee);
|
251
|
+
productInfo.distributionFee = distributionFee;
|
252
|
+
feesChanged = true;
|
253
|
+
}
|
254
|
+
|
255
|
+
// update min distribution owner fee if required
|
256
|
+
if(!FeeLib.eq(productInfo.minDistributionOwnerFee, minDistributionOwnerFee)) {
|
257
|
+
_logUpdateFee(productNftId, "MinDistributionOwnerFee", productInfo.minDistributionOwnerFee, minDistributionOwnerFee);
|
258
|
+
productInfo.minDistributionOwnerFee = minDistributionOwnerFee;
|
259
|
+
feesChanged = true;
|
260
|
+
}
|
261
|
+
|
262
|
+
if(feesChanged) {
|
263
|
+
instance.getInstanceStore().updateProduct(productNftId, productInfo, KEEP_STATE());
|
264
|
+
emit LogComponentServiceDistributionFeesUpdated(distributionNftId);
|
265
|
+
}
|
266
|
+
}
|
267
|
+
|
268
|
+
function increaseDistributionBalance(
|
269
|
+
InstanceStore instanceStore,
|
270
|
+
NftId distributionNftId,
|
271
|
+
Amount amount,
|
272
|
+
Amount feeAmount
|
273
|
+
)
|
274
|
+
external
|
275
|
+
virtual
|
276
|
+
// TODO re-enable once role granting is stable and fixed
|
277
|
+
// restricted()
|
278
|
+
{
|
279
|
+
_changeTargetBalance(INCREASE, instanceStore, distributionNftId, amount, feeAmount);
|
280
|
+
}
|
281
|
+
|
282
|
+
|
283
|
+
function decreaseDistributionBalance(
|
284
|
+
InstanceStore instanceStore,
|
285
|
+
NftId distributionNftId,
|
286
|
+
Amount amount,
|
287
|
+
Amount feeAmount
|
288
|
+
)
|
289
|
+
external
|
290
|
+
virtual
|
291
|
+
// TODO re-enable once role granting is stable and fixed
|
292
|
+
// restricted()
|
293
|
+
{
|
294
|
+
_changeTargetBalance(DECREASE, instanceStore, distributionNftId, amount, feeAmount);
|
295
|
+
}
|
296
|
+
|
297
|
+
//-------- distributor -------------------------------------------------------//
|
298
|
+
|
299
|
+
function increaseDistributorBalance(
|
300
|
+
InstanceStore instanceStore,
|
301
|
+
NftId distributorNftId,
|
302
|
+
Amount amount,
|
303
|
+
Amount feeAmount
|
304
|
+
)
|
305
|
+
external
|
306
|
+
virtual
|
307
|
+
// TODO re-enable once role granting is stable and fixed
|
308
|
+
// restricted()
|
309
|
+
{
|
310
|
+
_changeTargetBalance(INCREASE, instanceStore, distributorNftId, amount, feeAmount);
|
311
|
+
}
|
312
|
+
|
313
|
+
function decreaseDistributorBalance(
|
314
|
+
InstanceStore instanceStore,
|
315
|
+
NftId distributorNftId,
|
316
|
+
Amount amount,
|
317
|
+
Amount feeAmount
|
318
|
+
)
|
319
|
+
external
|
320
|
+
virtual
|
321
|
+
// TODO re-enable once role granting is stable and fixed
|
322
|
+
// restricted()
|
323
|
+
{
|
324
|
+
_changeTargetBalance(DECREASE, instanceStore, distributorNftId, amount, feeAmount);
|
325
|
+
}
|
326
|
+
|
327
|
+
//-------- oracle -------------------------------------------------------//
|
328
|
+
|
329
|
+
function registerOracle()
|
330
|
+
external
|
331
|
+
virtual
|
332
|
+
{
|
333
|
+
address contractAddress = msg.sender;
|
334
|
+
|
335
|
+
// register/create component setup
|
336
|
+
(
|
337
|
+
, // instance reader
|
338
|
+
InstanceStore instanceStore,
|
339
|
+
NftId componentNftId
|
340
|
+
) = _register(
|
341
|
+
contractAddress,
|
342
|
+
ORACLE(),
|
343
|
+
ORACLE_OWNER_ROLE());
|
344
|
+
}
|
345
|
+
|
346
|
+
//-------- pool ---------------------------------------------------------//
|
347
|
+
|
348
|
+
function registerPool()
|
349
|
+
external
|
350
|
+
virtual
|
351
|
+
{
|
352
|
+
address contractAddress = msg.sender;
|
353
|
+
|
354
|
+
// register/create component setup
|
355
|
+
(
|
356
|
+
, // instance reader
|
357
|
+
InstanceStore instanceStore,
|
358
|
+
NftId componentNftId
|
359
|
+
) = _register(
|
360
|
+
contractAddress,
|
361
|
+
POOL(),
|
362
|
+
POOL_OWNER_ROLE());
|
363
|
+
|
364
|
+
// create info
|
365
|
+
instanceStore.createPool(
|
366
|
+
componentNftId,
|
367
|
+
IPoolComponent(
|
368
|
+
contractAddress).getInitialPoolInfo());
|
369
|
+
}
|
370
|
+
|
371
|
+
|
372
|
+
function setPoolFees(
|
373
|
+
Fee memory poolFee, // pool fee on net premium
|
374
|
+
Fee memory stakingFee, // pool fee on staked capital from investor
|
375
|
+
Fee memory performanceFee // pool fee on profits from capital investors
|
376
|
+
)
|
377
|
+
external
|
378
|
+
virtual
|
379
|
+
{
|
380
|
+
(NftId poolNftId,, IInstance instance) = _getAndVerifyActiveComponent(POOL());
|
381
|
+
(NftId productNftId, IComponents.ProductInfo memory productInfo) = _getLinkedProductInfo(
|
382
|
+
instance.getInstanceReader(), poolNftId);
|
383
|
+
bool feesChanged = false;
|
384
|
+
|
385
|
+
// update pool fee if required
|
386
|
+
if(!FeeLib.eq(productInfo.poolFee, poolFee)) {
|
387
|
+
_logUpdateFee(productNftId, "PoolFee", productInfo.poolFee, poolFee);
|
388
|
+
productInfo.poolFee = poolFee;
|
389
|
+
feesChanged = true;
|
390
|
+
}
|
391
|
+
|
392
|
+
// update staking fee if required
|
393
|
+
if(!FeeLib.eq(productInfo.stakingFee, stakingFee)) {
|
394
|
+
_logUpdateFee(productNftId, "StakingFee", productInfo.stakingFee, stakingFee);
|
395
|
+
productInfo.stakingFee = stakingFee;
|
396
|
+
feesChanged = true;
|
397
|
+
}
|
398
|
+
|
399
|
+
// update performance fee if required
|
400
|
+
if(!FeeLib.eq(productInfo.performanceFee, performanceFee)) {
|
401
|
+
_logUpdateFee(productNftId, "PerformanceFee", productInfo.performanceFee, performanceFee);
|
402
|
+
productInfo.performanceFee = performanceFee;
|
403
|
+
feesChanged = true;
|
404
|
+
}
|
405
|
+
|
406
|
+
if(feesChanged) {
|
407
|
+
instance.getInstanceStore().updateProduct(productNftId, productInfo, KEEP_STATE());
|
408
|
+
emit LogComponentServicePoolFeesUpdated(poolNftId);
|
409
|
+
}
|
410
|
+
}
|
411
|
+
|
412
|
+
function increasePoolBalance(
|
413
|
+
InstanceStore instanceStore,
|
414
|
+
NftId poolNftId,
|
415
|
+
Amount amount,
|
416
|
+
Amount feeAmount
|
417
|
+
)
|
418
|
+
public
|
419
|
+
virtual
|
420
|
+
// TODO re-enable once role granting is stable and fixed
|
421
|
+
// restricted()
|
422
|
+
{
|
423
|
+
_changeTargetBalance(INCREASE, instanceStore, poolNftId, amount, feeAmount);
|
424
|
+
}
|
425
|
+
|
426
|
+
function decreasePoolBalance(
|
427
|
+
InstanceStore instanceStore,
|
428
|
+
NftId poolNftId,
|
429
|
+
Amount amount,
|
430
|
+
Amount feeAmount
|
431
|
+
)
|
432
|
+
public
|
433
|
+
virtual
|
434
|
+
// TODO re-enable once role granting is stable and fixed
|
435
|
+
// restricted()
|
436
|
+
{
|
437
|
+
_changeTargetBalance(DECREASE, instanceStore, poolNftId, amount, feeAmount);
|
438
|
+
}
|
439
|
+
|
440
|
+
//-------- bundle -------------------------------------------------------//
|
441
|
+
|
442
|
+
function increaseBundleBalance(
|
443
|
+
InstanceStore instanceStore,
|
444
|
+
NftId bundleNftId,
|
445
|
+
Amount amount,
|
446
|
+
Amount feeAmount
|
447
|
+
)
|
448
|
+
external
|
449
|
+
virtual
|
450
|
+
// TODO re-enable once role granting is stable and fixed
|
451
|
+
// restricted()
|
452
|
+
{
|
453
|
+
_changeTargetBalance(INCREASE, instanceStore, bundleNftId, amount, feeAmount);
|
454
|
+
}
|
455
|
+
|
456
|
+
function decreaseBundleBalance(
|
457
|
+
InstanceStore instanceStore,
|
458
|
+
NftId bundleNftId,
|
459
|
+
Amount amount,
|
460
|
+
Amount feeAmount
|
461
|
+
)
|
462
|
+
external
|
463
|
+
virtual
|
464
|
+
// TODO re-enable once role granting is stable and fixed
|
465
|
+
// restricted()
|
466
|
+
{
|
467
|
+
_changeTargetBalance(DECREASE, instanceStore, bundleNftId, amount, feeAmount);
|
468
|
+
}
|
469
|
+
|
470
|
+
|
471
|
+
//-------- internal functions ------------------------------------------//
|
472
|
+
|
473
|
+
function _changeTargetBalance(
|
474
|
+
bool increase,
|
475
|
+
InstanceStore instanceStore,
|
476
|
+
NftId targetNftId,
|
477
|
+
Amount amount,
|
478
|
+
Amount feeAmount
|
479
|
+
)
|
480
|
+
internal
|
481
|
+
virtual
|
482
|
+
{
|
483
|
+
Amount totalAmount = amount + feeAmount;
|
484
|
+
|
485
|
+
if(increase) {
|
486
|
+
if(totalAmount.gtz()) { instanceStore.increaseBalance(targetNftId, totalAmount); }
|
487
|
+
if(feeAmount.gtz()) { instanceStore.increaseFees(targetNftId, feeAmount); }
|
488
|
+
} else {
|
489
|
+
if(totalAmount.gtz()) { instanceStore.decreaseBalance(targetNftId, totalAmount); }
|
490
|
+
if(feeAmount.gtz()) { instanceStore.decreaseFees(targetNftId, feeAmount); }
|
491
|
+
}
|
492
|
+
}
|
493
|
+
|
494
|
+
/// @dev registers the component represented by the provided address
|
495
|
+
function _register(
|
496
|
+
address componentAddress, // address of component to register
|
497
|
+
ObjectType requiredType, // required type for component for registration
|
498
|
+
RoleId requiredRole // role required for comonent owner for registration
|
499
|
+
)
|
500
|
+
internal
|
501
|
+
virtual
|
502
|
+
returns (
|
503
|
+
InstanceReader instanceReader,
|
504
|
+
InstanceStore instanceStore,
|
505
|
+
NftId componentNftId
|
506
|
+
)
|
507
|
+
{
|
508
|
+
(
|
509
|
+
IInstance instance,
|
510
|
+
IInstanceLinkedComponent component,
|
511
|
+
address owner
|
512
|
+
) = _getAndVerifyRegisterableComponent(
|
513
|
+
componentAddress,
|
514
|
+
requiredType,
|
515
|
+
requiredRole);
|
516
|
+
|
517
|
+
// register component with registry
|
518
|
+
componentNftId = _registryService.registerComponent(
|
519
|
+
component,
|
520
|
+
requiredType,
|
521
|
+
owner).nftId;
|
522
|
+
|
523
|
+
component.linkToRegisteredNftId();
|
524
|
+
|
525
|
+
// setup initial component authorization
|
526
|
+
_instanceService.initializeAuthorization(
|
527
|
+
instance.getNftId(),
|
528
|
+
component);
|
529
|
+
|
530
|
+
// save amended component info with instance
|
531
|
+
instanceReader = instance.getInstanceReader();
|
532
|
+
instanceStore = instance.getInstanceStore();
|
533
|
+
|
534
|
+
IComponents.ComponentInfo memory componentInfo = component.getComponentInfo();
|
535
|
+
componentInfo.tokenHandler = new TokenHandler(address(componentInfo.token));
|
536
|
+
|
537
|
+
instanceStore.createComponent(
|
538
|
+
component.getNftId(),
|
539
|
+
componentInfo);
|
540
|
+
|
541
|
+
// TODO add logging
|
542
|
+
}
|
543
|
+
|
544
|
+
|
545
|
+
/// @dev link the component info corresponding to the componentNftId to the provided productNftId
|
546
|
+
function _linkToProduct(
|
547
|
+
InstanceReader instanceReader,
|
548
|
+
InstanceStore instanceStore,
|
549
|
+
NftId componentNftId,
|
550
|
+
NftId productNftId
|
551
|
+
)
|
552
|
+
internal
|
553
|
+
{
|
554
|
+
// only link components that are registered
|
555
|
+
if(componentNftId.eqz()) {
|
556
|
+
return;
|
557
|
+
}
|
558
|
+
|
559
|
+
IComponents.ComponentInfo memory componentInfo = instanceReader.getComponentInfo(componentNftId);
|
560
|
+
componentInfo.productNftId = productNftId;
|
561
|
+
instanceStore.updateComponent(componentNftId, componentInfo, KEEP_STATE());
|
562
|
+
}
|
563
|
+
|
564
|
+
|
565
|
+
function _logUpdateFee(NftId productNftId, string memory name, Fee memory feeBefore, Fee memory feeAfter)
|
566
|
+
internal
|
567
|
+
virtual
|
568
|
+
{
|
569
|
+
emit LogComponentServiceUpdateFee(
|
570
|
+
productNftId,
|
571
|
+
name,
|
572
|
+
feeBefore.fractionalFee,
|
573
|
+
feeBefore.fixedFee,
|
574
|
+
feeAfter.fractionalFee,
|
575
|
+
feeAfter.fixedFee
|
576
|
+
);
|
577
|
+
}
|
578
|
+
|
579
|
+
|
580
|
+
function _createSelectors(bytes4 selector) internal pure returns (bytes4[] memory selectors) {
|
581
|
+
selectors = new bytes4[](1);
|
582
|
+
selectors[0] = selector;
|
583
|
+
}
|
584
|
+
|
585
|
+
|
586
|
+
function _getLinkedProductInfo(
|
587
|
+
InstanceReader instanceReader,
|
588
|
+
NftId componentNftId
|
589
|
+
)
|
590
|
+
internal
|
591
|
+
view
|
592
|
+
returns(
|
593
|
+
NftId productNftId,
|
594
|
+
IComponents.ProductInfo memory info
|
595
|
+
)
|
596
|
+
{
|
597
|
+
productNftId = instanceReader.getComponentInfo(componentNftId).productNftId;
|
598
|
+
info = instanceReader.getProductInfo(productNftId);
|
599
|
+
}
|
600
|
+
|
601
|
+
|
602
|
+
/// @dev based on the provided component address required type and role returns the component and related instance contract
|
603
|
+
/// the function reverts iff:
|
604
|
+
/// - the component has already been registered
|
605
|
+
/// - the component contract does not support IInstanceLinkedComponent
|
606
|
+
/// - the component type does not match with the required type
|
607
|
+
/// - the initial component owner misses the required role (with the instance access manager)
|
608
|
+
function _getAndVerifyRegisterableComponent(
|
609
|
+
address componentAddress,
|
610
|
+
ObjectType requiredType,
|
611
|
+
RoleId requiredRole
|
612
|
+
)
|
613
|
+
internal
|
614
|
+
view
|
615
|
+
returns (
|
616
|
+
IInstance instance,
|
617
|
+
IInstanceLinkedComponent component,
|
618
|
+
address owner
|
619
|
+
)
|
620
|
+
{
|
621
|
+
// check this is a component
|
622
|
+
component = IInstanceLinkedComponent(componentAddress);
|
623
|
+
if(!component.supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
|
624
|
+
revert ErrorComponentServiceNotComponent(componentAddress);
|
625
|
+
}
|
626
|
+
|
627
|
+
// check component is of required type
|
628
|
+
IRegistry.ObjectInfo memory info = component.getInitialInfo();
|
629
|
+
if(info.objectType != requiredType) {
|
630
|
+
revert ErrorComponentServiceInvalidType(componentAddress, requiredType, info.objectType);
|
631
|
+
}
|
632
|
+
|
633
|
+
// check component has not already been registered
|
634
|
+
if (getRegistry().getNftId(componentAddress).gtz()) {
|
635
|
+
revert ErrorComponentServiceAlreadyRegistered(componentAddress);
|
636
|
+
}
|
637
|
+
|
638
|
+
// check instance has assigned required role to inital owner
|
639
|
+
instance = _getInstance(info.parentNftId);
|
640
|
+
owner = info.initialOwner;
|
641
|
+
|
642
|
+
if(!instance.getInstanceAdmin().hasRole(owner, requiredRole)) {
|
643
|
+
revert ErrorComponentServiceExpectedRoleMissing(info.parentNftId, requiredRole, owner);
|
644
|
+
}
|
645
|
+
}
|
646
|
+
|
647
|
+
function _getDomain() internal pure virtual override returns(ObjectType) {
|
648
|
+
return COMPONENT();
|
649
|
+
}
|
650
|
+
}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {ComponentService} from "./ComponentService.sol";
|
5
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
6
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
7
|
+
|
8
|
+
contract ComponentServiceManager is ProxyManager {
|
9
|
+
|
10
|
+
ComponentService private _componentService;
|
11
|
+
|
12
|
+
/// @dev initializes proxy manager with service implementation
|
13
|
+
constructor(
|
14
|
+
address registryAddress
|
15
|
+
)
|
16
|
+
ProxyManager(registryAddress)
|
17
|
+
{
|
18
|
+
ComponentService svc = new ComponentService();
|
19
|
+
bytes memory data = abi.encode(registryAddress, address(this));
|
20
|
+
IVersionable versionable = deploy(
|
21
|
+
address(svc),
|
22
|
+
data);
|
23
|
+
|
24
|
+
_componentService = ComponentService(address(versionable));
|
25
|
+
}
|
26
|
+
|
27
|
+
//--- view functions ----------------------------------------------------//
|
28
|
+
function getComponentService()
|
29
|
+
external
|
30
|
+
view
|
31
|
+
returns (ComponentService)
|
32
|
+
{
|
33
|
+
return _componentService;
|
34
|
+
}
|
35
|
+
}
|