@etherisc/gif-next 0.0.2-c68eaf3-087 → 0.0.2-c75d1c9-841
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 +81 -7
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +454 -253
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +227 -26
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +353 -189
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +105 -18
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +113 -290
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +212 -38
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +45 -163
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +323 -182
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +108 -70
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +32 -132
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +181 -71
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +121 -198
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +212 -38
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +287 -341
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +212 -38
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +184 -251
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +76 -155
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +239 -203
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +672 -362
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +198 -23
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +120 -14
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +240 -40
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +705 -322
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +206 -51
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +704 -304
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +146 -87
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +59 -47
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +621 -571
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +66 -167
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +194 -40
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +36 -71
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +50 -103
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +128 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +91 -41
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +69 -137
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +212 -38
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +145 -333
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +73 -99
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +62 -142
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -118
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +182 -235
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -149
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +472 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +350 -369
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +121 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +181 -57
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +76 -38
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +182 -215
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +212 -38
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +260 -179
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +96 -78
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +103 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +112 -56
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +48 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +163 -178
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +58 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +233 -194
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +727 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +103 -73
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +120 -100
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +68 -58
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +176 -209
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +143 -77
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +80 -38
- 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 +60 -12
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +98 -50
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +561 -429
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +56 -34
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +334 -64
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +49 -88
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +239 -520
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +77 -75
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +573 -4
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +36 -57
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +139 -347
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +36 -71
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +49 -102
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +125 -99
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +134 -10
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +225 -209
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +83 -59
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +40 -67
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +203 -56
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +73 -39
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +163 -149
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +60 -50
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +11 -11
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +69 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +32 -16
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +261 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +300 -192
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +307 -231
- package/contracts/authorization/IAccess.sol +13 -5
- package/contracts/authorization/IAccessAdmin.sol +69 -36
- package/contracts/authorization/IAuthorization.sol +21 -1
- package/contracts/distribution/BasicDistribution.sol +18 -16
- package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
- package/contracts/distribution/Distribution.sol +36 -77
- package/contracts/distribution/DistributionService.sol +111 -77
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +0 -9
- package/contracts/distribution/IDistributionService.sol +22 -20
- package/contracts/examples/fire/FirePool.sol +21 -8
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +32 -14
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +32 -6
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +49 -27
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +57 -17
- package/contracts/instance/IInstanceService.sol +27 -11
- package/contracts/instance/Instance.sol +102 -30
- package/contracts/instance/InstanceAdmin.sol +279 -106
- package/contracts/instance/InstanceAuthorizationV3.sol +87 -46
- package/contracts/instance/InstanceReader.sol +187 -32
- package/contracts/instance/InstanceService.sol +174 -126
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +20 -9
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -7
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/oracle/BasicOracle.sol +1 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +1 -3
- package/contracts/oracle/OracleService.sol +96 -77
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +23 -4
- package/contracts/pool/BasicPoolAuthorization.sol +27 -8
- package/contracts/pool/BundleService.sol +47 -145
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +15 -43
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +58 -60
- package/contracts/pool/Pool.sol +106 -98
- package/contracts/pool/PoolLib.sol +309 -0
- package/contracts/pool/PoolService.sol +271 -228
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +34 -15
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +8 -12
- package/contracts/product/BasicProductAuthorization.sol +24 -10
- package/contracts/product/ClaimService.sol +165 -137
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +8 -2
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +26 -11
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +7 -7
- package/contracts/product/PolicyService.sol +242 -293
- package/contracts/product/PolicyServiceLib.sol +119 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +30 -21
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +65 -53
- package/contracts/product/RiskService.sol +89 -31
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +14 -15
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +16 -3
- package/contracts/registry/RegistryAdmin.sol +145 -335
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +150 -134
- package/contracts/registry/ServiceAuthorizationV3.sol +178 -40
- package/contracts/registry/TokenRegistry.sol +10 -9
- package/contracts/shared/Component.sol +52 -107
- package/contracts/shared/ComponentService.sol +336 -420
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +16 -14
- package/contracts/shared/ContractLib.sol +312 -3
- package/contracts/shared/IComponent.sol +1 -17
- package/contracts/shared/IComponentService.sol +27 -37
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +4 -23
- package/contracts/shared/NftOwnable.sol +6 -6
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +41 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +275 -72
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +23 -12
- package/contracts/staking/IStakingService.sol +19 -1
- package/contracts/staking/Staking.sol +95 -46
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
- package/contracts/staking/StakingReader.sol +6 -16
- package/contracts/staking/StakingService.sol +74 -14
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/staking/StakingStore.sol +2 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +53 -35
- package/contracts/type/RiskId.sol +26 -8
- package/contracts/type/RoleId.sol +24 -4
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +34 -127
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/ProxyManager.sol +12 -10
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
- package/package.json +4 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
@@ -1,33 +1,36 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {IInstance} from "../instance/IInstance.sol";
|
4
|
+
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
6
5
|
import {IComponentService} from "../shared/IComponentService.sol";
|
6
|
+
import {IDistribution} from "../instance/module/IDistribution.sol";
|
7
|
+
import {IDistributionService} from "./IDistributionService.sol";
|
8
|
+
import {IInstance} from "../instance/IInstance.sol";
|
7
9
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
10
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
8
11
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
9
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
10
12
|
import {IComponents} from "../instance/module/IComponents.sol";
|
11
13
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
12
14
|
|
13
15
|
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
16
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
18
|
-
import {IDistributionService} from "./IDistributionService.sol";
|
19
|
-
import {UFixed} from "../type/UFixed.sol";
|
20
17
|
import {DistributorType, DistributorTypeLib} from "../type/DistributorType.sol";
|
18
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
19
|
+
import {KEEP_STATE} from "../type/StateId.sol";
|
20
|
+
import {ObjectType, ACCOUNTING, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
|
21
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
22
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
21
23
|
import {ReferralId, ReferralLib} from "../type/Referral.sol";
|
24
|
+
import {Seconds} from "../type/Seconds.sol";
|
22
25
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
23
|
-
import {
|
24
|
-
import {InstanceStore} from "../instance/InstanceStore.sol";
|
26
|
+
import {UFixed} from "../type/UFixed.sol";
|
25
27
|
|
26
28
|
|
27
29
|
contract DistributionService is
|
28
30
|
ComponentVerifyingService,
|
29
31
|
IDistributionService
|
30
32
|
{
|
33
|
+
IAccountingService private _accountingService;
|
31
34
|
IComponentService private _componentService;
|
32
35
|
IInstanceService private _instanceService;
|
33
36
|
IRegistryService private _registryService;
|
@@ -41,12 +44,13 @@ contract DistributionService is
|
|
41
44
|
initializer()
|
42
45
|
{
|
43
46
|
(
|
44
|
-
address
|
45
|
-
address
|
47
|
+
address authority,
|
48
|
+
address registry
|
46
49
|
) = abi.decode(data, (address, address));
|
47
50
|
|
48
|
-
|
51
|
+
__Service_init(authority, registry, owner);
|
49
52
|
|
53
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
50
54
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
51
55
|
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
52
56
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
@@ -61,23 +65,23 @@ contract DistributionService is
|
|
61
65
|
UFixed maxDiscountPercentage,
|
62
66
|
UFixed commissionPercentage,
|
63
67
|
uint32 maxReferralCount,
|
64
|
-
|
68
|
+
Seconds maxReferralLifetime,
|
65
69
|
bool allowSelfReferrals,
|
66
70
|
bool allowRenewals,
|
67
71
|
bytes memory data
|
68
72
|
)
|
69
73
|
external
|
74
|
+
restricted()
|
70
75
|
returns (DistributorType distributorType)
|
71
76
|
{
|
72
77
|
(NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
73
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
74
78
|
|
75
79
|
{
|
76
80
|
NftId productNftId = _getProductNftId(distributionNftId);
|
77
|
-
IComponents.
|
81
|
+
IComponents.FeeInfo memory feeInfo = instance.getInstanceReader().getFeeInfo(productNftId);
|
78
82
|
|
79
|
-
UFixed variableDistributionFees =
|
80
|
-
UFixed variableFeesPartsTotal =
|
83
|
+
UFixed variableDistributionFees = feeInfo.distributionFee.fractionalFee;
|
84
|
+
UFixed variableFeesPartsTotal = feeInfo.minDistributionOwnerFee.fractionalFee + commissionPercentage;
|
81
85
|
|
82
86
|
if (variableFeesPartsTotal > variableDistributionFees) {
|
83
87
|
revert ErrorDistributionServiceVariableFeesTooHight(variableDistributionFees.toInt1000(), variableFeesPartsTotal.toInt1000());
|
@@ -90,16 +94,17 @@ contract DistributionService is
|
|
90
94
|
}
|
91
95
|
|
92
96
|
distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
|
93
|
-
IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo(
|
94
|
-
name,
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
97
|
+
IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo({
|
98
|
+
name: name,
|
99
|
+
distributionNftId: distributionNftId,
|
100
|
+
minDiscountPercentage: minDiscountPercentage,
|
101
|
+
maxDiscountPercentage: maxDiscountPercentage,
|
102
|
+
commissionPercentage: commissionPercentage,
|
103
|
+
maxReferralCount: maxReferralCount,
|
104
|
+
maxReferralLifetime: maxReferralLifetime,
|
105
|
+
allowSelfReferrals: allowSelfReferrals,
|
106
|
+
allowRenewals: allowRenewals,
|
107
|
+
data: data});
|
103
108
|
|
104
109
|
instance.getInstanceStore().createDistributorType(distributorType, info);
|
105
110
|
}
|
@@ -112,9 +117,11 @@ contract DistributionService is
|
|
112
117
|
)
|
113
118
|
external
|
114
119
|
virtual
|
120
|
+
restricted()
|
115
121
|
returns (NftId distributorNftId)
|
116
122
|
{
|
117
123
|
(NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
124
|
+
_checkDistributionType(instance.getInstanceReader(), distributorType, distributionNftId);
|
118
125
|
|
119
126
|
distributorNftId = _registryService.registerDistributor(
|
120
127
|
IRegistry.ObjectInfo(
|
@@ -127,30 +134,33 @@ contract DistributionService is
|
|
127
134
|
""
|
128
135
|
));
|
129
136
|
|
130
|
-
IDistribution.DistributorInfo memory info = IDistribution.DistributorInfo(
|
131
|
-
distributorType,
|
132
|
-
true,
|
133
|
-
|
134
|
-
|
137
|
+
IDistribution.DistributorInfo memory info = IDistribution.DistributorInfo({
|
138
|
+
distributorType: distributorType,
|
139
|
+
active: true,
|
140
|
+
numPoliciesSold: 0,
|
141
|
+
data: data});
|
135
142
|
|
136
143
|
instance.getInstanceStore().createDistributor(distributorNftId, info);
|
137
144
|
}
|
138
145
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
146
|
+
function changeDistributorType(
|
147
|
+
NftId distributorNftId,
|
148
|
+
DistributorType newDistributorType,
|
149
|
+
bytes memory data
|
150
|
+
)
|
151
|
+
external
|
152
|
+
virtual
|
153
|
+
restricted()
|
154
|
+
{
|
155
|
+
_checkNftType(distributorNftId, DISTRIBUTOR());
|
156
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
157
|
+
_checkDistributionType(instance.getInstanceReader(), newDistributorType, distributionNftId);
|
158
|
+
|
159
|
+
IDistribution.DistributorInfo memory distributorInfo = instance.getInstanceReader().getDistributorInfo(distributorNftId);
|
160
|
+
distributorInfo.distributorType = newDistributorType;
|
161
|
+
distributorInfo.data = data;
|
162
|
+
instance.getInstanceStore().updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
|
163
|
+
}
|
154
164
|
|
155
165
|
|
156
166
|
function createReferral(
|
@@ -163,16 +173,22 @@ contract DistributionService is
|
|
163
173
|
)
|
164
174
|
external
|
165
175
|
virtual
|
176
|
+
restricted()
|
166
177
|
onlyNftOfType(distributorNftId, DISTRIBUTOR())
|
167
178
|
returns (ReferralId referralId)
|
168
179
|
{
|
169
180
|
(NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
170
181
|
|
171
182
|
if (bytes(code).length == 0) {
|
172
|
-
revert
|
183
|
+
revert ErrorDistributionServiceInvalidReferral(code);
|
173
184
|
}
|
174
185
|
if (expiryAt.eqz() || expiryAt.lte(TimestampLib.blockTimestamp())) {
|
175
|
-
revert
|
186
|
+
revert ErrorDistributionServiceExpirationInvalid(expiryAt);
|
187
|
+
}
|
188
|
+
|
189
|
+
NftId distributorDistributionNftId = getRegistry().getParentNftId(distributorNftId);
|
190
|
+
if (distributorDistributionNftId != distributionNftId) {
|
191
|
+
revert ErrorDistributionServiceDistributorDistributionMismatch(distributorNftId, distributorDistributionNftId, distributionNftId);
|
176
192
|
}
|
177
193
|
|
178
194
|
{
|
@@ -181,30 +197,31 @@ contract DistributionService is
|
|
181
197
|
IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
|
182
198
|
|
183
199
|
if (distributorTypeData.maxReferralCount < maxReferrals) {
|
184
|
-
revert
|
200
|
+
revert ErrorDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
|
185
201
|
}
|
186
202
|
if (distributorTypeData.minDiscountPercentage > discountPercentage) {
|
187
|
-
revert
|
203
|
+
revert ErrorDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
|
188
204
|
}
|
189
205
|
if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
|
190
|
-
revert
|
206
|
+
revert ErrorDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage.toInt(), discountPercentage.toInt());
|
191
207
|
}
|
192
|
-
if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime) {
|
193
|
-
revert
|
208
|
+
if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime.toInt()) {
|
209
|
+
revert ErrorDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt);
|
194
210
|
}
|
195
211
|
}
|
196
212
|
|
197
213
|
{
|
198
214
|
referralId = ReferralLib.toReferralId(distributionNftId, code);
|
199
|
-
IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo(
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
215
|
+
IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo({
|
216
|
+
distributionNftId: distributionNftId,
|
217
|
+
distributorNftId: distributorNftId,
|
218
|
+
referralCode: code,
|
219
|
+
discountPercentage: discountPercentage,
|
220
|
+
maxReferrals: maxReferrals,
|
221
|
+
usedReferrals: 0,
|
222
|
+
expiryAt: expiryAt,
|
223
|
+
data: data
|
224
|
+
});
|
208
225
|
|
209
226
|
instance.getInstanceStore().createReferral(referralId, info);
|
210
227
|
}
|
@@ -223,7 +240,7 @@ contract DistributionService is
|
|
223
240
|
if (referralIsValid(distributionNftId, referralId)) {
|
224
241
|
IRegistry registry = getRegistry();
|
225
242
|
IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionNftId);
|
226
|
-
IInstance instance = _getInstanceForComponent(registry, distributionInfo);
|
243
|
+
IInstance instance = _getInstanceForComponent(registry, distributionInfo.parentNftId);
|
227
244
|
|
228
245
|
// update book keeping for referral info
|
229
246
|
IDistribution.ReferralInfo memory referralInfo = instance.getInstanceReader().getReferralInfo(referralId);
|
@@ -244,7 +261,7 @@ contract DistributionService is
|
|
244
261
|
{
|
245
262
|
IRegistry registry = getRegistry();
|
246
263
|
IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionNftId);
|
247
|
-
IInstance instance = _getInstanceForComponent(registry, distributionInfo);
|
264
|
+
IInstance instance = _getInstanceForComponent(registry, distributionInfo.parentNftId);
|
248
265
|
InstanceReader reader = instance.getInstanceReader();
|
249
266
|
InstanceStore store = instance.getInstanceStore();
|
250
267
|
|
@@ -256,12 +273,12 @@ contract DistributionService is
|
|
256
273
|
|
257
274
|
// increase distribution balance by commission amount and distribution owner fee
|
258
275
|
Amount commissionAmount = premium.commissionAmount;
|
259
|
-
|
276
|
+
_accountingService.increaseDistributionBalance(store, distributionNftId, commissionAmount, distributionOwnerFee);
|
260
277
|
|
261
278
|
// update book keeping for referral info
|
262
279
|
IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
|
263
280
|
|
264
|
-
|
281
|
+
_accountingService.increaseDistributorBalance(store, referralInfo.distributorNftId, AmountLib.zero(), commissionAmount);
|
265
282
|
|
266
283
|
// update book keeping for distributor info
|
267
284
|
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
@@ -269,7 +286,7 @@ contract DistributionService is
|
|
269
286
|
store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
|
270
287
|
} else {
|
271
288
|
// increase distribution balance by distribution owner fee
|
272
|
-
|
289
|
+
_accountingService.increaseDistributionBalance(store, distributionNftId, AmountLib.zero(), distributionOwnerFee);
|
273
290
|
}
|
274
291
|
}
|
275
292
|
|
@@ -277,7 +294,7 @@ contract DistributionService is
|
|
277
294
|
function withdrawCommission(NftId distributorNftId, Amount amount)
|
278
295
|
public
|
279
296
|
virtual
|
280
|
-
|
297
|
+
restricted()
|
281
298
|
onlyNftOfType(distributorNftId, DISTRIBUTOR())
|
282
299
|
returns (Amount withdrawnAmount)
|
283
300
|
{
|
@@ -285,7 +302,7 @@ contract DistributionService is
|
|
285
302
|
InstanceReader reader = instance.getInstanceReader();
|
286
303
|
|
287
304
|
IComponents.ComponentInfo memory distributionInfo = reader.getComponentInfo(distributionNftId);
|
288
|
-
address distributionWallet = distributionInfo.
|
305
|
+
// address distributionWallet = distributionInfo.tokenHandler.getWallet();
|
289
306
|
|
290
307
|
Amount commissionAmount = reader.getFeeAmount(distributorNftId);
|
291
308
|
|
@@ -303,16 +320,16 @@ contract DistributionService is
|
|
303
320
|
{
|
304
321
|
InstanceStore store = instance.getInstanceStore();
|
305
322
|
// decrease fee counter for distribution balance
|
306
|
-
|
323
|
+
_accountingService.decreaseDistributionBalance(store, distributionNftId, withdrawnAmount, AmountLib.zero());
|
307
324
|
// decrease fee counter for distributor fee
|
308
|
-
|
325
|
+
_accountingService.decreaseDistributorBalance(store, distributorNftId, AmountLib.zero(), withdrawnAmount);
|
309
326
|
}
|
310
327
|
|
311
328
|
// transfer amount to distributor
|
312
329
|
{
|
313
330
|
address distributor = getRegistry().ownerOf(distributorNftId);
|
314
|
-
emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.
|
315
|
-
distributionInfo.tokenHandler.
|
331
|
+
emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.tokenHandler.TOKEN()), withdrawnAmount);
|
332
|
+
distributionInfo.tokenHandler.pushToken(distributor, withdrawnAmount);
|
316
333
|
}
|
317
334
|
}
|
318
335
|
|
@@ -328,23 +345,40 @@ contract DistributionService is
|
|
328
345
|
|
329
346
|
IRegistry registry = getRegistry();
|
330
347
|
IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionNftId);
|
331
|
-
IInstance instance = _getInstanceForComponent(registry, distributionInfo);
|
348
|
+
IInstance instance = _getInstanceForComponent(registry, distributionInfo.parentNftId);
|
332
349
|
IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
|
333
350
|
|
334
351
|
if (info.distributorNftId.eqz()) {
|
335
352
|
return false;
|
336
353
|
}
|
337
354
|
|
355
|
+
// ensure the referral was created on the same distribution
|
356
|
+
if(info.distributionNftId != distributionNftId) {
|
357
|
+
revert ErrorDistributionServiceReferralDistributionMismatch(referralId, info.distributionNftId, distributionNftId);
|
358
|
+
}
|
359
|
+
|
338
360
|
isValid = info.expiryAt.eqz() || (info.expiryAt.gtz() && TimestampLib.blockTimestamp() <= info.expiryAt);
|
339
361
|
isValid = isValid && info.usedReferrals < info.maxReferrals;
|
340
362
|
}
|
341
363
|
|
364
|
+
function _checkDistributionType(InstanceReader instanceReader, DistributorType distributorType, NftId expectedDistributionNftId)
|
365
|
+
internal
|
366
|
+
view
|
367
|
+
{
|
368
|
+
// enfore distributor type belongs to the calling distribution
|
369
|
+
NftId distributorTypeDistributionNftId = instanceReader.getDistributorTypeInfo(distributorType).distributionNftId;
|
370
|
+
|
371
|
+
if (distributorTypeDistributionNftId != expectedDistributionNftId) {
|
372
|
+
revert ErrorDistributionServiceDistributorTypeDistributionMismatch(distributorType, distributorTypeDistributionNftId, expectedDistributionNftId);
|
373
|
+
}
|
374
|
+
}
|
375
|
+
|
342
376
|
function _getInstanceForDistribution(NftId distributionNftId)
|
343
377
|
internal
|
344
378
|
view
|
345
379
|
returns(IInstance instance)
|
346
380
|
{
|
347
|
-
NftId instanceNftId = getRegistry().
|
381
|
+
NftId instanceNftId = getRegistry().getParentNftId(distributionNftId);
|
348
382
|
address instanceAddress = getRegistry().getObjectAddress(instanceNftId);
|
349
383
|
return IInstance(instanceAddress);
|
350
384
|
}
|
@@ -17,7 +17,7 @@ contract DistributionServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
DistributionService svc = new DistributionService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|
@@ -9,17 +9,8 @@ import {UFixed} from "../type/UFixed.sol";
|
|
9
9
|
|
10
10
|
interface IDistributionComponent is IInstanceLinkedComponent {
|
11
11
|
|
12
|
-
error ErrorDistributionNotDistributor(address distributor);
|
13
|
-
error ErrorDistributionAlreadyDistributor(address distributor, NftId distributorNftId);
|
14
|
-
|
15
12
|
event LogDistributorUpdated(address to, address operator);
|
16
13
|
|
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
14
|
function getDiscountPercentage(
|
24
15
|
string memory referralCode
|
25
16
|
) external view returns (UFixed discountPercentage, ReferralStatus status);
|
@@ -8,31 +8,34 @@ import {IService} from "../shared/IService.sol";
|
|
8
8
|
import {UFixed} from "../type/UFixed.sol";
|
9
9
|
import {DistributorType} from "../type/DistributorType.sol";
|
10
10
|
import {ReferralId} from "../type/Referral.sol";
|
11
|
+
import {Seconds} from "../type/Seconds.sol";
|
11
12
|
import {Timestamp} from "../type/Timestamp.sol";
|
12
13
|
|
13
14
|
|
14
15
|
interface IDistributionService is IService {
|
15
|
-
|
16
16
|
error ErrorDistributionServiceCallerNotRegistered(address caller);
|
17
|
-
error
|
18
|
-
error
|
19
|
-
error
|
20
|
-
error
|
21
|
-
error
|
22
|
-
error
|
23
|
-
error
|
24
|
-
error
|
25
|
-
error
|
26
|
-
error
|
27
|
-
error
|
17
|
+
error ErrorDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
|
18
|
+
error ErrorDistributionServiceCallerNotDistributor(address caller);
|
19
|
+
error ErrorDistributionServiceInvalidReferralId(ReferralId referralId);
|
20
|
+
error ErrorDistributionServiceMaxReferralsExceeded(uint256 maxReferrals);
|
21
|
+
error ErrorDistributionServiceDiscountTooLow(uint256 minDiscountPercentage, uint256 discountPercentage);
|
22
|
+
error ErrorDistributionServiceDiscountTooHigh(uint256 maxDiscountPercentage, uint256 discountPercentage);
|
23
|
+
error ErrorDistributionServiceExpiryTooLong(Seconds maxReferralLifetime, Timestamp expiryAt);
|
24
|
+
error ErrorDistributionServiceInvalidReferral(string code);
|
25
|
+
error ErrorDistributionServiceExpirationInvalid(Timestamp expiryAt);
|
26
|
+
error ErrorDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
|
27
|
+
error ErrorDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
|
28
|
+
error ErrorDistributionServiceDistributorTypeDistributionMismatch(DistributorType distributorType, NftId distributorTypeDistributionNftId, NftId distributionNftId);
|
29
|
+
error ErrorDistributionServiceDistributorDistributionMismatch(NftId distributorNftId, NftId distributorDistributionNftId, NftId distributionNftId);
|
28
30
|
|
29
31
|
error ErrorDistributionServiceCommissionWithdrawAmountExceedsLimit(Amount amount, Amount limit);
|
30
32
|
|
31
33
|
error ErrorDistributionServiceVariableFeesTooHight(uint256 maxDiscountPercentage, uint256 limit);
|
32
34
|
error ErrorDistributionServiceMaxDiscountTooHigh(uint256 maxDiscountPercentage, uint256 limit);
|
33
35
|
|
34
|
-
error
|
36
|
+
error ErrorDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
|
35
37
|
error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
|
38
|
+
error ErrorDistributionServiceReferralDistributionMismatch(ReferralId referralId, NftId referralDistributionNft, NftId distributionNftId);
|
36
39
|
|
37
40
|
event LogDistributionServiceCommissionWithdrawn(NftId distributorNftId, address recipient, address tokenAddress, Amount amount);
|
38
41
|
|
@@ -42,7 +45,7 @@ interface IDistributionService is IService {
|
|
42
45
|
UFixed maxDiscountPercentage,
|
43
46
|
UFixed commissionPercentage,
|
44
47
|
uint32 maxReferralCount,
|
45
|
-
|
48
|
+
Seconds maxReferralLifetime,
|
46
49
|
bool allowSelfReferrals,
|
47
50
|
bool allowRenewals,
|
48
51
|
bytes memory data
|
@@ -56,12 +59,11 @@ interface IDistributionService is IService {
|
|
56
59
|
bytes memory data
|
57
60
|
) external returns (NftId distributorNftId);
|
58
61
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
// ) external;
|
62
|
+
function changeDistributorType(
|
63
|
+
NftId distributorNftId,
|
64
|
+
DistributorType newDistributorType,
|
65
|
+
bytes memory data
|
66
|
+
) external;
|
65
67
|
|
66
68
|
function createReferral(
|
67
69
|
NftId distributorNftId,
|
@@ -1,22 +1,24 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
6
|
+
import {Amount, AmountLib} from "../../type/Amount.sol";
|
5
7
|
import {BasicPool} from "../../pool/BasicPool.sol";
|
6
8
|
import {Fee} from "../../type/Fee.sol";
|
7
9
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
10
|
+
import {IComponents} from "../../instance/module/IComponents.sol";
|
8
11
|
import {NftId} from "../../type/NftId.sol";
|
9
12
|
import {Seconds} from "../../type/Timestamp.sol";
|
13
|
+
import {UFixed, UFixedLib} from "../../type/UFixed.sol";
|
10
14
|
|
11
15
|
contract FirePool is
|
12
16
|
BasicPool
|
13
|
-
{
|
14
|
-
|
17
|
+
{
|
15
18
|
constructor(
|
16
19
|
address registry,
|
17
20
|
NftId fireProductNftId,
|
18
21
|
string memory componentName,
|
19
|
-
address token,
|
20
22
|
IAuthorization authorization
|
21
23
|
)
|
22
24
|
{
|
@@ -25,7 +27,15 @@ contract FirePool is
|
|
25
27
|
registry,
|
26
28
|
fireProductNftId,
|
27
29
|
componentName,
|
28
|
-
|
30
|
+
IComponents.PoolInfo({
|
31
|
+
maxBalanceAmount: AmountLib.max(),
|
32
|
+
isInterceptingBundleTransfers: false,
|
33
|
+
isProcessingConfirmedClaims: false,
|
34
|
+
isExternallyManaged: false,
|
35
|
+
isVerifyingApplications: false,
|
36
|
+
collateralizationLevel: UFixedLib.one(),
|
37
|
+
retentionLevel: UFixedLib.one()
|
38
|
+
}),
|
29
39
|
authorization,
|
30
40
|
initialOwner);
|
31
41
|
}
|
@@ -34,7 +44,7 @@ contract FirePool is
|
|
34
44
|
address registry,
|
35
45
|
NftId fireProductNftId,
|
36
46
|
string memory componentName,
|
37
|
-
|
47
|
+
IComponents.PoolInfo memory poolInfo,
|
38
48
|
IAuthorization authorization,
|
39
49
|
address initialOwner
|
40
50
|
)
|
@@ -44,9 +54,9 @@ contract FirePool is
|
|
44
54
|
_initializeBasicPool(
|
45
55
|
registry,
|
46
56
|
fireProductNftId,
|
47
|
-
authorization,
|
48
|
-
token,
|
49
57
|
componentName,
|
58
|
+
poolInfo,
|
59
|
+
authorization,
|
50
60
|
initialOwner);
|
51
61
|
}
|
52
62
|
|
@@ -70,4 +80,7 @@ contract FirePool is
|
|
70
80
|
netStakedAmount = _stake(bundleNftId, initialAmount);
|
71
81
|
}
|
72
82
|
|
83
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
|
84
|
+
function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
|
85
|
+
function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
|
73
86
|
}
|
@@ -25,8 +25,9 @@ contract FirePoolAuthorization
|
|
25
25
|
IAccess.FunctionInfo[] storage functions;
|
26
26
|
|
27
27
|
// authorize public role (open access to any account, only allows to lock target)
|
28
|
-
functions = _authorizeForTarget(
|
28
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
29
29
|
// TODO: FirePool.createBundle must require a custom role (e.g. INVESTOR) instead of PUBLIC_ROLE
|
30
|
+
_authorize(functions, FirePool.approveTokenHandler.selector, "approveTokenHandler");
|
30
31
|
_authorize(functions, FirePool.createBundle.selector, "createBundle");
|
31
32
|
}
|
32
33
|
|