@etherisc/gif-next 0.0.2-db1e1e4-828 → 0.0.2-dc37b66-227
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 +32 -3
- 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 +1548 -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 +233 -328
- 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 +296 -2011
- 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 +422 -2807
- 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 +820 -379
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +263 -282
- 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 +3581 -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 +1185 -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 +1093 -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} +297 -153
- 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 +1483 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +302 -45
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +228 -290
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +480 -57
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1312 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1690 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +766 -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/product/BasicProduct.sol/BasicProduct.json +1318 -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 +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/{instance/service/IClaimService.sol/IClaimService.json → product/IApplicationService.sol/IApplicationService.json} +131 -94
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +194 -80
- 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} +86 -159
- 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 +1183 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -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/{components → product}/Product.sol/Product.json +396 -287
- 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 +139 -85
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1696 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +812 -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 +1015 -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 +60 -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 +2005 -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 +761 -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 +33 -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 +177 -162
- package/contracts/distribution/DistributionService.sol +337 -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} +30 -31
- package/contracts/instance/IInstance.sol +55 -67
- package/contracts/instance/IInstanceService.sol +50 -30
- package/contracts/instance/Instance.sol +160 -234
- package/contracts/instance/InstanceAdmin.sol +266 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +173 -59
- package/contracts/instance/InstanceService.sol +280 -332
- 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 -10
- package/contracts/instance/module/IDistribution.sol +6 -6
- package/contracts/instance/module/IPolicy.sol +28 -16
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
- 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 +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +55 -0
- package/contracts/pool/BundleService.sol +424 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +55 -20
- package/contracts/pool/IPoolComponent.sol +58 -0
- package/contracts/pool/IPoolService.sol +158 -0
- package/contracts/pool/Pool.sol +332 -0
- package/contracts/pool/PoolService.sol +549 -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 +82 -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 +15 -35
- package/contracts/product/IClaimService.sol +99 -0
- package/contracts/{instance/service → product}/IPolicyService.sol +37 -31
- 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 +476 -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 +209 -110
- 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 +651 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/{components → shared}/IComponent.sol +23 -29
- 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 +27 -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 +411 -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 +20 -3
- package/contracts/{types → type}/ClaimId.sol +25 -2
- 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}/PayoutId.sol +33 -5
- 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 +33 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +10 -1
- 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 -1039
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
- 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 -1092
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
- 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 -161
- 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 -100
- 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 -100
- 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 -303
- 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 -109
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -350
- package/contracts/instance/service/BundleService.sol +0 -431
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -151
- package/contracts/instance/service/DistributionService.sol +0 -435
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IClaimService.sol +0 -61
- package/contracts/instance/service/IPoolService.sol +0 -99
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -362
- 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 -60
- 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}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,435 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IRegistry} from "../../registry/IRegistry.sol";
|
5
|
-
import {IInstance} from "../../instance/IInstance.sol";
|
6
|
-
import {InstanceAccessManager} from "../InstanceAccessManager.sol";
|
7
|
-
import {InstanceReader} from "../../instance/InstanceReader.sol";
|
8
|
-
import {ISetup} from "../../instance/module/ISetup.sol";
|
9
|
-
import {IPolicy} from "../module/IPolicy.sol";
|
10
|
-
|
11
|
-
import {NftId, NftIdLib, zeroNftId} from "../../types/NftId.sol";
|
12
|
-
import {Fee, FeeLib} from "../../types/Fee.sol";
|
13
|
-
import {PRODUCT_SERVICE_ROLE, DISTRIBUTION_OWNER_ROLE} from "../../types/RoleId.sol";
|
14
|
-
import {KEEP_STATE} from "../../types/StateId.sol";
|
15
|
-
import {ObjectType, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR} from "../../types/ObjectType.sol";
|
16
|
-
import {Version, VersionLib} from "../../types/Version.sol";
|
17
|
-
import {RoleId} from "../../types/RoleId.sol";
|
18
|
-
|
19
|
-
import {IVersionable} from "../../shared/IVersionable.sol";
|
20
|
-
import {Versionable} from "../../shared/Versionable.sol";
|
21
|
-
|
22
|
-
import {IService} from "../../shared/IService.sol";
|
23
|
-
import {Service} from "../../shared/Service.sol";
|
24
|
-
import {ComponentService} from "../base/ComponentService.sol";
|
25
|
-
import {InstanceService} from "../InstanceService.sol";
|
26
|
-
import {IComponent} from "../../components/IComponent.sol";
|
27
|
-
import {IDistributionComponent} from "../../components/IDistributionComponent.sol";
|
28
|
-
import {IDistributionService} from "./IDistributionService.sol";
|
29
|
-
|
30
|
-
import {UFixed, UFixedLib} from "../../types/UFixed.sol";
|
31
|
-
import {DistributorType, DistributorTypeLib} from "../../types/DistributorType.sol";
|
32
|
-
import {ReferralId, ReferralStatus, ReferralLib} from "../../types/Referral.sol";
|
33
|
-
import {Timestamp, TimestampLib, zeroTimestamp} from "../../types/Timestamp.sol";
|
34
|
-
import {Key32} from "../../types/Key32.sol";
|
35
|
-
import {IDistribution} from "../module/IDistribution.sol";
|
36
|
-
|
37
|
-
|
38
|
-
contract DistributionService is
|
39
|
-
ComponentService,
|
40
|
-
IDistributionService
|
41
|
-
{
|
42
|
-
using NftIdLib for NftId;
|
43
|
-
using TimestampLib for Timestamp;
|
44
|
-
using UFixedLib for UFixed;
|
45
|
-
using FeeLib for Fee;
|
46
|
-
using ReferralLib for ReferralId;
|
47
|
-
|
48
|
-
address internal _registryAddress;
|
49
|
-
|
50
|
-
function _initialize(
|
51
|
-
address owner,
|
52
|
-
bytes memory data
|
53
|
-
)
|
54
|
-
internal
|
55
|
-
initializer
|
56
|
-
virtual override
|
57
|
-
{
|
58
|
-
address initialOwner;
|
59
|
-
address registryAddress;
|
60
|
-
(registryAddress, initialOwner) = abi.decode(data, (address, address));
|
61
|
-
// TODO while DistributionService is not deployed in DistributionServiceManager constructor
|
62
|
-
// owner is DistributionServiceManager deployer
|
63
|
-
initializeService(registryAddress, address(0), owner);
|
64
|
-
registerInterface(type(IDistributionService).interfaceId);
|
65
|
-
}
|
66
|
-
|
67
|
-
function getDomain() public pure override returns(ObjectType) {
|
68
|
-
return DISTRIBUTION();
|
69
|
-
}
|
70
|
-
|
71
|
-
function register(address distributionAddress)
|
72
|
-
external
|
73
|
-
returns(NftId distributionNftId)
|
74
|
-
{
|
75
|
-
(
|
76
|
-
IComponent component,
|
77
|
-
address owner,
|
78
|
-
IInstance instance,
|
79
|
-
NftId instanceNftId
|
80
|
-
) = _checkComponentForRegistration(
|
81
|
-
distributionAddress,
|
82
|
-
DISTRIBUTION(),
|
83
|
-
DISTRIBUTION_OWNER_ROLE());
|
84
|
-
|
85
|
-
IRegistry.ObjectInfo memory distributionInfo = getRegistryService().registerDistribution(component, owner);
|
86
|
-
IDistributionComponent distribution = IDistributionComponent(distributionAddress);
|
87
|
-
distribution.linkToRegisteredNftId();
|
88
|
-
distributionNftId = distributionInfo.nftId;
|
89
|
-
|
90
|
-
instance.createDistributionSetup(distributionNftId, distribution.getSetupInfo());
|
91
|
-
// TODO move to distribution?
|
92
|
-
bytes4[][] memory selectors = new bytes4[][](2);
|
93
|
-
selectors[0] = new bytes4[](1);
|
94
|
-
selectors[1] = new bytes4[](2);
|
95
|
-
|
96
|
-
selectors[0][0] = IDistributionComponent.setFees.selector;
|
97
|
-
selectors[1][0] = IDistributionComponent.processRenewal.selector;
|
98
|
-
|
99
|
-
RoleId[] memory roles = new RoleId[](2);
|
100
|
-
roles[0] = DISTRIBUTION_OWNER_ROLE();
|
101
|
-
roles[1] = PRODUCT_SERVICE_ROLE();
|
102
|
-
|
103
|
-
getInstanceService().createGifTarget(
|
104
|
-
instanceNftId,
|
105
|
-
distributionAddress,
|
106
|
-
distribution.getName(),
|
107
|
-
selectors,
|
108
|
-
roles);
|
109
|
-
}
|
110
|
-
|
111
|
-
function setFees(
|
112
|
-
Fee memory minDistributionOwnerFee,
|
113
|
-
Fee memory distributionFee
|
114
|
-
)
|
115
|
-
external
|
116
|
-
override
|
117
|
-
{
|
118
|
-
if (minDistributionOwnerFee.fractionalFee > distributionFee.fractionalFee) {
|
119
|
-
revert ErrorIDistributionServiceMinFeeTooHigh(minDistributionOwnerFee.fractionalFee.toInt(), distributionFee.fractionalFee.toInt());
|
120
|
-
}
|
121
|
-
|
122
|
-
(NftId distributionNftId, IRegistry.ObjectInfo memory info , IInstance instance) = _getAndVerifyComponentInfoAndInstance(DISTRIBUTION());
|
123
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
124
|
-
|
125
|
-
ISetup.DistributionSetupInfo memory distSetupInfo = instanceReader.getDistributionSetupInfo(distributionNftId);
|
126
|
-
distSetupInfo.minDistributionOwnerFee = minDistributionOwnerFee;
|
127
|
-
distSetupInfo.distributionFee = distributionFee;
|
128
|
-
|
129
|
-
instance.updateDistributionSetup(distributionNftId, distSetupInfo, KEEP_STATE());
|
130
|
-
}
|
131
|
-
|
132
|
-
function createDistributorType(
|
133
|
-
string memory name,
|
134
|
-
UFixed minDiscountPercentage,
|
135
|
-
UFixed maxDiscountPercentage,
|
136
|
-
UFixed commissionPercentage,
|
137
|
-
uint32 maxReferralCount,
|
138
|
-
uint32 maxReferralLifetime,
|
139
|
-
bool allowSelfReferrals,
|
140
|
-
bool allowRenewals,
|
141
|
-
bytes memory data
|
142
|
-
)
|
143
|
-
external
|
144
|
-
returns (DistributorType distributorType)
|
145
|
-
{
|
146
|
-
(NftId distributionNftId, IInstance instance) = _getAndVerifyCallingDistribution();
|
147
|
-
|
148
|
-
{
|
149
|
-
ISetup.DistributionSetupInfo memory setupInfo = instance.getInstanceReader().getDistributionSetupInfo(distributionNftId);
|
150
|
-
UFixed variableFeesPartsTotal = setupInfo.minDistributionOwnerFee.fractionalFee.add(commissionPercentage);
|
151
|
-
UFixed maxDiscountPercentageLimit = setupInfo.distributionFee.fractionalFee.sub(variableFeesPartsTotal);
|
152
|
-
if (maxDiscountPercentage.gt(maxDiscountPercentageLimit)) {
|
153
|
-
revert ErrorIDistributionServiceMaxDiscountTooHigh(maxDiscountPercentage.toInt(), maxDiscountPercentageLimit.toInt());
|
154
|
-
}
|
155
|
-
}
|
156
|
-
|
157
|
-
distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
|
158
|
-
Key32 key32 = distributorType.toKey32();
|
159
|
-
|
160
|
-
if(!instance.exists(key32)) {
|
161
|
-
IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo(
|
162
|
-
name,
|
163
|
-
minDiscountPercentage,
|
164
|
-
maxDiscountPercentage,
|
165
|
-
commissionPercentage,
|
166
|
-
maxReferralCount,
|
167
|
-
maxReferralLifetime,
|
168
|
-
allowSelfReferrals,
|
169
|
-
allowRenewals,
|
170
|
-
data);
|
171
|
-
|
172
|
-
instance.createDistributorType(key32, info);
|
173
|
-
}
|
174
|
-
}
|
175
|
-
|
176
|
-
function createDistributor(
|
177
|
-
address distributor,
|
178
|
-
DistributorType distributorType,
|
179
|
-
bytes memory data
|
180
|
-
) external returns (NftId distributorNftId)
|
181
|
-
{
|
182
|
-
(NftId distributionNftId, IInstance instance) = _getAndVerifyCallingDistribution();
|
183
|
-
|
184
|
-
distributorNftId = getRegistryService().registerDistributor(
|
185
|
-
IRegistry.ObjectInfo(
|
186
|
-
zeroNftId(),
|
187
|
-
distributionNftId,
|
188
|
-
DISTRIBUTOR(),
|
189
|
-
true, // intercepting property for bundles is defined on pool
|
190
|
-
address(0),
|
191
|
-
distributor,
|
192
|
-
""
|
193
|
-
));
|
194
|
-
|
195
|
-
IDistribution.DistributorInfo memory info = IDistribution.DistributorInfo(
|
196
|
-
distributorType,
|
197
|
-
true, // active
|
198
|
-
data,
|
199
|
-
0,
|
200
|
-
0);
|
201
|
-
|
202
|
-
instance.createDistributor(distributorNftId, info);
|
203
|
-
}
|
204
|
-
|
205
|
-
function updateDistributorType(
|
206
|
-
NftId distributorNftId,
|
207
|
-
DistributorType distributorType,
|
208
|
-
bytes memory data
|
209
|
-
) external virtual
|
210
|
-
{
|
211
|
-
(, IInstance instance) = _getAndVerifyCallingDistribution();
|
212
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
213
|
-
IDistribution.DistributorInfo memory distributorInfo = instanceReader.getDistributorInfo(distributorNftId);
|
214
|
-
distributorInfo.distributorType = distributorType;
|
215
|
-
distributorInfo.data = data;
|
216
|
-
instance.updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
|
217
|
-
}
|
218
|
-
|
219
|
-
|
220
|
-
function createReferral(
|
221
|
-
NftId distributorNftId,
|
222
|
-
string memory code,
|
223
|
-
UFixed discountPercentage,
|
224
|
-
uint32 maxReferrals,
|
225
|
-
Timestamp expiryAt,
|
226
|
-
bytes memory data
|
227
|
-
)
|
228
|
-
external
|
229
|
-
virtual
|
230
|
-
returns (ReferralId referralId)
|
231
|
-
{
|
232
|
-
(NftId distributionNftId, IInstance instance) = _getAndVerifyCallingDistribution();
|
233
|
-
|
234
|
-
if (bytes(code).length == 0) {
|
235
|
-
revert ErrorIDistributionServiceInvalidReferral(code);
|
236
|
-
}
|
237
|
-
if (expiryAt.eqz()) {
|
238
|
-
revert ErrorIDistributionServiceExpirationInvalid(expiryAt);
|
239
|
-
}
|
240
|
-
|
241
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
242
|
-
IDistribution.DistributorInfo memory distributorInfo = instanceReader.getDistributorInfo(distributorNftId);
|
243
|
-
DistributorType distributorType = distributorInfo.distributorType;
|
244
|
-
IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
|
245
|
-
|
246
|
-
if (distributorTypeData.maxReferralCount < maxReferrals) {
|
247
|
-
revert ErrorIDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
|
248
|
-
}
|
249
|
-
if (distributorTypeData.minDiscountPercentage > discountPercentage) {
|
250
|
-
revert ErrorIDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
|
251
|
-
}
|
252
|
-
if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
|
253
|
-
revert ErrorIDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage.toInt(), discountPercentage.toInt());
|
254
|
-
}
|
255
|
-
if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime) {
|
256
|
-
revert ErrorIDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt.toInt());
|
257
|
-
}
|
258
|
-
|
259
|
-
referralId = ReferralLib.toReferralId(distributionNftId, code);
|
260
|
-
IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo(
|
261
|
-
distributorNftId,
|
262
|
-
code,
|
263
|
-
discountPercentage,
|
264
|
-
maxReferrals,
|
265
|
-
0, // used referrals
|
266
|
-
expiryAt,
|
267
|
-
data
|
268
|
-
);
|
269
|
-
|
270
|
-
instance.createReferral(referralId.toKey32(), info);
|
271
|
-
return referralId;
|
272
|
-
}
|
273
|
-
|
274
|
-
function processSale(
|
275
|
-
NftId distributionNftId,
|
276
|
-
ReferralId referralId,
|
277
|
-
IPolicy.Premium memory premium,
|
278
|
-
uint256 transferredDistributionFeeAmount
|
279
|
-
)
|
280
|
-
external
|
281
|
-
virtual
|
282
|
-
{
|
283
|
-
bool isReferral = ! referralId.eqz();
|
284
|
-
bool referralValid = referralIsValid(distributionNftId, referralId);
|
285
|
-
|
286
|
-
if (isReferral && ! referralValid) {
|
287
|
-
revert ErrorIDistributionServiceReferralInvalid(distributionNftId, referralId);
|
288
|
-
}
|
289
|
-
|
290
|
-
IInstance instance = _getInstanceForDistribution(distributionNftId);
|
291
|
-
InstanceReader reader = instance.getInstanceReader();
|
292
|
-
IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
|
293
|
-
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
294
|
-
ISetup.DistributionSetupInfo memory setupInfo = reader.getDistributionSetupInfo(distributionNftId);
|
295
|
-
|
296
|
-
uint256 distributionOwnerFee = premium.distributionOwnerFeeFixAmount + premium.distributionOwnerFeeVarAmount;
|
297
|
-
uint256 commissionAmount = premium.commissionAmount;
|
298
|
-
|
299
|
-
if (transferredDistributionFeeAmount != distributionOwnerFee + commissionAmount) {
|
300
|
-
revert ErrorIDistributionServiceInvalidFeeTransferred(transferredDistributionFeeAmount, distributionOwnerFee + commissionAmount);
|
301
|
-
}
|
302
|
-
|
303
|
-
|
304
|
-
if (distributionOwnerFee > 0) {
|
305
|
-
setupInfo.sumDistributionOwnerFees += distributionOwnerFee;
|
306
|
-
instance.updateDistributionSetup(distributionNftId, setupInfo, KEEP_STATE());
|
307
|
-
}
|
308
|
-
|
309
|
-
if (isReferral) {
|
310
|
-
referralInfo.usedReferrals += 1;
|
311
|
-
instance.updateReferral(referralId.toKey32(), referralInfo, KEEP_STATE());
|
312
|
-
|
313
|
-
if (commissionAmount > 0) {
|
314
|
-
distributorInfo.sumCommisions += commissionAmount;
|
315
|
-
distributorInfo.numPoliciesSold += 1;
|
316
|
-
instance.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
|
317
|
-
}
|
318
|
-
}
|
319
|
-
}
|
320
|
-
|
321
|
-
function calculateFeeAmount(
|
322
|
-
NftId distributionNftId,
|
323
|
-
ReferralId referralId,
|
324
|
-
IPolicy.Premium memory premium
|
325
|
-
)
|
326
|
-
external
|
327
|
-
virtual
|
328
|
-
view
|
329
|
-
returns (IPolicy.Premium memory finalPremium)
|
330
|
-
{
|
331
|
-
IInstance instance = _getInstanceForDistribution(distributionNftId);
|
332
|
-
InstanceReader reader = instance.getInstanceReader();
|
333
|
-
|
334
|
-
// first calculate all fixed and variable fees for the distribution - this will defined the fullPremium
|
335
|
-
ISetup.DistributionSetupInfo memory setupInfo = reader.getDistributionSetupInfo(distributionNftId);
|
336
|
-
Fee memory distributionFee = setupInfo.distributionFee;
|
337
|
-
Fee memory minDistributionOwnerFee = setupInfo.minDistributionOwnerFee;
|
338
|
-
uint256 distributionFeeVarAmount = (UFixedLib.toUFixed(premium.netPremiumAmount) * distributionFee.fractionalFee).toInt();
|
339
|
-
premium.distributionFeeVarAmount = distributionFeeVarAmount;
|
340
|
-
premium.fullPremiumAmount += distributionFeeVarAmount;
|
341
|
-
|
342
|
-
// if the referral is not valid, then the distribution owner gets everything
|
343
|
-
if (! referralIsValid(distributionNftId, referralId)) {
|
344
|
-
premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
|
345
|
-
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
|
346
|
-
premium.premiumAmount = premium.fullPremiumAmount;
|
347
|
-
return premium;
|
348
|
-
}
|
349
|
-
|
350
|
-
// if the referral is valid, the the commission and discount are calculated based in the full premium
|
351
|
-
// the remaing amount goes to the distribution owner
|
352
|
-
{
|
353
|
-
IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
|
354
|
-
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
355
|
-
IDistribution.DistributorTypeInfo memory distributorTypeInfo = reader.getDistributorTypeInfo(distributorInfo.distributorType);
|
356
|
-
|
357
|
-
uint256 commissionAmount = UFixedLib.toUFixed(premium.netPremiumAmount).mul(distributorTypeInfo.commissionPercentage).toInt();
|
358
|
-
premium.commissionAmount = commissionAmount;
|
359
|
-
premium.discountAmount = UFixedLib.toUFixed(premium.fullPremiumAmount).mul(referralInfo.discountPercentage).toInt();
|
360
|
-
premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
|
361
|
-
premium.distributionOwnerFeeVarAmount = distributionFeeVarAmount - commissionAmount - premium.discountAmount;
|
362
|
-
premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
|
363
|
-
}
|
364
|
-
|
365
|
-
// sanity check to validate the fee calculation
|
366
|
-
if (premium.distributionOwnerFeeFixAmount < minDistributionOwnerFee.fixedFee) {
|
367
|
-
revert ErrorIDistributionServiceFeeCalculationMismatch(
|
368
|
-
premium.distributionFeeFixAmount,
|
369
|
-
premium.distributionFeeVarAmount,
|
370
|
-
premium.distributionOwnerFeeFixAmount,
|
371
|
-
premium.distributionOwnerFeeVarAmount,
|
372
|
-
premium.commissionAmount,
|
373
|
-
premium.discountAmount
|
374
|
-
);
|
375
|
-
}
|
376
|
-
if ((premium.distributionFeeVarAmount) != (premium.discountAmount + premium.distributionOwnerFeeVarAmount + premium.commissionAmount)) {
|
377
|
-
revert ErrorIDistributionServiceFeeCalculationMismatch(
|
378
|
-
premium.distributionFeeFixAmount,
|
379
|
-
premium.distributionFeeVarAmount,
|
380
|
-
premium.distributionOwnerFeeFixAmount,
|
381
|
-
premium.distributionOwnerFeeVarAmount,
|
382
|
-
premium.commissionAmount,
|
383
|
-
premium.discountAmount
|
384
|
-
);
|
385
|
-
}
|
386
|
-
|
387
|
-
return premium;
|
388
|
-
}
|
389
|
-
|
390
|
-
// TODO: zero should return false
|
391
|
-
function referralIsValid(NftId distributionNftId, ReferralId referralId) public view returns (bool isValid) {
|
392
|
-
IInstance instance = _getInstanceForDistribution(distributionNftId);
|
393
|
-
IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
|
394
|
-
|
395
|
-
if (info.distributorNftId.eqz()) {
|
396
|
-
return false;
|
397
|
-
}
|
398
|
-
|
399
|
-
isValid = info.expiryAt.eqz() || (info.expiryAt.gtz() && TimestampLib.blockTimestamp() <= info.expiryAt);
|
400
|
-
isValid = isValid && info.usedReferrals < info.maxReferrals;
|
401
|
-
}
|
402
|
-
|
403
|
-
function _getAndVerifyCallingDistribution()
|
404
|
-
internal
|
405
|
-
view
|
406
|
-
returns(
|
407
|
-
NftId distributionNftId,
|
408
|
-
IInstance instance
|
409
|
-
)
|
410
|
-
{
|
411
|
-
distributionNftId = getRegistry().getNftId(msg.sender);
|
412
|
-
if (distributionNftId.eqz()) {
|
413
|
-
revert ErrorDistributionServiceCallerNotRegistered(msg.sender);
|
414
|
-
}
|
415
|
-
|
416
|
-
IRegistry.ObjectInfo memory info = getRegistry().getObjectInfo(distributionNftId);
|
417
|
-
if(info.objectType != DISTRIBUTION()) {
|
418
|
-
revert ErrorIDistributionServiceCallerNotDistributor(msg.sender);
|
419
|
-
}
|
420
|
-
|
421
|
-
address instanceAddress = getRegistry().getObjectInfo(info.parentNftId).objectAddress;
|
422
|
-
instance = IInstance(instanceAddress);
|
423
|
-
}
|
424
|
-
|
425
|
-
|
426
|
-
function _getInstanceForDistribution(NftId distributionNftId)
|
427
|
-
internal
|
428
|
-
view
|
429
|
-
returns(IInstance instance)
|
430
|
-
{
|
431
|
-
NftId instanceNftId = getRegistry().getObjectInfo(distributionNftId).parentNftId;
|
432
|
-
address instanceAddress = getRegistry().getObjectInfo(instanceNftId).objectAddress;
|
433
|
-
return IInstance(instanceAddress);
|
434
|
-
}
|
435
|
-
}
|
@@ -1,51 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {IVersionable} from "../../shared/IVersionable.sol";
|
5
|
-
import {ProxyManager} from "../../shared/ProxyManager.sol";
|
6
|
-
import {DistributionService} from "./DistributionService.sol";
|
7
|
-
import {Registry} from "../../registry/Registry.sol";
|
8
|
-
import {RegistryService} from "../../registry/RegistryService.sol";
|
9
|
-
import {REGISTRY} from "../../types/ObjectType.sol";
|
10
|
-
|
11
|
-
contract DistributionServiceManager is ProxyManager {
|
12
|
-
|
13
|
-
DistributionService private _distributionService;
|
14
|
-
|
15
|
-
/// @dev initializes proxy manager with distribution service implementation and deploys instance
|
16
|
-
constructor(
|
17
|
-
address registryAddress
|
18
|
-
)
|
19
|
-
ProxyManager(registryAddress)
|
20
|
-
{
|
21
|
-
DistributionService distSrv = new DistributionService();
|
22
|
-
bytes memory data = abi.encode(registryAddress, address(this));
|
23
|
-
IVersionable versionable = deploy(
|
24
|
-
address(distSrv),
|
25
|
-
data);
|
26
|
-
|
27
|
-
_distributionService = DistributionService(address(versionable));
|
28
|
-
|
29
|
-
// TODO `thi` must have a role or own nft to register service
|
30
|
-
//Registry registry = Registry(registryAddress);
|
31
|
-
//address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _distributionService.getMajorVersion());
|
32
|
-
//RegistryService registryService = RegistryService(registryServiceAddress);
|
33
|
-
//registryService.registerService(_distributionService);
|
34
|
-
|
35
|
-
// TODO no nft to link yet
|
36
|
-
// link ownership of instance service manager ot nft owner of instance service
|
37
|
-
//_linkToNftOwnable(
|
38
|
-
// address(registryAddress),
|
39
|
-
// address(_distributionService));
|
40
|
-
}
|
41
|
-
|
42
|
-
//--- view functions ----------------------------------------------------//
|
43
|
-
function getDistributionService()
|
44
|
-
external
|
45
|
-
view
|
46
|
-
returns (DistributionService distributionService)
|
47
|
-
{
|
48
|
-
return _distributionService;
|
49
|
-
}
|
50
|
-
|
51
|
-
}
|
@@ -1,61 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IRisk} from "../module/IRisk.sol";
|
5
|
-
import {IService} from "../../shared/IService.sol";
|
6
|
-
|
7
|
-
import {ClaimId} from "../../types/ClaimId.sol";
|
8
|
-
import {PayoutId} from "../../types/PayoutId.sol";
|
9
|
-
import {NftId} from "../../types/NftId.sol";
|
10
|
-
import {ReferralId} from "../../types/Referral.sol";
|
11
|
-
import {RiskId} from "../../types/RiskId.sol";
|
12
|
-
import {StateId} from "../../types/StateId.sol";
|
13
|
-
import {Timestamp} from "../../types/Timestamp.sol";
|
14
|
-
import {UFixed} from "../../types/UFixed.sol";
|
15
|
-
import {Fee} from "../../types/Fee.sol";
|
16
|
-
|
17
|
-
/// @dev gif service responsible for creating claims and payouts
|
18
|
-
/// only product components may call transaction functions
|
19
|
-
interface IClaimService is
|
20
|
-
IService
|
21
|
-
{
|
22
|
-
|
23
|
-
/// @dev create a new claim for the specified policy
|
24
|
-
/// function can only be called by product, policy needs to match with calling product
|
25
|
-
function createClaim(
|
26
|
-
NftId policyNftId,
|
27
|
-
uint256 claimAmount,
|
28
|
-
bytes memory claimData
|
29
|
-
) external returns (ClaimId);
|
30
|
-
|
31
|
-
/// @dev confirms the specified claim and fixes the final claim amount
|
32
|
-
/// function can only be called by product, policy needs to match with calling product
|
33
|
-
function confirmClaim(NftId policyNftId, ClaimId claimId, uint256 claimAmount) external;
|
34
|
-
|
35
|
-
/// @dev declares the claim as invalid, no payout(s) will be made
|
36
|
-
/// function can only be called by product, policy needs to match with calling product
|
37
|
-
function declineClaim(NftId policyNftId, ClaimId claimId) external;
|
38
|
-
|
39
|
-
/// @dev closes the claim
|
40
|
-
/// a claim may only be closed once all existing payouts have been executed and the sum of the paid out amounts has reached the claim amount
|
41
|
-
/// function can only be called by product, policy needs to match with calling product
|
42
|
-
function closeClaim(NftId policyNftId, ClaimId claimId) external;
|
43
|
-
|
44
|
-
/// @dev create a new payout for the specified policy and claim
|
45
|
-
/// function can only be called by product, policy needs to match with calling product
|
46
|
-
function createPayout(
|
47
|
-
NftId policyNftId,
|
48
|
-
ClaimId claimId,
|
49
|
-
uint256 payoutAmount,
|
50
|
-
bytes calldata payoutData
|
51
|
-
) external returns (PayoutId payoutId);
|
52
|
-
|
53
|
-
/// @dev callback function to confirm transfer of payout token to beneficiary
|
54
|
-
/// allows claim service to update claims/payout book keeping
|
55
|
-
/// only pool service can confirm executed payout
|
56
|
-
function payoutExecuted(
|
57
|
-
NftId policyNftId,
|
58
|
-
PayoutId payoutId
|
59
|
-
) external;
|
60
|
-
|
61
|
-
}
|
@@ -1,99 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {Amount} from "../../types/Amount.sol";
|
5
|
-
import {Fee} from "../../types/Fee.sol";
|
6
|
-
import {NftId} from "../../types/NftId.sol";
|
7
|
-
import {IBundle} from "../module/IBundle.sol";
|
8
|
-
import {IInstance} from "../../instance/IInstance.sol";
|
9
|
-
import {IPolicy} from "../module/IPolicy.sol";
|
10
|
-
import {IService} from "../../shared/IService.sol";
|
11
|
-
import {RoleId} from "../../types/RoleId.sol";
|
12
|
-
import {Seconds} from "../../types/Seconds.sol";
|
13
|
-
import {StateId} from "../../types/StateId.sol";
|
14
|
-
|
15
|
-
interface IPoolService is IService {
|
16
|
-
|
17
|
-
event LogPoolServiceMaxCapitalAmountUpdated(NftId poolNftId, uint256 previousMaxCapitalAmount, uint256 currentMaxCapitalAmount);
|
18
|
-
event LogPoolServiceBundleOwnerRoleSet(NftId poolNftId, RoleId bundleOwnerRole);
|
19
|
-
|
20
|
-
event LogPoolServiceBundleCreated(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
21
|
-
event LogPoolServiceBundleClosed(NftId instanceNftId, NftId poolNftId, NftId bundleNftId);
|
22
|
-
|
23
|
-
error ErrorPoolServiceBundleOwnerRoleAlreadySet(NftId poolNftId);
|
24
|
-
error ErrorPoolServiceBundlePoolMismatch(NftId bundlePoolNftId, NftId productPoolNftId);
|
25
|
-
|
26
|
-
/// @dev registers a new pool with the registry service
|
27
|
-
function register(address poolAddress) external returns(NftId);
|
28
|
-
|
29
|
-
/// @dev defines the required role for bundle owners for the calling pool
|
30
|
-
/// default implementation returns PUBLIC ROLE
|
31
|
-
function setBundleOwnerRole(RoleId bundleOwnerRole) external;
|
32
|
-
|
33
|
-
/// @dev sets the max capital amount for the calling pool
|
34
|
-
function setMaxCapitalAmount(uint256 maxCapitalAmount) external;
|
35
|
-
|
36
|
-
/// @dev set pool sepecific fees
|
37
|
-
function setFees(
|
38
|
-
Fee memory poolFee,
|
39
|
-
Fee memory stakingFee,
|
40
|
-
Fee memory performanceFee
|
41
|
-
) external;
|
42
|
-
|
43
|
-
|
44
|
-
/// @dev locks required collateral to cover the specified application (and turn it into a policy)
|
45
|
-
/// - retention level == 1: the full collateral amount will be locked by the specified bundle
|
46
|
-
/// - retention level < 1: a part of the coverage is provided by the specified bundle, the rest by the pool component
|
47
|
-
/// in which case the pool component might hold a re-insurance policy
|
48
|
-
/// may only be called by the policy service for unlocked pool components
|
49
|
-
function lockCollateral(
|
50
|
-
IInstance instance,
|
51
|
-
NftId productNftId,
|
52
|
-
NftId applicationNftId,
|
53
|
-
IPolicy.PolicyInfo memory applicationInfo,
|
54
|
-
uint256 premiumAmount
|
55
|
-
) external;
|
56
|
-
|
57
|
-
|
58
|
-
/// @dev releases the remaining collateral linked to the specified policy
|
59
|
-
/// may only be called by the policy service for unlocked pool components
|
60
|
-
function releaseCollateral(
|
61
|
-
IInstance instance,
|
62
|
-
NftId policyNftId,
|
63
|
-
IPolicy.PolicyInfo memory policyInfo
|
64
|
-
) external;
|
65
|
-
|
66
|
-
|
67
|
-
/// @dev create a new bundle for the provided parameters
|
68
|
-
/// staking fees will be deducted by the pool service from the staking amount
|
69
|
-
/// may only be called by registered and unlocked pool components
|
70
|
-
function createBundle(
|
71
|
-
address owner, // initial bundle owner
|
72
|
-
Fee memory fee, // fees deducted from premium that go to bundle owner
|
73
|
-
Amount stakingAmount, // staking amount - staking fees result in initial bundle capital
|
74
|
-
Seconds lifetime, // initial duration for which new policies are covered
|
75
|
-
bytes calldata filter // optional use case specific criteria that define if a policy may be covered by this bundle
|
76
|
-
)
|
77
|
-
external
|
78
|
-
returns(NftId bundleNftId); // the nft id of the newly created bundle
|
79
|
-
|
80
|
-
|
81
|
-
/// @dev closes the specified bundle
|
82
|
-
/// only open bundles (active or locked) may be closed
|
83
|
-
/// to close a bundle it may not have any non-closed polices attached to it
|
84
|
-
/// bundle fees and remaining capital (after deduction of the performance fee) will be transferred to the bundle owner
|
85
|
-
/// may only be called by registered and unlocked pool components
|
86
|
-
function closeBundle(NftId bundleNftId) external;
|
87
|
-
|
88
|
-
|
89
|
-
/// @dev increase stakes for bundle
|
90
|
-
/// staking fees will be deducted by the pool service from the staking amount
|
91
|
-
/// may only be called by registered and unlocked pool components
|
92
|
-
// function stake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
|
93
|
-
|
94
|
-
|
95
|
-
/// @dev decrease stakes for bundle
|
96
|
-
/// performance fees will be deducted by the pool service from the staking amount
|
97
|
-
/// may only be called by registered and unlocked pool components
|
98
|
-
// function unstake(NftId bundleNftId, uint256 amount) external returns(uint256 netAmount);
|
99
|
-
}
|
@@ -1,40 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.19;
|
3
|
-
|
4
|
-
import {IRisk} from "../module/IRisk.sol";
|
5
|
-
import {IService} from "../../shared/IService.sol";
|
6
|
-
|
7
|
-
import {NftId} from "../../types/NftId.sol";
|
8
|
-
import {ReferralId} from "../../types/Referral.sol";
|
9
|
-
import {RiskId} from "../../types/RiskId.sol";
|
10
|
-
import {StateId} from "../../types/StateId.sol";
|
11
|
-
import {Timestamp} from "../../types/Timestamp.sol";
|
12
|
-
import {UFixed} from "../../types/UFixed.sol";
|
13
|
-
import {Fee} from "../../types/Fee.sol";
|
14
|
-
|
15
|
-
interface IProductService is IService {
|
16
|
-
|
17
|
-
function register(address productAddress) external returns(NftId);
|
18
|
-
|
19
|
-
function setFees(
|
20
|
-
Fee memory productFee,
|
21
|
-
Fee memory processingFee
|
22
|
-
) external;
|
23
|
-
|
24
|
-
function createRisk(
|
25
|
-
RiskId riskId,
|
26
|
-
bytes memory data
|
27
|
-
) external;
|
28
|
-
|
29
|
-
|
30
|
-
function updateRisk(
|
31
|
-
RiskId riskId,
|
32
|
-
bytes memory data
|
33
|
-
) external;
|
34
|
-
|
35
|
-
|
36
|
-
function updateRiskState(
|
37
|
-
RiskId riskId,
|
38
|
-
StateId newState
|
39
|
-
) external;
|
40
|
-
}
|