@etherisc/gif-next 0.0.2-e5a2253-213 → 0.0.2-e5a6af8-639
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 +59 -18
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -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 +414 -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 +1060 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1402 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1048 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1439 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +830 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +929 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +961 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1538 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2077 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1471 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -0
- 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 +314 -1441
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +334 -202
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +374 -2546
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1653 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1023 -387
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +436 -404
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +356 -94
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3678 -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 -49
- 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 +223 -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 +25 -150
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
- 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 +1039 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -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/oracle/IOracleComponent.sol/IOracleComponent.json +788 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +291 -353
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → oracle/Oracle.sol/Oracle.json} +421 -367
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +966 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1299 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1465 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +834 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +497 -257
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +960 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1283 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1098 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1625 -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 +771 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +710 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1173 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1431 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +838 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +238 -228
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +925 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +290 -211
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +494 -268
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → product/IRiskService.sol/IRiskService.json} +154 -133
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1302 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +907 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +762 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1131 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +538 -20
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +273 -230
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +991 -90
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1886 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +330 -279
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +345 -83
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -96
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +307 -268
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1768 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +814 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +153 -172
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +270 -260
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1335 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +723 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +96 -34
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +46 -26
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +40 -31
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +106 -152
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +829 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +129 -20
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -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 +81 -30
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +96 -48
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +138 -164
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
- 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 +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1465 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +776 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1249 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +710 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -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 +398 -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 +203 -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 +142 -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 +246 -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/type/StateId.sol/StateIdLib.json +105 -0
- 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/type/Timestamp.sol/TimestampLib.json +312 -0
- 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 +548 -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/upgradeability/IVersionable.sol/IVersionable.json +55 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +602 -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/upgradeability/Versionable.sol/Versionable.json +78 -0
- package/contracts/authorization/AccessAdmin.sol +596 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +289 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/authorization/IAccessAdmin.sol +137 -0
- package/contracts/authorization/IAuthorization.sol +60 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +139 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +285 -0
- package/contracts/distribution/DistributionService.sol +355 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +52 -0
- package/contracts/distribution/IDistributionService.sol +101 -0
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +75 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +418 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +40 -43
- package/contracts/instance/IInstance.sol +56 -50
- package/contracts/instance/IInstanceService.sol +53 -21
- package/contracts/instance/Instance.sol +168 -198
- package/contracts/instance/InstanceAdmin.sol +277 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
- package/contracts/instance/InstanceReader.sol +264 -84
- package/contracts/instance/InstanceService.sol +309 -243
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +287 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +20 -42
- package/contracts/instance/module/IAccess.sol +19 -21
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/IComponents.sol +51 -0
- package/contracts/instance/module/IDistribution.sol +6 -4
- package/contracts/instance/module/IPolicy.sol +58 -19
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- package/contracts/oracle/BasicOracle.sol +47 -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 +66 -0
- package/contracts/oracle/Oracle.sol +156 -0
- package/contracts/oracle/OracleService.sol +291 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +154 -0
- package/contracts/pool/BasicPoolAuthorization.sol +57 -0
- package/contracts/pool/BundleService.sol +480 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +143 -0
- package/contracts/pool/IPoolComponent.sol +68 -0
- package/contracts/pool/IPoolService.sol +167 -0
- package/contracts/pool/Pool.sol +335 -0
- package/contracts/pool/PoolService.sol +534 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +257 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +42 -0
- package/contracts/product/ClaimService.sol +604 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +63 -0
- package/contracts/product/IClaimService.sol +123 -0
- package/contracts/product/IPolicyService.sol +80 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +59 -0
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +683 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +297 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +455 -0
- package/contracts/product/RiskService.sol +96 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +79 -34
- package/contracts/registry/IRegistry.sol +106 -26
- package/contracts/registry/IRegistryService.sol +38 -34
- package/contracts/registry/ITransferInterceptor.sol +1 -1
- package/contracts/registry/Registry.sol +530 -209
- package/contracts/registry/RegistryAdmin.sol +448 -0
- package/contracts/registry/RegistryService.sol +119 -198
- package/contracts/registry/RegistryServiceManager.sol +24 -33
- package/contracts/registry/ReleaseLifecycle.sol +30 -0
- package/contracts/registry/ReleaseRegistry.sol +501 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
- package/contracts/registry/TokenRegistry.sol +263 -58
- package/contracts/shared/Component.sol +265 -0
- package/contracts/shared/ComponentService.sol +735 -0
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +126 -0
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +74 -0
- package/contracts/shared/IComponentService.sol +120 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +41 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +15 -12
- package/contracts/shared/IPolicyHolder.sol +35 -0
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +15 -6
- package/contracts/shared/InitializableERC165.sol +27 -0
- package/contracts/shared/InstanceLinkedComponent.sol +213 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +71 -82
- package/contracts/shared/PolicyHolder.sol +62 -0
- package/contracts/shared/Registerable.sol +34 -39
- package/contracts/shared/RegistryLinked.sol +44 -0
- package/contracts/shared/Service.sol +60 -34
- package/contracts/shared/TokenHandler.sol +122 -10
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +157 -0
- package/contracts/staking/StakeManagerLib.sol +224 -0
- package/contracts/staking/Staking.sol +497 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +52 -0
- package/contracts/staking/StakingReader.sol +190 -0
- package/contracts/staking/StakingService.sol +393 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +150 -0
- package/contracts/{types → type}/Blocknumber.sol +27 -3
- package/contracts/type/ClaimId.sol +80 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +33 -23
- package/contracts/{types → type}/NftId.sol +22 -15
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +276 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +6 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +16 -2
- package/contracts/type/RoleId.sol +162 -0
- package/contracts/type/Seconds.sol +101 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +48 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +34 -15
- package/contracts/{types → type}/UFixed.sol +39 -9
- package/contracts/{types → type}/Version.sol +5 -2
- package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
- package/contracts/upgradeability/ProxyManager.sol +232 -0
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/upgradeability/Versionable.sol +59 -0
- package/package.json +11 -7
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
- 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/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- 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 -788
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1047
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -100
- 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 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- 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/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1121
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -436
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -791
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -424
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
- 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 -1246
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -492
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -825
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -424
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -875
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -424
- 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 -530
- 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 -35
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- 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/shared/Versionable.sol/Versionable.json +0 -228
- 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 -305
- 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 -600
- 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 -286
- 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/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/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 -257
- 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 -153
- 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/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- 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/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
- 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/BaseComponent.sol +0 -168
- package/contracts/components/Distribution.sol +0 -154
- package/contracts/components/IBaseComponent.sol +0 -35
- package/contracts/components/IDistributionComponent.sol +0 -44
- package/contracts/components/IPoolComponent.sol +0 -66
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -258
- package/contracts/components/Product.sol +0 -295
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
- package/contracts/instance/IInstanceBase.sol +0 -25
- package/contracts/instance/InstanceAccessManager.sol +0 -303
- package/contracts/instance/InstanceBase.sol +0 -39
- package/contracts/instance/base/ComponentServiceBase.sol +0 -138
- package/contracts/instance/base/IInstanceBase.sol +0 -21
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/base/Lifecycle.sol +0 -100
- package/contracts/instance/module/ISetup.sol +0 -46
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/BundleService.sol +0 -294
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/DistributionService.sol +0 -115
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IBundleService.sol +0 -44
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPolicyService.sol +0 -94
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -539
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -142
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -209
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -210
- package/contracts/registry/ReleaseManager.sol +0 -342
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/shared/ERC165.sol +0 -25
- package/contracts/shared/ProxyManager.sol +0 -94
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
- package/contracts/shared/Versionable.sol +0 -147
- 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/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -152
- package/contracts/types/RoleId.sol +0 -90
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,355 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
5
|
+
import {IInstance} from "../instance/IInstance.sol";
|
6
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
7
|
+
import {IInstanceService} from "../instance/IInstanceService.sol";
|
8
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
9
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
10
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
11
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
12
|
+
|
13
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
14
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
15
|
+
import {KEEP_STATE} from "../type/StateId.sol";
|
16
|
+
import {ObjectType, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
|
17
|
+
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
18
|
+
import {IDistributionService} from "./IDistributionService.sol";
|
19
|
+
import {UFixed} from "../type/UFixed.sol";
|
20
|
+
import {DistributorType, DistributorTypeLib} from "../type/DistributorType.sol";
|
21
|
+
import {ReferralId, ReferralLib} from "../type/Referral.sol";
|
22
|
+
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
23
|
+
import {IDistribution} from "../instance/module/IDistribution.sol";
|
24
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
25
|
+
|
26
|
+
|
27
|
+
contract DistributionService is
|
28
|
+
ComponentVerifyingService,
|
29
|
+
IDistributionService
|
30
|
+
{
|
31
|
+
IComponentService private _componentService;
|
32
|
+
IInstanceService private _instanceService;
|
33
|
+
IRegistryService private _registryService;
|
34
|
+
|
35
|
+
function _initialize(
|
36
|
+
address owner,
|
37
|
+
bytes memory data
|
38
|
+
)
|
39
|
+
internal
|
40
|
+
virtual override
|
41
|
+
initializer()
|
42
|
+
{
|
43
|
+
(
|
44
|
+
address registryAddress,
|
45
|
+
address authority
|
46
|
+
) = abi.decode(data, (address, address));
|
47
|
+
|
48
|
+
_initializeService(registryAddress, authority, owner);
|
49
|
+
|
50
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
51
|
+
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
52
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
53
|
+
|
54
|
+
_registerInterface(type(IDistributionService).interfaceId);
|
55
|
+
}
|
56
|
+
|
57
|
+
|
58
|
+
function createDistributorType(
|
59
|
+
string memory name,
|
60
|
+
UFixed minDiscountPercentage,
|
61
|
+
UFixed maxDiscountPercentage,
|
62
|
+
UFixed commissionPercentage,
|
63
|
+
uint32 maxReferralCount,
|
64
|
+
uint32 maxReferralLifetime,
|
65
|
+
bool allowSelfReferrals,
|
66
|
+
bool allowRenewals,
|
67
|
+
bytes memory data
|
68
|
+
)
|
69
|
+
external
|
70
|
+
returns (DistributorType distributorType)
|
71
|
+
{
|
72
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
73
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
74
|
+
|
75
|
+
{
|
76
|
+
NftId productNftId = _getProductNftId(distributionNftId);
|
77
|
+
IComponents.ProductInfo memory productInfo = instance.getInstanceReader().getProductInfo(productNftId);
|
78
|
+
|
79
|
+
UFixed variableDistributionFees = productInfo.distributionFee.fractionalFee;
|
80
|
+
UFixed variableFeesPartsTotal = productInfo.minDistributionOwnerFee.fractionalFee + commissionPercentage;
|
81
|
+
|
82
|
+
if (variableFeesPartsTotal > variableDistributionFees) {
|
83
|
+
revert ErrorDistributionServiceVariableFeesTooHight(variableDistributionFees.toInt1000(), variableFeesPartsTotal.toInt1000());
|
84
|
+
}
|
85
|
+
UFixed maxDiscountPercentageLimit = variableDistributionFees - variableFeesPartsTotal;
|
86
|
+
|
87
|
+
if (maxDiscountPercentage.gt(maxDiscountPercentageLimit)) {
|
88
|
+
revert ErrorDistributionServiceMaxDiscountTooHigh(maxDiscountPercentage.toInt1000(), maxDiscountPercentageLimit.toInt1000());
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
|
93
|
+
IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo(
|
94
|
+
name,
|
95
|
+
minDiscountPercentage,
|
96
|
+
maxDiscountPercentage,
|
97
|
+
commissionPercentage,
|
98
|
+
maxReferralCount,
|
99
|
+
maxReferralLifetime,
|
100
|
+
allowSelfReferrals,
|
101
|
+
allowRenewals,
|
102
|
+
data);
|
103
|
+
|
104
|
+
instance.getInstanceStore().createDistributorType(distributorType, info);
|
105
|
+
}
|
106
|
+
|
107
|
+
|
108
|
+
function createDistributor(
|
109
|
+
address distributor,
|
110
|
+
DistributorType distributorType,
|
111
|
+
bytes memory data
|
112
|
+
)
|
113
|
+
external
|
114
|
+
virtual
|
115
|
+
returns (NftId distributorNftId)
|
116
|
+
{
|
117
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
118
|
+
|
119
|
+
distributorNftId = _registryService.registerDistributor(
|
120
|
+
IRegistry.ObjectInfo(
|
121
|
+
NftIdLib.zero(),
|
122
|
+
distributionNftId,
|
123
|
+
DISTRIBUTOR(),
|
124
|
+
true, // intercepting property for bundles is defined on pool
|
125
|
+
address(0),
|
126
|
+
distributor,
|
127
|
+
""
|
128
|
+
));
|
129
|
+
|
130
|
+
IDistribution.DistributorInfo memory info = IDistribution.DistributorInfo(
|
131
|
+
distributorType,
|
132
|
+
true, // active
|
133
|
+
data,
|
134
|
+
0);
|
135
|
+
|
136
|
+
instance.getInstanceStore().createDistributor(distributorNftId, info);
|
137
|
+
}
|
138
|
+
|
139
|
+
// function updateDistributorType(
|
140
|
+
// NftId distributorNftId,
|
141
|
+
// DistributorType distributorType,
|
142
|
+
// bytes memory data
|
143
|
+
// )
|
144
|
+
// external
|
145
|
+
// virtual
|
146
|
+
// {
|
147
|
+
// (, IInstance instance) = _getAndVerifyCallingDistribution();
|
148
|
+
// InstanceReader instanceReader = instance.getInstanceReader();
|
149
|
+
// IDistribution.DistributorInfo memory distributorInfo = instanceReader.getDistributorInfo(distributorNftId);
|
150
|
+
// distributorInfo.distributorType = distributorType;
|
151
|
+
// distributorInfo.data = data;
|
152
|
+
// instance.updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
|
153
|
+
// }
|
154
|
+
|
155
|
+
|
156
|
+
function createReferral(
|
157
|
+
NftId distributorNftId,
|
158
|
+
string memory code,
|
159
|
+
UFixed discountPercentage,
|
160
|
+
uint32 maxReferrals,
|
161
|
+
Timestamp expiryAt,
|
162
|
+
bytes memory data
|
163
|
+
)
|
164
|
+
external
|
165
|
+
virtual
|
166
|
+
onlyNftOfType(distributorNftId, DISTRIBUTOR())
|
167
|
+
returns (ReferralId referralId)
|
168
|
+
{
|
169
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
170
|
+
|
171
|
+
if (bytes(code).length == 0) {
|
172
|
+
revert ErrorIDistributionServiceInvalidReferral(code);
|
173
|
+
}
|
174
|
+
if (expiryAt.eqz()) {
|
175
|
+
revert ErrorIDistributionServiceExpirationInvalid(expiryAt);
|
176
|
+
}
|
177
|
+
|
178
|
+
{
|
179
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
180
|
+
DistributorType distributorType = instanceReader.getDistributorInfo(distributorNftId).distributorType;
|
181
|
+
IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
|
182
|
+
|
183
|
+
if (distributorTypeData.maxReferralCount < maxReferrals) {
|
184
|
+
revert ErrorIDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
|
185
|
+
}
|
186
|
+
if (distributorTypeData.minDiscountPercentage > discountPercentage) {
|
187
|
+
revert ErrorIDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
|
188
|
+
}
|
189
|
+
if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
|
190
|
+
revert ErrorIDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage.toInt(), discountPercentage.toInt());
|
191
|
+
}
|
192
|
+
if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime) {
|
193
|
+
revert ErrorIDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt.toInt());
|
194
|
+
}
|
195
|
+
}
|
196
|
+
|
197
|
+
{
|
198
|
+
referralId = ReferralLib.toReferralId(distributionNftId, code);
|
199
|
+
IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo(
|
200
|
+
distributorNftId,
|
201
|
+
code,
|
202
|
+
discountPercentage,
|
203
|
+
maxReferrals,
|
204
|
+
0, // used referrals
|
205
|
+
expiryAt,
|
206
|
+
data
|
207
|
+
);
|
208
|
+
|
209
|
+
instance.getInstanceStore().createReferral(referralId, info);
|
210
|
+
}
|
211
|
+
}
|
212
|
+
|
213
|
+
/// @inheritdoc IDistributionService
|
214
|
+
function processReferral(
|
215
|
+
NftId distributionNftId,
|
216
|
+
ReferralId referralId
|
217
|
+
)
|
218
|
+
external
|
219
|
+
virtual
|
220
|
+
restricted()
|
221
|
+
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
222
|
+
{
|
223
|
+
if (referralIsValid(distributionNftId, referralId)) {
|
224
|
+
IRegistry registry = getRegistry();
|
225
|
+
IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionNftId);
|
226
|
+
IInstance instance = _getInstanceForComponent(registry, distributionInfo);
|
227
|
+
|
228
|
+
// update book keeping for referral info
|
229
|
+
IDistribution.ReferralInfo memory referralInfo = instance.getInstanceReader().getReferralInfo(referralId);
|
230
|
+
referralInfo.usedReferrals += 1;
|
231
|
+
instance.getInstanceStore().updateReferral(referralId, referralInfo, KEEP_STATE());
|
232
|
+
}
|
233
|
+
}
|
234
|
+
|
235
|
+
function processSale(
|
236
|
+
NftId distributionNftId, // assume always of distribution type
|
237
|
+
ReferralId referralId,
|
238
|
+
IPolicy.PremiumInfo memory premium
|
239
|
+
)
|
240
|
+
external
|
241
|
+
virtual
|
242
|
+
restricted()
|
243
|
+
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
244
|
+
{
|
245
|
+
IRegistry registry = getRegistry();
|
246
|
+
IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionNftId);
|
247
|
+
IInstance instance = _getInstanceForComponent(registry, distributionInfo);
|
248
|
+
InstanceReader reader = instance.getInstanceReader();
|
249
|
+
InstanceStore store = instance.getInstanceStore();
|
250
|
+
|
251
|
+
// get distribution owner fee amount
|
252
|
+
Amount distributionOwnerFee = premium.distributionOwnerFeeFixAmount + premium.distributionOwnerFeeVarAmount;
|
253
|
+
|
254
|
+
// update referral/distributor info if applicable
|
255
|
+
if (referralIsValid(distributionNftId, referralId)) {
|
256
|
+
|
257
|
+
// increase distribution balance by commission amount and distribution owner fee
|
258
|
+
Amount commissionAmount = premium.commissionAmount;
|
259
|
+
_componentService.increaseDistributionBalance(store, distributionNftId, commissionAmount, distributionOwnerFee);
|
260
|
+
|
261
|
+
// update book keeping for referral info
|
262
|
+
IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
|
263
|
+
|
264
|
+
_componentService.increaseDistributorBalance(store, referralInfo.distributorNftId, AmountLib.zero(), commissionAmount);
|
265
|
+
|
266
|
+
// update book keeping for distributor info
|
267
|
+
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
268
|
+
distributorInfo.numPoliciesSold += 1;
|
269
|
+
store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
|
270
|
+
} else {
|
271
|
+
// increase distribution balance by distribution owner fee
|
272
|
+
_componentService.increaseDistributionBalance(store, distributionNftId, AmountLib.zero(), distributionOwnerFee);
|
273
|
+
}
|
274
|
+
}
|
275
|
+
|
276
|
+
/// @inheritdoc IDistributionService
|
277
|
+
function withdrawCommission(NftId distributorNftId, Amount amount)
|
278
|
+
public
|
279
|
+
virtual
|
280
|
+
// TODO: restricted() (once #462 is done)
|
281
|
+
onlyNftOfType(distributorNftId, DISTRIBUTOR())
|
282
|
+
returns (Amount withdrawnAmount)
|
283
|
+
{
|
284
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
285
|
+
InstanceReader reader = instance.getInstanceReader();
|
286
|
+
|
287
|
+
IComponents.ComponentInfo memory distributionInfo = reader.getComponentInfo(distributionNftId);
|
288
|
+
address distributionWallet = distributionInfo.wallet;
|
289
|
+
|
290
|
+
Amount commissionAmount = reader.getFeeAmount(distributorNftId);
|
291
|
+
|
292
|
+
// determine withdrawn amount
|
293
|
+
withdrawnAmount = amount;
|
294
|
+
if (withdrawnAmount.gte(AmountLib.max())) {
|
295
|
+
withdrawnAmount = commissionAmount;
|
296
|
+
} else {
|
297
|
+
if (withdrawnAmount.gt(commissionAmount)) {
|
298
|
+
revert ErrorDistributionServiceCommissionWithdrawAmountExceedsLimit(withdrawnAmount, commissionAmount);
|
299
|
+
}
|
300
|
+
}
|
301
|
+
|
302
|
+
// decrease fee counters by withdrawnAmount and update distributor info
|
303
|
+
{
|
304
|
+
InstanceStore store = instance.getInstanceStore();
|
305
|
+
// decrease fee counter for distribution balance
|
306
|
+
_componentService.decreaseDistributionBalance(store, distributionNftId, withdrawnAmount, AmountLib.zero());
|
307
|
+
// decrease fee counter for distributor fee
|
308
|
+
_componentService.decreaseDistributorBalance(store, distributorNftId, AmountLib.zero(), withdrawnAmount);
|
309
|
+
}
|
310
|
+
|
311
|
+
// transfer amount to distributor
|
312
|
+
{
|
313
|
+
address distributor = getRegistry().ownerOf(distributorNftId);
|
314
|
+
emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.token), withdrawnAmount);
|
315
|
+
distributionInfo.tokenHandler.distributeTokens(distributionWallet, distributor, withdrawnAmount);
|
316
|
+
}
|
317
|
+
}
|
318
|
+
|
319
|
+
function referralIsValid(NftId distributionNftId, ReferralId referralId)
|
320
|
+
public
|
321
|
+
view
|
322
|
+
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
323
|
+
returns (bool isValid)
|
324
|
+
{
|
325
|
+
if (distributionNftId.eqz() || referralId.eqz()) {
|
326
|
+
return false;
|
327
|
+
}
|
328
|
+
|
329
|
+
IRegistry registry = getRegistry();
|
330
|
+
IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionNftId);
|
331
|
+
IInstance instance = _getInstanceForComponent(registry, distributionInfo);
|
332
|
+
IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
|
333
|
+
|
334
|
+
if (info.distributorNftId.eqz()) {
|
335
|
+
return false;
|
336
|
+
}
|
337
|
+
|
338
|
+
isValid = info.expiryAt.eqz() || (info.expiryAt.gtz() && TimestampLib.blockTimestamp() <= info.expiryAt);
|
339
|
+
isValid = isValid && info.usedReferrals < info.maxReferrals;
|
340
|
+
}
|
341
|
+
|
342
|
+
function _getInstanceForDistribution(NftId distributionNftId)
|
343
|
+
internal
|
344
|
+
view
|
345
|
+
returns(IInstance instance)
|
346
|
+
{
|
347
|
+
NftId instanceNftId = getRegistry().getObjectInfo(distributionNftId).parentNftId;
|
348
|
+
address instanceAddress = getRegistry().getObjectAddress(instanceNftId);
|
349
|
+
return IInstance(instanceAddress);
|
350
|
+
}
|
351
|
+
|
352
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
353
|
+
return DISTRIBUTION();
|
354
|
+
}
|
355
|
+
}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
|
+
import {DistributionService} from "./DistributionService.sol";
|
7
|
+
|
8
|
+
contract DistributionServiceManager is ProxyManager {
|
9
|
+
|
10
|
+
DistributionService private _distributionService;
|
11
|
+
|
12
|
+
/// @dev initializes proxy manager with distribution service implementation and deploys instance
|
13
|
+
constructor(
|
14
|
+
address authority,
|
15
|
+
address registry,
|
16
|
+
bytes32 salt
|
17
|
+
)
|
18
|
+
{
|
19
|
+
DistributionService svc = new DistributionService{salt: salt}();
|
20
|
+
bytes memory data = abi.encode(registry, authority);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
|
+
address(svc),
|
24
|
+
data,
|
25
|
+
salt);
|
26
|
+
|
27
|
+
_distributionService = DistributionService(address(versionable));
|
28
|
+
}
|
29
|
+
|
30
|
+
//--- view functions ----------------------------------------------------//
|
31
|
+
function getDistributionService()
|
32
|
+
external
|
33
|
+
view
|
34
|
+
returns (DistributionService distributionService)
|
35
|
+
{
|
36
|
+
return _distributionService;
|
37
|
+
}
|
38
|
+
|
39
|
+
}
|
@@ -0,0 +1,52 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
6
|
+
import {NftId} from "../type/NftId.sol";
|
7
|
+
import {ReferralId, ReferralStatus} from "../type/Referral.sol";
|
8
|
+
import {UFixed} from "../type/UFixed.sol";
|
9
|
+
|
10
|
+
interface IDistributionComponent is IInstanceLinkedComponent {
|
11
|
+
|
12
|
+
error ErrorDistributionNotDistributor(address distributor);
|
13
|
+
error ErrorDistributionAlreadyDistributor(address distributor, NftId distributorNftId);
|
14
|
+
|
15
|
+
event LogDistributorUpdated(address to, address operator);
|
16
|
+
|
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);
|
19
|
+
|
20
|
+
/// @dev Returns the distributor Nft Id for the provided address
|
21
|
+
function getDistributorNftId(address distributor) external view returns (NftId distributorNftId);
|
22
|
+
|
23
|
+
function getDiscountPercentage(
|
24
|
+
string memory referralCode
|
25
|
+
) external view returns (UFixed discountPercentage, ReferralStatus status);
|
26
|
+
|
27
|
+
function getReferralId(
|
28
|
+
string memory referralCode
|
29
|
+
) external returns (ReferralId referralId);
|
30
|
+
|
31
|
+
function calculateRenewalFeeAmount(
|
32
|
+
ReferralId referralId,
|
33
|
+
uint256 netPremiumAmount
|
34
|
+
) external view returns (uint256 feeAmount);
|
35
|
+
|
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.
|
39
|
+
function processRenewal(
|
40
|
+
ReferralId referralId,
|
41
|
+
uint256 feeAmount
|
42
|
+
) external;
|
43
|
+
|
44
|
+
/// @dev Returns true to ensure component is called when transferring distributor Nft Ids.
|
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);
|
52
|
+
}
|
@@ -0,0 +1,101 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Amount} from "../type/Amount.sol";
|
5
|
+
import {NftId} from "../type/NftId.sol";
|
6
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
7
|
+
import {IService} from "../shared/IService.sol";
|
8
|
+
import {UFixed} from "../type/UFixed.sol";
|
9
|
+
import {DistributorType} from "../type/DistributorType.sol";
|
10
|
+
import {ReferralId} from "../type/Referral.sol";
|
11
|
+
import {Timestamp} from "../type/Timestamp.sol";
|
12
|
+
|
13
|
+
|
14
|
+
interface IDistributionService is IService {
|
15
|
+
|
16
|
+
error ErrorDistributionServiceCallerNotRegistered(address caller);
|
17
|
+
error ErrorIDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
|
18
|
+
error ErrorIDistributionServiceCallerNotDistributor(address caller);
|
19
|
+
error ErrorIDistributionServiceInvalidReferralId(ReferralId referralId);
|
20
|
+
error ErrorIDistributionServiceMaxReferralsExceeded(uint256 maxReferrals);
|
21
|
+
error ErrorIDistributionServiceDiscountTooLow(uint256 minDiscountPercentage, uint256 discountPercentage);
|
22
|
+
error ErrorIDistributionServiceDiscountTooHigh(uint256 maxDiscountPercentage, uint256 discountPercentage);
|
23
|
+
error ErrorIDistributionServiceExpiryTooLong(uint256 maxReferralLifetime, uint256 expiryAt);
|
24
|
+
error ErrorIDistributionServiceInvalidReferral(string code);
|
25
|
+
error ErrorIDistributionServiceExpirationInvalid(Timestamp expiryAt);
|
26
|
+
error ErrorIDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
|
27
|
+
error ErrorIDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
|
28
|
+
|
29
|
+
error ErrorDistributionServiceCommissionWithdrawAmountExceedsLimit(Amount amount, Amount limit);
|
30
|
+
|
31
|
+
error ErrorDistributionServiceVariableFeesTooHight(uint256 maxDiscountPercentage, uint256 limit);
|
32
|
+
error ErrorDistributionServiceMaxDiscountTooHigh(uint256 maxDiscountPercentage, uint256 limit);
|
33
|
+
|
34
|
+
error ErrorIDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
|
35
|
+
error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
|
36
|
+
|
37
|
+
event LogDistributionServiceCommissionWithdrawn(NftId distributorNftId, address recipient, address tokenAddress, Amount amount);
|
38
|
+
|
39
|
+
function createDistributorType(
|
40
|
+
string memory name,
|
41
|
+
UFixed minDiscountPercentage,
|
42
|
+
UFixed maxDiscountPercentage,
|
43
|
+
UFixed commissionPercentage,
|
44
|
+
uint32 maxReferralCount,
|
45
|
+
uint32 maxReferralLifetime,
|
46
|
+
bool allowSelfReferrals,
|
47
|
+
bool allowRenewals,
|
48
|
+
bytes memory data
|
49
|
+
)
|
50
|
+
external
|
51
|
+
returns (DistributorType distributorType);
|
52
|
+
|
53
|
+
function createDistributor(
|
54
|
+
address distributor,
|
55
|
+
DistributorType distributorType,
|
56
|
+
bytes memory data
|
57
|
+
) external returns (NftId distributorNftId);
|
58
|
+
|
59
|
+
// TODO re-enable and reorganize (service contract too large)
|
60
|
+
// function updateDistributorType(
|
61
|
+
// NftId distributorNftId,
|
62
|
+
// DistributorType distributorType,
|
63
|
+
// bytes memory data
|
64
|
+
// ) external;
|
65
|
+
|
66
|
+
function createReferral(
|
67
|
+
NftId distributorNftId,
|
68
|
+
string memory code,
|
69
|
+
UFixed discountPercentage,
|
70
|
+
uint32 maxReferrals,
|
71
|
+
Timestamp expiryAt,
|
72
|
+
bytes memory data
|
73
|
+
)
|
74
|
+
external
|
75
|
+
returns (ReferralId referralId);
|
76
|
+
|
77
|
+
/// @dev callback from product service when a referral is used.
|
78
|
+
/// Calling this will increment the referral usage counter.
|
79
|
+
function processReferral(
|
80
|
+
NftId distributionNftId,
|
81
|
+
ReferralId referralId
|
82
|
+
) external;
|
83
|
+
|
84
|
+
/// @dev callback from product service when selling a policy for a specific referralId
|
85
|
+
function processSale(
|
86
|
+
NftId distributionNftId,
|
87
|
+
ReferralId referralId,
|
88
|
+
IPolicy.PremiumInfo memory premium
|
89
|
+
) external;
|
90
|
+
|
91
|
+
function referralIsValid(
|
92
|
+
NftId distributorNftId,
|
93
|
+
ReferralId referralId
|
94
|
+
) external view returns (bool isValid);
|
95
|
+
|
96
|
+
/// @dev Withdraw commission for the distributor
|
97
|
+
/// @param distributorNftId the distributor Nft Id
|
98
|
+
/// @param amount the amount to withdraw. If set to AMOUNT_MAX, the full commission available is withdrawn
|
99
|
+
/// @return withdrawnAmount the effective withdrawn amount
|
100
|
+
function withdrawCommission(NftId distributorNftId, Amount amount) external returns (Amount withdrawnAmount);
|
101
|
+
}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
type DamageLevel is uint8;
|
5
|
+
|
6
|
+
// type bindings
|
7
|
+
using {
|
8
|
+
DamageLevelLib.eq,
|
9
|
+
DamageLevelLib.eqz,
|
10
|
+
DamageLevelLib.toInt
|
11
|
+
} for DamageLevel global;
|
12
|
+
|
13
|
+
// solhint-disable-next-line func-name-mixedcase
|
14
|
+
function DAMAGE_SMALL() pure returns (DamageLevel) {
|
15
|
+
return DamageLevel.wrap(1);
|
16
|
+
}
|
17
|
+
|
18
|
+
// solhint-disable-next-line func-name-mixedcase
|
19
|
+
function DAMAGE_MEDIUM() pure returns (DamageLevel) {
|
20
|
+
return DamageLevel.wrap(2);
|
21
|
+
}
|
22
|
+
|
23
|
+
// solhint-disable-next-line func-name-mixedcase
|
24
|
+
function DAMAGE_LARGE() pure returns (DamageLevel) {
|
25
|
+
return DamageLevel.wrap(3);
|
26
|
+
}
|
27
|
+
|
28
|
+
library DamageLevelLib {
|
29
|
+
|
30
|
+
error ErrorDamageLeveLibInvalidDamageLevel(uint8 damageLevel);
|
31
|
+
|
32
|
+
function zero() internal pure returns (DamageLevel) {
|
33
|
+
return DamageLevel.wrap(0);
|
34
|
+
}
|
35
|
+
|
36
|
+
function toDamageLevel(uint8 damage) internal pure returns (DamageLevel) {
|
37
|
+
if (damage == 1) {
|
38
|
+
return DAMAGE_SMALL();
|
39
|
+
} else if (damage == 2) {
|
40
|
+
return DAMAGE_MEDIUM();
|
41
|
+
} else if (damage == 3) {
|
42
|
+
return DAMAGE_LARGE();
|
43
|
+
} else {
|
44
|
+
revert ErrorDamageLeveLibInvalidDamageLevel(damage);
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
48
|
+
function toInt(DamageLevel damageLevel) internal pure returns (uint8) {
|
49
|
+
return uint8(DamageLevel.unwrap(damageLevel));
|
50
|
+
}
|
51
|
+
|
52
|
+
function eq(DamageLevel a, DamageLevel b) internal pure returns (bool) {
|
53
|
+
return DamageLevel.unwrap(a) == DamageLevel.unwrap(b);
|
54
|
+
}
|
55
|
+
|
56
|
+
function eqz(DamageLevel a) internal pure returns (bool) {
|
57
|
+
return DamageLevel.unwrap(a) == 0;
|
58
|
+
}
|
59
|
+
}
|
@@ -0,0 +1,75 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Amount, AmountLib} from "../../type/Amount.sol";
|
5
|
+
import {BasicPool} from "../../pool/BasicPool.sol";
|
6
|
+
import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
|
7
|
+
import {Fee} from "../../type/Fee.sol";
|
8
|
+
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
9
|
+
import {NftId} from "../../type/NftId.sol";
|
10
|
+
import {Seconds} from "../../type/Timestamp.sol";
|
11
|
+
import {UFixed} from "../../type/UFixed.sol";
|
12
|
+
|
13
|
+
contract FirePool is
|
14
|
+
BasicPool
|
15
|
+
{
|
16
|
+
|
17
|
+
constructor(
|
18
|
+
address registry,
|
19
|
+
NftId instanceNftId,
|
20
|
+
string memory componentName,
|
21
|
+
address token,
|
22
|
+
IAuthorization authorization
|
23
|
+
)
|
24
|
+
{
|
25
|
+
address initialOwner = msg.sender;
|
26
|
+
_intialize(
|
27
|
+
registry,
|
28
|
+
instanceNftId,
|
29
|
+
componentName,
|
30
|
+
token,
|
31
|
+
authorization,
|
32
|
+
initialOwner);
|
33
|
+
}
|
34
|
+
|
35
|
+
function _intialize(
|
36
|
+
address registry,
|
37
|
+
NftId instanceNftId,
|
38
|
+
string memory componentName,
|
39
|
+
address token,
|
40
|
+
IAuthorization authorization,
|
41
|
+
address initialOwner
|
42
|
+
)
|
43
|
+
internal
|
44
|
+
initializer
|
45
|
+
{
|
46
|
+
_initializeBasicPool(
|
47
|
+
registry,
|
48
|
+
instanceNftId,
|
49
|
+
authorization,
|
50
|
+
token,
|
51
|
+
componentName,
|
52
|
+
initialOwner);
|
53
|
+
}
|
54
|
+
|
55
|
+
function createBundle(
|
56
|
+
Fee memory fee,
|
57
|
+
Amount initialAmount,
|
58
|
+
Seconds lifetime
|
59
|
+
)
|
60
|
+
external
|
61
|
+
virtual
|
62
|
+
restricted()
|
63
|
+
returns(NftId bundleNftId, Amount netStakedAmount)
|
64
|
+
{
|
65
|
+
address owner = msg.sender;
|
66
|
+
bundleNftId = _createBundle(
|
67
|
+
owner,
|
68
|
+
fee,
|
69
|
+
lifetime,
|
70
|
+
"" // filter
|
71
|
+
);
|
72
|
+
netStakedAmount = _stake(bundleNftId, initialAmount);
|
73
|
+
}
|
74
|
+
|
75
|
+
}
|