@etherisc/gif-next 0.0.2-fd2113c-488 → 0.0.2-fd2ea71-734
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 +49 -4
- 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/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
- 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/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +29 -10
- 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 +1489 -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 +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -303
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +214 -90
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +71 -55
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +91 -160
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +103 -16
- 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 +6 -19
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +32 -44
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +35 -96
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
- 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 +132 -140
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -125
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -59
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +90 -219
- 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 +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/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/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1126 -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 +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +43 -37
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +40 -168
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1395 -0
- 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 +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +394 -62
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +107 -43
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -289
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +194 -54
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +44 -428
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +262 -90
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +52 -36
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +33 -44
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +32 -40
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1243 -0
- 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 +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +88 -72
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +54 -54
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +16 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +188 -108
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +32 -79
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +254 -174
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +59 -43
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +63 -58
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +47 -47
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +32 -228
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +695 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.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 +50 -46
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
- 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 +101 -73
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +234 -389
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
- 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 +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +43 -16
- 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 +0 -64
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +255 -86
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +69 -61
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +32 -37
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- 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 +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +32 -128
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
- 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 +6 -6
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +0 -26
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +40 -113
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +55 -119
- 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 +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +46 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +146 -165
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +27 -22
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
- 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/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -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 +55 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- 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/{shared → authorization}/AccessAdmin.sol +135 -303
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +217 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +8 -5
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +21 -17
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +144 -110
- package/contracts/distribution/DistributionService.sol +57 -32
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +25 -39
- package/contracts/distribution/IDistributionService.sol +15 -1
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +14 -38
- package/contracts/instance/IInstanceService.sol +13 -18
- package/contracts/instance/Instance.sol +67 -101
- package/contracts/instance/InstanceAdmin.sol +221 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +32 -16
- package/contracts/instance/InstanceService.sol +104 -76
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +13 -5
- package/contracts/instance/base/ObjectLifecycle.sol +105 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +1 -7
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +1 -1
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/Oracle.sol +73 -51
- package/contracts/oracle/OracleService.sol +1 -0
- package/contracts/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +181 -41
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +33 -5
- package/contracts/pool/IPoolComponent.sol +6 -60
- package/contracts/pool/IPoolService.sol +37 -24
- package/contracts/pool/Pool.sol +166 -137
- package/contracts/pool/PoolService.sol +175 -86
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +49 -53
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +13 -39
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +1 -0
- package/contracts/product/IPolicyService.sol +23 -17
- package/contracts/product/IProductComponent.sol +7 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +242 -133
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +5 -1
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +141 -107
- package/contracts/product/{ProductService.sol → RiskService.sol} +10 -37
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/IRegistry.sol +26 -16
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +81 -87
- package/contracts/registry/RegistryAdmin.sol +127 -86
- package/contracts/registry/RegistryService.sol +4 -18
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +14 -14
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +24 -37
- package/contracts/shared/ComponentService.sol +96 -72
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IComponent.sol +4 -4
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -7
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
- package/contracts/shared/InstanceLinkedComponent.sol +47 -19
- package/contracts/shared/KeyValueStore.sol +6 -2
- package/contracts/shared/Lifecycle.sol +16 -69
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +2 -2
- package/contracts/shared/PolicyHolder.sol +2 -5
- package/contracts/shared/Service.sol +3 -4
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +1 -2
- package/contracts/staking/IStakingService.sol +12 -5
- package/contracts/staking/StakeManagerLib.sol +0 -25
- package/contracts/staking/Staking.sol +21 -37
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +12 -16
- package/contracts/staking/StakingService.sol +8 -12
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +15 -23
- package/contracts/type/Amount.sol +12 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ObjectType.sol +37 -7
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RoleId.sol +55 -82
- package/contracts/type/Seconds.sol +13 -1
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +34 -9
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +6 -3
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
- 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/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- 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/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -527
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -3,7 +3,6 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {IRegistry} from "../registry/IRegistry.sol";
|
5
5
|
import {IInstance} from "../instance/IInstance.sol";
|
6
|
-
import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
7
6
|
import {IComponentService} from "../shared/IComponentService.sol";
|
8
7
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
9
8
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
@@ -14,29 +13,14 @@ import {IPolicy} from "../instance/module/IPolicy.sol";
|
|
14
13
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
15
14
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
16
15
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
17
|
-
import {PRODUCT_SERVICE_ROLE, DISTRIBUTION_OWNER_ROLE} from "../type/RoleId.sol";
|
18
16
|
import {KEEP_STATE} from "../type/StateId.sol";
|
19
17
|
import {ObjectType, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
|
20
|
-
import {Version, VersionLib} from "../type/Version.sol";
|
21
|
-
import {RoleId} from "../type/RoleId.sol";
|
22
|
-
|
23
|
-
import {IVersionable} from "../shared/IVersionable.sol";
|
24
|
-
import {Versionable} from "../shared/Versionable.sol";
|
25
|
-
|
26
|
-
import {IService} from "../shared/IService.sol";
|
27
|
-
import {Service} from "../shared/Service.sol";
|
28
18
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
29
|
-
import {InstanceService} from "../instance/InstanceService.sol";
|
30
|
-
import {IComponent} from "../shared/IComponent.sol";
|
31
|
-
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
32
19
|
import {IDistributionService} from "./IDistributionService.sol";
|
33
|
-
import {
|
34
|
-
|
35
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
20
|
+
import {UFixed} from "../type/UFixed.sol";
|
36
21
|
import {DistributorType, DistributorTypeLib} from "../type/DistributorType.sol";
|
37
|
-
import {ReferralId,
|
38
|
-
import {Timestamp, TimestampLib
|
39
|
-
import {Key32} from "../type/Key32.sol";
|
22
|
+
import {ReferralId, ReferralLib} from "../type/Referral.sol";
|
23
|
+
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
40
24
|
import {IDistribution} from "../instance/module/IDistribution.sol";
|
41
25
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
42
26
|
|
@@ -45,12 +29,6 @@ contract DistributionService is
|
|
45
29
|
ComponentVerifyingService,
|
46
30
|
IDistributionService
|
47
31
|
{
|
48
|
-
using NftIdLib for NftId;
|
49
|
-
using TimestampLib for Timestamp;
|
50
|
-
using UFixedLib for UFixed;
|
51
|
-
using FeeLib for Fee;
|
52
|
-
using ReferralLib for ReferralId;
|
53
|
-
|
54
32
|
IComponentService private _componentService;
|
55
33
|
IInstanceService private _instanceService;
|
56
34
|
IRegistryService private _registryService;
|
@@ -98,10 +76,17 @@ contract DistributionService is
|
|
98
76
|
{
|
99
77
|
NftId productNftId = _getProductNftId(instanceReader, distributionNftId);
|
100
78
|
IComponents.ProductInfo memory productInfo = instance.getInstanceReader().getProductInfo(productNftId);
|
101
|
-
|
102
|
-
UFixed
|
79
|
+
|
80
|
+
UFixed variableDistributionFees = productInfo.distributionFee.fractionalFee;
|
81
|
+
UFixed variableFeesPartsTotal = productInfo.minDistributionOwnerFee.fractionalFee + commissionPercentage;
|
82
|
+
|
83
|
+
if (variableFeesPartsTotal > variableDistributionFees) {
|
84
|
+
revert ErrorDistributionServiceVariableFeesTooHight(variableDistributionFees.toInt1000(), variableFeesPartsTotal.toInt1000());
|
85
|
+
}
|
86
|
+
UFixed maxDiscountPercentageLimit = variableDistributionFees - variableFeesPartsTotal;
|
87
|
+
|
103
88
|
if (maxDiscountPercentage.gt(maxDiscountPercentageLimit)) {
|
104
|
-
revert
|
89
|
+
revert ErrorDistributionServiceMaxDiscountTooHigh(maxDiscountPercentage.toInt1000(), maxDiscountPercentageLimit.toInt1000());
|
105
90
|
}
|
106
91
|
}
|
107
92
|
|
@@ -147,7 +132,6 @@ contract DistributionService is
|
|
147
132
|
distributorType,
|
148
133
|
true, // active
|
149
134
|
data,
|
150
|
-
AmountLib.zero(),
|
151
135
|
0);
|
152
136
|
|
153
137
|
instance.getInstanceStore().createDistributor(distributorNftId, info);
|
@@ -252,19 +236,60 @@ contract DistributionService is
|
|
252
236
|
referralInfo.usedReferrals += 1;
|
253
237
|
store.updateReferral(referralId, referralInfo, KEEP_STATE());
|
254
238
|
|
239
|
+
_componentService.increaseDistributorBalance(store, referralInfo.distributorNftId, AmountLib.zero(), commissionAmount);
|
240
|
+
|
255
241
|
// update book keeping for distributor info
|
256
242
|
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
257
|
-
// TODO refactor sum of commission amount into a fee balance for distributors
|
258
|
-
distributorInfo.commissionAmount = distributorInfo.commissionAmount + commissionAmount;
|
259
243
|
distributorInfo.numPoliciesSold += 1;
|
260
244
|
store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
|
261
245
|
} else {
|
262
|
-
|
263
246
|
// increase distribution balance by distribution owner fee
|
264
247
|
_componentService.increaseDistributionBalance(store, distributionNftId, AmountLib.zero(), distributionOwnerFee);
|
265
248
|
}
|
266
249
|
}
|
267
250
|
|
251
|
+
/// @inheritdoc IDistributionService
|
252
|
+
function withdrawCommission(NftId distributorNftId, Amount amount)
|
253
|
+
public
|
254
|
+
virtual
|
255
|
+
// TODO: restricted() (once #462 is done)
|
256
|
+
returns (Amount withdrawnAmount)
|
257
|
+
{
|
258
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
259
|
+
InstanceReader reader = instance.getInstanceReader();
|
260
|
+
|
261
|
+
IComponents.ComponentInfo memory distributionInfo = reader.getComponentInfo(distributionNftId);
|
262
|
+
address distributionWallet = distributionInfo.wallet;
|
263
|
+
|
264
|
+
Amount commissionAmount = reader.getFeeAmount(distributorNftId);
|
265
|
+
|
266
|
+
// determine withdrawn amount
|
267
|
+
withdrawnAmount = amount;
|
268
|
+
if (withdrawnAmount.gte(AmountLib.max())) {
|
269
|
+
withdrawnAmount = commissionAmount;
|
270
|
+
} else {
|
271
|
+
if (withdrawnAmount.gt(commissionAmount)) {
|
272
|
+
revert ErrorDistributionServiceCommissionWithdrawAmountExceedsLimit(withdrawnAmount, commissionAmount);
|
273
|
+
}
|
274
|
+
}
|
275
|
+
|
276
|
+
// decrease fee counters by withdrawnAmount and update distributor info
|
277
|
+
{
|
278
|
+
InstanceStore store = instance.getInstanceStore();
|
279
|
+
// decrease fee counter for distribution balance
|
280
|
+
_componentService.decreaseDistributionBalance(store, distributionNftId, withdrawnAmount, AmountLib.zero());
|
281
|
+
// decrease fee counter for distributor fee
|
282
|
+
_componentService.decreaseDistributorBalance(store, distributorNftId, AmountLib.zero(), withdrawnAmount);
|
283
|
+
}
|
284
|
+
|
285
|
+
// transfer amount to distributor
|
286
|
+
{
|
287
|
+
address distributor = getRegistry().ownerOf(distributorNftId);
|
288
|
+
emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.token), withdrawnAmount);
|
289
|
+
distributionInfo.tokenHandler.distributeTokens(distributionWallet, distributor, withdrawnAmount);
|
290
|
+
}
|
291
|
+
}
|
292
|
+
|
268
293
|
function referralIsValid(NftId distributionNftId, ReferralId referralId) public view returns (bool isValid) {
|
269
294
|
if (distributionNftId.eqz() || referralId.eqz()) {
|
270
295
|
return false;
|
@@ -1,12 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IVersionable} from "../
|
5
|
-
import {ProxyManager} from "../
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
6
|
import {DistributionService} from "./DistributionService.sol";
|
7
|
-
import {Registry} from "../registry/Registry.sol";
|
8
|
-
import {RegistryService} from "../registry/RegistryService.sol";
|
9
|
-
import {REGISTRY} from "../type/ObjectType.sol";
|
10
7
|
|
11
8
|
contract DistributionServiceManager is ProxyManager {
|
12
9
|
|
@@ -1,66 +1,52 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {Amount} from "../type/Amount.sol";
|
5
5
|
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
6
|
-
import {ReferralId, ReferralStatus} from "../type/Referral.sol";
|
7
6
|
import {NftId} from "../type/NftId.sol";
|
8
|
-
import {
|
7
|
+
import {ReferralId, ReferralStatus} from "../type/Referral.sol";
|
9
8
|
import {UFixed} from "../type/UFixed.sol";
|
10
|
-
import {Timestamp} from "../type/Timestamp.sol";
|
11
9
|
|
12
10
|
interface IDistributionComponent is IInstanceLinkedComponent {
|
13
11
|
|
12
|
+
error ErrorDistributionNotDistributor(address distributor);
|
13
|
+
error ErrorDistributionAlreadyDistributor(address distributor, NftId distributorNftId);
|
14
|
+
|
14
15
|
event LogDistributorUpdated(address to, address caller);
|
15
16
|
|
16
|
-
|
17
|
-
|
18
|
-
Fee memory minDistributionOwnerFee
|
19
|
-
) external;
|
17
|
+
/// @dev Returns true iff the provided address is registered as a distributor with this distribution component.
|
18
|
+
function isDistributor(address candidate) external view returns (bool);
|
20
19
|
|
21
|
-
|
22
|
-
|
23
|
-
UFixed minDiscountPercentage,
|
24
|
-
UFixed maxDiscountPercentage,
|
25
|
-
UFixed commissionPercentage,
|
26
|
-
uint32 maxReferralCount,
|
27
|
-
uint32 maxReferralLifetime,
|
28
|
-
bool allowSelfReferrals,
|
29
|
-
bool allowRenewals,
|
30
|
-
bytes memory data
|
31
|
-
) external returns (DistributorType distributorType);
|
20
|
+
/// @dev Returns the distributor Nft Id for the provided address
|
21
|
+
function getDistributorNftId(address distributor) external view returns (NftId distributorNftId);
|
32
22
|
|
33
|
-
function
|
34
|
-
|
35
|
-
|
36
|
-
bytes memory data
|
37
|
-
) external returns(NftId distributorNftId);
|
23
|
+
function getDiscountPercentage(
|
24
|
+
string memory referralCode
|
25
|
+
) external view returns (UFixed discountPercentage, ReferralStatus status);
|
38
26
|
|
39
|
-
function
|
40
|
-
|
41
|
-
|
42
|
-
bytes memory data
|
43
|
-
) external;
|
27
|
+
function getReferralId(
|
28
|
+
string memory referralCode
|
29
|
+
) external returns (ReferralId referralId);
|
44
30
|
|
45
31
|
function calculateRenewalFeeAmount(
|
46
32
|
ReferralId referralId,
|
47
33
|
uint256 netPremiumAmount
|
48
34
|
) external view returns (uint256 feeAmount);
|
49
35
|
|
50
|
-
/// @dev
|
36
|
+
/// @dev Callback function to process a renewal of a policy.
|
37
|
+
/// The default implementation is empty.
|
38
|
+
/// Overwrite this function to implement a use case specific behaviour.
|
51
39
|
function processRenewal(
|
52
40
|
ReferralId referralId,
|
53
41
|
uint256 feeAmount
|
54
42
|
) external;
|
55
43
|
|
56
|
-
|
57
|
-
string memory referralCode
|
58
|
-
) external view returns (UFixed discountPercentage, ReferralStatus status);
|
59
|
-
|
60
|
-
function getReferralId(
|
61
|
-
string memory referralCode
|
62
|
-
) external returns (ReferralId referralId);
|
63
|
-
|
64
|
-
/// @dev returns true iff the component needs to be called when selling/renewing policis
|
44
|
+
/// @dev Returns true to ensure component is called when transferring distributor Nft Ids.
|
65
45
|
function isVerifying() external view returns (bool verifying);
|
46
|
+
|
47
|
+
/// @dev Withdraw commission for the distributor
|
48
|
+
/// @param distributorNftId the distributor Nft Id
|
49
|
+
/// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
|
50
|
+
/// @return withdrawnAmount the effective withdrawn amount
|
51
|
+
function withdrawCommission(NftId distributorNftId, Amount amount) external returns (Amount withdrawnAmount);
|
66
52
|
}
|
@@ -13,6 +13,7 @@ import {Timestamp} from "../type/Timestamp.sol";
|
|
13
13
|
|
14
14
|
|
15
15
|
interface IDistributionService is IService {
|
16
|
+
|
16
17
|
error ErrorDistributionServiceCallerNotRegistered(address caller);
|
17
18
|
error ErrorIDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
|
18
19
|
error ErrorIDistributionServiceCallerNotDistributor(address caller);
|
@@ -25,10 +26,17 @@ interface IDistributionService is IService {
|
|
25
26
|
error ErrorIDistributionServiceExpirationInvalid(Timestamp expiryAt);
|
26
27
|
error ErrorIDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
|
27
28
|
error ErrorIDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
|
28
|
-
|
29
|
+
|
30
|
+
error ErrorDistributionServiceCommissionWithdrawAmountExceedsLimit(Amount amount, Amount limit);
|
31
|
+
|
32
|
+
error ErrorDistributionServiceVariableFeesTooHight(uint256 maxDiscountPercentage, uint256 limit);
|
33
|
+
error ErrorDistributionServiceMaxDiscountTooHigh(uint256 maxDiscountPercentage, uint256 limit);
|
34
|
+
|
29
35
|
error ErrorIDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
|
30
36
|
error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
|
31
37
|
|
38
|
+
event LogDistributionServiceCommissionWithdrawn(NftId distributorNftId, address recipient, address tokenAddress, Amount amount);
|
39
|
+
|
32
40
|
function createDistributorType(
|
33
41
|
string memory name,
|
34
42
|
UFixed minDiscountPercentage,
|
@@ -78,4 +86,10 @@ interface IDistributionService is IService {
|
|
78
86
|
NftId distributorNftId,
|
79
87
|
ReferralId referralId
|
80
88
|
) external view returns (bool isValid);
|
89
|
+
|
90
|
+
/// @dev Withdraw commission for the distributor
|
91
|
+
/// @param distributorNftId the distributor Nft Id
|
92
|
+
/// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
|
93
|
+
/// @return withdrawnAmount the effective withdrawn amount
|
94
|
+
function withdrawCommission(NftId distributorNftId, Amount amount) external returns (Amount withdrawnAmount);
|
81
95
|
}
|
@@ -10,26 +10,26 @@ import {LibNftIdSet} from "../type/NftIdSet.sol";
|
|
10
10
|
import {NftId} from "../type/NftId.sol";
|
11
11
|
import {TimestampLib} from "../type/Timestamp.sol";
|
12
12
|
|
13
|
-
import {
|
13
|
+
import {ObjectSet} from "./base/ObjectSet.sol";
|
14
14
|
|
15
|
-
contract
|
16
|
-
|
15
|
+
contract BundleSet is
|
16
|
+
ObjectSet
|
17
17
|
{
|
18
18
|
|
19
|
-
event
|
20
|
-
event
|
19
|
+
event LogBundleSetPolicyLinked(NftId bundleNftId, NftId policyNftId);
|
20
|
+
event LogBundleSetPolicyUnlinked(NftId bundleNftId, NftId policyNftId);
|
21
21
|
|
22
|
-
event
|
23
|
-
event
|
24
|
-
event
|
25
|
-
event
|
22
|
+
event LogBundleSetBundleAdded(NftId poolNftId, NftId bundleNftId);
|
23
|
+
event LogBundleSetBundleUnlocked(NftId poolNftId, NftId bundleNftId);
|
24
|
+
event LogBundleSetBundleLocked(NftId poolNftId, NftId bundleNftId);
|
25
|
+
event LogBundleSetBundleClosed(NftId poolNftId, NftId bundleNftId);
|
26
26
|
|
27
|
-
error
|
28
|
-
error
|
29
|
-
error
|
30
|
-
error
|
31
|
-
error
|
32
|
-
error
|
27
|
+
error ErrorBundleSetPolicyAlreadyActivated(NftId policyNftId);
|
28
|
+
error ErrorBundleSetBundleLocked(NftId bundleNftId, NftId policyNftId);
|
29
|
+
error ErrorBundleSetPolicyWithOpenClaims(NftId policyNftId, uint256 openClaimsCount);
|
30
|
+
error ErrorBundleSetPolicyNotCloseable(NftId policyNftId);
|
31
|
+
error ErrorBundleSetBundleUnknown(NftId bundleNftId);
|
32
|
+
error ErrorBundleSetBundleNotRegistered(NftId bundleNftId);
|
33
33
|
|
34
34
|
mapping(NftId bundleNftId => LibNftIdSet.Set policies) internal _activePolicies;
|
35
35
|
|
@@ -42,11 +42,11 @@ contract BundleManager is
|
|
42
42
|
|
43
43
|
// ensure bundle is unlocked (in active set) and registered with this instance
|
44
44
|
if (!_isActive(poolNftId, bundleNftId)) {
|
45
|
-
revert
|
45
|
+
revert ErrorBundleSetBundleLocked(bundleNftId, policyNftId);
|
46
46
|
}
|
47
47
|
|
48
48
|
LibNftIdSet.add(_activePolicies[bundleNftId], policyNftId);
|
49
|
-
emit
|
49
|
+
emit LogBundleSetPolicyLinked(bundleNftId, policyNftId);
|
50
50
|
}
|
51
51
|
|
52
52
|
|
@@ -63,11 +63,11 @@ contract BundleManager is
|
|
63
63
|
|
64
64
|
// ensure bundle is registered with this instance
|
65
65
|
if (!_contains(poolNftId, bundleNftId)) {
|
66
|
-
revert
|
66
|
+
revert ErrorBundleSetBundleUnknown(bundleNftId);
|
67
67
|
}
|
68
68
|
|
69
69
|
LibNftIdSet.remove(_activePolicies[bundleNftId], policyNftId);
|
70
|
-
emit
|
70
|
+
emit LogBundleSetPolicyUnlinked(policyInfo.bundleNftId, policyNftId);
|
71
71
|
}
|
72
72
|
|
73
73
|
|
@@ -78,11 +78,11 @@ contract BundleManager is
|
|
78
78
|
|
79
79
|
// ensure pool is registered with instance
|
80
80
|
if(poolNftId.eqz()) {
|
81
|
-
revert
|
81
|
+
revert ErrorBundleSetBundleNotRegistered(bundleNftId);
|
82
82
|
}
|
83
83
|
|
84
84
|
_add(poolNftId, bundleNftId);
|
85
|
-
emit
|
85
|
+
emit LogBundleSetBundleAdded(poolNftId, bundleNftId);
|
86
86
|
}
|
87
87
|
|
88
88
|
|
@@ -90,14 +90,14 @@ contract BundleManager is
|
|
90
90
|
function unlock(NftId bundleNftId) external restricted() {
|
91
91
|
NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
|
92
92
|
_activate(poolNftId, bundleNftId);
|
93
|
-
emit
|
93
|
+
emit LogBundleSetBundleUnlocked(poolNftId, bundleNftId);
|
94
94
|
}
|
95
95
|
|
96
96
|
/// @dev locked (deactivated) bundles may not collateralize any new policies
|
97
97
|
function lock(NftId bundleNftId) external restricted() {
|
98
98
|
NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
|
99
99
|
_deactivate(poolNftId, bundleNftId);
|
100
|
-
emit
|
100
|
+
emit LogBundleSetBundleLocked(poolNftId, bundleNftId);
|
101
101
|
}
|
102
102
|
|
103
103
|
function bundles(NftId poolNftId) external view returns(uint256) {
|
@@ -4,40 +4,16 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
5
|
|
6
6
|
import {Amount} from "../type/Amount.sol";
|
7
|
-
import {
|
8
|
-
import {DistributorType} from "../type/DistributorType.sol";
|
9
|
-
import {PayoutId} from "../type/PayoutId.sol";
|
10
|
-
import {NftId} from "../type/NftId.sol";
|
11
|
-
import {StateId} from "../type/StateId.sol";
|
12
|
-
import {ReferralId} from "../type/Referral.sol";
|
13
|
-
import {RiskId} from "../type/RiskId.sol";
|
14
|
-
import {VersionPart} from "../type/Version.sol";
|
15
|
-
import {Key32} from "../type/Key32.sol";
|
16
|
-
import {RoleId} from "../type/RoleId.sol";
|
17
|
-
import {Seconds} from "../type/Seconds.sol";
|
18
|
-
import {UFixed} from "../type/UFixed.sol";
|
19
|
-
|
20
|
-
import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
|
21
|
-
import {IRegisterable} from "../shared/IRegisterable.sol";
|
22
|
-
|
23
|
-
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
24
|
-
|
7
|
+
import {BundleSet} from "./BundleSet.sol";
|
25
8
|
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
26
|
-
import {BundleManager} from "./BundleManager.sol";
|
27
9
|
import {InstanceReader} from "./InstanceReader.sol";
|
28
10
|
import {InstanceStore} from "./InstanceStore.sol";
|
29
|
-
|
30
|
-
import {
|
31
|
-
|
32
|
-
import {
|
33
|
-
|
34
|
-
import {
|
35
|
-
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
36
|
-
import {IPolicyService} from "../product/IPolicyService.sol";
|
37
|
-
import {IPoolService} from "../pool/IPoolService.sol";
|
38
|
-
import {IProductService} from "../product/IProductService.sol";
|
39
|
-
import {IPolicyService} from "../product/IPolicyService.sol";
|
40
|
-
import {IBundleService} from "../pool/IBundleService.sol";
|
11
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
12
|
+
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
13
|
+
import {RoleId} from "../type/RoleId.sol";
|
14
|
+
import {Seconds} from "../type/Seconds.sol";
|
15
|
+
import {UFixed} from "../type/UFixed.sol";
|
16
|
+
import {VersionPart} from "../type/Version.sol";
|
41
17
|
|
42
18
|
|
43
19
|
interface IInstance is
|
@@ -49,9 +25,9 @@ interface IInstance is
|
|
49
25
|
error ErrorInstanceInstanceAdminAlreadySet(address InstanceAdmin);
|
50
26
|
error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
|
51
27
|
|
52
|
-
error
|
53
|
-
error
|
54
|
-
error
|
28
|
+
error ErrorInstanceBundleSetAlreadySet(address instanceBundleSet);
|
29
|
+
error ErrorInstanceBundleSetInstanceMismatch(address instance);
|
30
|
+
error ErrorInstanceBundleSetAuthorityMismatch(address instanceAuthority);
|
55
31
|
|
56
32
|
error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
|
57
33
|
|
@@ -74,14 +50,14 @@ interface IInstance is
|
|
74
50
|
function setStakingRewardRate(UFixed rewardRate) external;
|
75
51
|
function refillStakingRewardReserves(Amount dipAmount) external;
|
76
52
|
|
77
|
-
/// @dev
|
78
|
-
///
|
53
|
+
/// @dev Defunds the staking reward reserves for the specified target.
|
54
|
+
/// Permissioned: only the target owner may call this function.
|
79
55
|
function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
|
80
56
|
|
57
|
+
// get instance release and supporting contracts
|
81
58
|
function getMajorVersion() external pure returns (VersionPart majorVersion);
|
82
59
|
function getInstanceReader() external view returns (InstanceReader);
|
83
|
-
function
|
60
|
+
function getBundleSet() external view returns (BundleSet);
|
84
61
|
function getInstanceAdmin() external view returns (InstanceAdmin);
|
85
62
|
function getInstanceStore() external view returns (InstanceStore);
|
86
|
-
function getInstanceAccessManager() external view returns (AccessManagerExtendedInitializeable);
|
87
63
|
}
|
@@ -2,8 +2,9 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {
|
5
|
+
import {BundleSet} from "./BundleSet.sol";
|
6
6
|
import {Instance} from "./Instance.sol";
|
7
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
7
8
|
import {IService} from "../shared/IService.sol";
|
8
9
|
import {NftId} from "../type/NftId.sol";
|
9
10
|
import {ObjectType} from "../type/ObjectType.sol";
|
@@ -22,9 +23,8 @@ interface IInstanceService is IService {
|
|
22
23
|
error ErrorInstanceServiceComponentNotInstanceLinked(address component);
|
23
24
|
|
24
25
|
error ErrorInstanceServiceMasterInstanceAlreadySet();
|
25
|
-
error ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet();
|
26
26
|
error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
|
27
|
-
error
|
27
|
+
error ErrorInstanceServiceMasterBundleSetAlreadySet();
|
28
28
|
error ErrorInstanceServiceInstanceAddressZero();
|
29
29
|
|
30
30
|
error ErrorInstanceServiceMasterInstanceReaderNotSet();
|
@@ -32,13 +32,14 @@ interface IInstanceService is IService {
|
|
32
32
|
error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
|
33
33
|
error ErrorInstanceServiceInstanceReaderInstanceMismatch();
|
34
34
|
|
35
|
+
error ErrorInstanceServiceAccessManagerZero();
|
35
36
|
error ErrorInstanceServiceInstanceAdminZero();
|
36
37
|
error ErrorInstanceServiceInstanceReaderZero();
|
37
|
-
error
|
38
|
+
error ErrorInstanceServiceBundleSetZero();
|
38
39
|
error ErrorInstanceServiceInstanceStoreZero();
|
39
40
|
|
40
41
|
error ErrorInstanceServiceInstanceAuthorityMismatch();
|
41
|
-
error
|
42
|
+
error ErrorInstanceServiceBundleSetAuthorityMismatch();
|
42
43
|
error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
|
43
44
|
error ErrorInstanceServiceBundleMangerInstanceMismatch();
|
44
45
|
error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
|
@@ -49,17 +50,9 @@ interface IInstanceService is IService {
|
|
49
50
|
error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
|
50
51
|
error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
|
51
52
|
|
52
|
-
event LogInstanceCloned(
|
53
|
-
|
54
|
-
|
55
|
-
address clonedInstance,
|
56
|
-
address clonedInstanceStore,
|
57
|
-
address clonedBundleManager,
|
58
|
-
address clonedInstanceReader,
|
59
|
-
NftId clonedInstanceNftId
|
60
|
-
);
|
61
|
-
|
62
|
-
function createInstanceClone()
|
53
|
+
event LogInstanceCloned(NftId instanceNftId, address instance);
|
54
|
+
|
55
|
+
function createInstance()
|
63
56
|
external
|
64
57
|
returns (
|
65
58
|
// TODO check if Instance can be changed to IInstance
|
@@ -72,10 +65,12 @@ interface IInstanceService is IService {
|
|
72
65
|
function setStakingRewardRate(UFixed rewardRate) external;
|
73
66
|
function refillStakingRewardReserves(address rewardProvider, Amount dipAmount) external;
|
74
67
|
|
75
|
-
/// @dev
|
76
|
-
/// permissioned: only the target owner may call this function
|
68
|
+
/// @dev Defunds the staking reward reserves for the specified target.
|
77
69
|
function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
|
78
70
|
|
71
|
+
/// @dev Sets up the component authorization for the specified instance.
|
72
|
+
/// The authorization is based on the authz specification provided by the component via getAuthorization.
|
73
|
+
function initializeAuthorization(NftId instanceNftId, IInstanceLinkedComponent component) external;
|
79
74
|
|
80
75
|
function createComponentTarget(
|
81
76
|
NftId instanceNftId,
|