@etherisc/gif-next 0.0.2-de9ede4-391 → 0.0.2-deb924b-641
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/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +65 -58
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +20 -22
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +27 -3
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +148 -62
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +149 -21
- 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 +82 -12
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
- 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 +79 -49
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +51 -21
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +207 -192
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +53 -51
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +38 -8
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +97 -73
- 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 +76 -42
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +127 -40
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +233 -184
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
- 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 +106 -56
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +152 -33
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +95 -45
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +98 -48
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +127 -40
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +280 -147
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +152 -33
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +54 -21
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +53 -3
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +80 -40
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +344 -99
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +127 -40
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +175 -199
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -58
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +20 -22
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +44 -272
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +96 -53
- 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 +68 -38
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
- 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 +38 -8
- 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 +52 -22
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +75 -68
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +25 -27
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +51 -21
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +127 -40
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +102 -201
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +33 -55
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +38 -80
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +38 -8
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +120 -175
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +51 -21
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +236 -281
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +61 -47
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +57 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +16 -18
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +157 -112
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -187
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -65
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +27 -3
- 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 +105 -68
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +144 -99
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +193 -173
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +45 -47
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +85 -78
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +31 -33
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +157 -112
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +76 -77
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +25 -19
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +26 -2
- 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 +64 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +250 -221
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -44
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +11 -13
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -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 +315 -49
- 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 +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +51 -21
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +105 -108
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +40 -38
- 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 +57 -4
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- 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 +38 -8
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +27 -21
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +38 -8
- 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/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +51 -21
- 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 +63 -162
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +41 -22
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +98 -3
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +48 -43
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +101 -71
- 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 +31 -19
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -57
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +137 -51
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +22 -20
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +128 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
- 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/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/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 +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- 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 +2 -2
- 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 +23 -4
- 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/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 +47 -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 +2 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +3 -4
- package/contracts/accounting/AccountingServiceManager.sol +1 -1
- package/contracts/authorization/AccessAdmin.sol +156 -82
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +277 -229
- package/contracts/authorization/IAccessAdmin.sol +13 -7
- package/contracts/authorization/IAuthorization.sol +15 -1
- package/contracts/distribution/BasicDistribution.sol +7 -5
- package/contracts/distribution/BasicDistributionAuthorization.sol +21 -8
- package/contracts/distribution/Distribution.sol +10 -8
- package/contracts/distribution/DistributionService.sol +26 -25
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +14 -13
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
- package/contracts/examples/fire/FireProduct.sol +3 -1
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -1
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleProduct.sol +25 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IInstance.sol +6 -7
- package/contracts/instance/IInstanceService.sol +2 -0
- package/contracts/instance/Instance.sol +19 -11
- package/contracts/instance/InstanceAdmin.sol +213 -64
- package/contracts/instance/InstanceAuthorizationV3.sol +8 -17
- package/contracts/instance/InstanceReader.sol +75 -34
- package/contracts/instance/InstanceService.sol +43 -31
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +1 -0
- package/contracts/instance/RiskSet.sol +11 -12
- package/contracts/instance/base/ObjectLifecycle.sol +2 -1
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +0 -8
- package/contracts/instance/module/IDistribution.sol +2 -1
- package/contracts/instance/module/IRisk.sol +2 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +16 -15
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPoolAuthorization.sol +21 -13
- package/contracts/pool/BundleService.sol +28 -58
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +13 -19
- package/contracts/pool/IPoolService.sol +50 -38
- package/contracts/pool/Pool.sol +9 -9
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +296 -154
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +3 -3
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +2 -0
- package/contracts/product/BasicProductAuthorization.sol +23 -8
- package/contracts/product/ClaimService.sol +157 -139
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +11 -6
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/PolicyService.sol +90 -144
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +23 -19
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +51 -0
- package/contracts/product/RiskService.sol +61 -23
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/IRegistry.sol +8 -15
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/Registry.sol +7 -2
- package/contracts/registry/RegistryAdmin.sol +126 -229
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +124 -99
- package/contracts/registry/ServiceAuthorizationV3.sol +42 -2
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +27 -19
- package/contracts/shared/ComponentService.sol +85 -89
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/ContractLib.sol +32 -3
- package/contracts/shared/IComponent.sol +3 -4
- package/contracts/shared/IComponentService.sol +0 -4
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +2 -2
- package/contracts/shared/NftOwnable.sol +4 -4
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +45 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +40 -88
- package/contracts/staking/IStaking.sol +1 -10
- package/contracts/staking/IStakingService.sol +11 -1
- package/contracts/staking/StakeManagerLib.sol +67 -16
- package/contracts/staking/Staking.sol +35 -20
- package/contracts/staking/StakingReader.sol +1 -16
- package/contracts/staking/StakingService.sol +53 -44
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/type/ObjectType.sol +41 -27
- package/contracts/type/RiskId.sol +5 -0
- package/contracts/type/RoleId.sol +24 -4
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +1 -1
- 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/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
@@ -1,15 +1,17 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
5
|
+
|
4
6
|
import {Distribution} from "./Distribution.sol";
|
7
|
+
import {DistributorType} from "../type/DistributorType.sol";
|
5
8
|
import {DISTRIBUTOR} from "../type/ObjectType.sol";
|
6
|
-
import {
|
9
|
+
import {Fee} from "../type/Fee.sol";
|
7
10
|
import {NftId} from "../type/NftId.sol";
|
8
11
|
import {ReferralId} from "../type/Referral.sol";
|
9
|
-
import {
|
10
|
-
import {UFixed} from "../type/UFixed.sol";
|
11
|
-
import {DistributorType} from "../type/DistributorType.sol";
|
12
|
+
import {Seconds} from "../type/Seconds.sol";
|
12
13
|
import {Timestamp} from "../type/Timestamp.sol";
|
14
|
+
import {UFixed} from "../type/UFixed.sol";
|
13
15
|
|
14
16
|
|
15
17
|
contract BasicDistribution is
|
@@ -37,7 +39,7 @@ contract BasicDistribution is
|
|
37
39
|
UFixed maxDiscountPercentage,
|
38
40
|
UFixed commissionPercentage,
|
39
41
|
uint32 maxReferralCount,
|
40
|
-
|
42
|
+
Seconds maxReferralLifetime,
|
41
43
|
bool allowSelfReferrals,
|
42
44
|
bool allowRenewals,
|
43
45
|
bytes memory data
|
@@ -1,13 +1,15 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
5
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
6
|
+
|
4
7
|
import {Authorization} from "../authorization/Authorization.sol";
|
5
8
|
import {BasicDistribution} from "./BasicDistribution.sol";
|
6
9
|
import {Distribution} from "./Distribution.sol";
|
7
|
-
import {DISTRIBUTION} from "../type/ObjectType.sol";
|
8
|
-
import {
|
9
|
-
import {
|
10
|
-
import {PUBLIC_ROLE} from "../../contracts/type/RoleId.sol";
|
10
|
+
import {COMPONENT, DISTRIBUTION} from "../type/ObjectType.sol";
|
11
|
+
import {RoleId, PUBLIC_ROLE} from "../type/RoleId.sol";
|
12
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
11
13
|
|
12
14
|
|
13
15
|
contract BasicDistributionAuthorization
|
@@ -15,16 +17,27 @@ contract BasicDistributionAuthorization
|
|
15
17
|
{
|
16
18
|
|
17
19
|
constructor(string memory distributionlName)
|
18
|
-
Authorization(distributionlName)
|
20
|
+
Authorization(distributionlName, DISTRIBUTION())
|
19
21
|
{}
|
20
22
|
|
21
|
-
function
|
23
|
+
function _setupServiceTargets()
|
22
24
|
internal
|
23
25
|
virtual override
|
24
26
|
{
|
25
|
-
|
27
|
+
_addServiceTargetWithRole(COMPONENT());
|
26
28
|
}
|
27
29
|
|
30
|
+
function _setupTokenHandlerAuthorizations() internal virtual override {
|
31
|
+
IAccess.FunctionInfo[] storage functions;
|
32
|
+
functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(COMPONENT()));
|
33
|
+
_authorize(functions, TokenHandler.approve.selector, "approve");
|
34
|
+
_authorize(functions, TokenHandler.setWallet.selector, "setWallet");
|
35
|
+
_authorize(functions, TokenHandler.pushFeeToken.selector, "pushFeeToken");
|
36
|
+
|
37
|
+
// authorize token handler functions for pool service role
|
38
|
+
functions = _authorizeForTarget(getTokenHandlerName(), getServiceRole(DISTRIBUTION()));
|
39
|
+
_authorize(functions, TokenHandler.pushToken.selector, "pushToken");
|
40
|
+
}
|
28
41
|
|
29
42
|
function _setupTargetAuthorizations()
|
30
43
|
internal
|
@@ -33,7 +46,7 @@ contract BasicDistributionAuthorization
|
|
33
46
|
IAccess.FunctionInfo[] storage functions;
|
34
47
|
|
35
48
|
// authorize public role (open access to any account, only allows to lock target)
|
36
|
-
functions = _authorizeForTarget(
|
49
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
37
50
|
_authorize(functions, BasicDistribution.setFees.selector, "setFees");
|
38
51
|
_authorize(functions, BasicDistribution.createDistributorType.selector, "createDistributorType");
|
39
52
|
_authorize(functions, BasicDistribution.createDistributor.selector, "createDistributor");
|
@@ -1,19 +1,21 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {Amount} from "../type/Amount.sol";
|
5
|
-
import {COMPONENT, DISTRIBUTION, DISTRIBUTOR} from "../type/ObjectType.sol";
|
6
4
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
5
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
6
|
+
import {IDistributionComponent} from "./IDistributionComponent.sol";
|
7
7
|
import {IDistributionService} from "./IDistributionService.sol";
|
8
|
+
|
9
|
+
import {Amount} from "../type/Amount.sol";
|
10
|
+
import {COMPONENT, DISTRIBUTION, DISTRIBUTOR} from "../type/ObjectType.sol";
|
11
|
+
import {DistributorType} from "../type/DistributorType.sol";
|
12
|
+
import {Fee} from "../type/Fee.sol";
|
8
13
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
9
14
|
import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
|
10
|
-
import {Fee} from "../type/Fee.sol";
|
11
15
|
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
12
|
-
import {
|
13
|
-
import {IDistributionComponent} from "./IDistributionComponent.sol";
|
14
|
-
import {UFixed} from "../type/UFixed.sol";
|
15
|
-
import {DistributorType} from "../type/DistributorType.sol";
|
16
|
+
import {Seconds} from "../type/Seconds.sol";
|
16
17
|
import {Timestamp} from "../type/Timestamp.sol";
|
18
|
+
import {UFixed} from "../type/UFixed.sol";
|
17
19
|
|
18
20
|
|
19
21
|
abstract contract Distribution is
|
@@ -180,7 +182,7 @@ abstract contract Distribution is
|
|
180
182
|
UFixed maxDiscountPercentage,
|
181
183
|
UFixed commissionPercentage,
|
182
184
|
uint32 maxReferralCount,
|
183
|
-
|
185
|
+
Seconds maxReferralLifetime,
|
184
186
|
bool allowSelfReferrals,
|
185
187
|
bool allowRenewals,
|
186
188
|
bytes memory data
|
@@ -2,27 +2,28 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
5
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
6
|
-
import {IInstance} from "../instance/IInstance.sol";
|
7
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";
|
8
9
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
10
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
9
11
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
10
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
11
12
|
import {IComponents} from "../instance/module/IComponents.sol";
|
12
13
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
13
14
|
|
14
15
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
16
|
+
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
17
|
+
import {DistributorType, DistributorTypeLib} from "../type/DistributorType.sol";
|
15
18
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
16
19
|
import {KEEP_STATE} from "../type/StateId.sol";
|
17
20
|
import {ObjectType, ACCOUNTING, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
|
18
|
-
import {
|
19
|
-
import {
|
20
|
-
import {UFixed} from "../type/UFixed.sol";
|
21
|
-
import {DistributorType, DistributorTypeLib} from "../type/DistributorType.sol";
|
21
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
22
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
22
23
|
import {ReferralId, ReferralLib} from "../type/Referral.sol";
|
24
|
+
import {Seconds} from "../type/Seconds.sol";
|
23
25
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
24
|
-
import {
|
25
|
-
import {InstanceStore} from "../instance/InstanceStore.sol";
|
26
|
+
import {UFixed} from "../type/UFixed.sol";
|
26
27
|
|
27
28
|
|
28
29
|
contract DistributionService is
|
@@ -43,11 +44,11 @@ contract DistributionService is
|
|
43
44
|
initializer()
|
44
45
|
{
|
45
46
|
(
|
46
|
-
address
|
47
|
-
address
|
47
|
+
address authority,
|
48
|
+
address registry
|
48
49
|
) = abi.decode(data, (address, address));
|
49
50
|
|
50
|
-
|
51
|
+
__Service_init(authority, registry, owner);
|
51
52
|
|
52
53
|
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
53
54
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
@@ -64,7 +65,7 @@ contract DistributionService is
|
|
64
65
|
UFixed maxDiscountPercentage,
|
65
66
|
UFixed commissionPercentage,
|
66
67
|
uint32 maxReferralCount,
|
67
|
-
|
68
|
+
Seconds maxReferralLifetime,
|
68
69
|
bool allowSelfReferrals,
|
69
70
|
bool allowRenewals,
|
70
71
|
bytes memory data
|
@@ -77,10 +78,10 @@ contract DistributionService is
|
|
77
78
|
|
78
79
|
{
|
79
80
|
NftId productNftId = _getProductNftId(distributionNftId);
|
80
|
-
IComponents.
|
81
|
+
IComponents.FeeInfo memory feeInfo = instance.getInstanceReader().getFeeInfo(productNftId);
|
81
82
|
|
82
|
-
UFixed variableDistributionFees =
|
83
|
-
UFixed variableFeesPartsTotal =
|
83
|
+
UFixed variableDistributionFees = feeInfo.distributionFee.fractionalFee;
|
84
|
+
UFixed variableFeesPartsTotal = feeInfo.minDistributionOwnerFee.fractionalFee + commissionPercentage;
|
84
85
|
|
85
86
|
if (variableFeesPartsTotal > variableDistributionFees) {
|
86
87
|
revert ErrorDistributionServiceVariableFeesTooHight(variableDistributionFees.toInt1000(), variableFeesPartsTotal.toInt1000());
|
@@ -171,10 +172,10 @@ contract DistributionService is
|
|
171
172
|
(NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
172
173
|
|
173
174
|
if (bytes(code).length == 0) {
|
174
|
-
revert
|
175
|
+
revert ErrorDistributionServiceInvalidReferral(code);
|
175
176
|
}
|
176
177
|
if (expiryAt.eqz() || expiryAt.lte(TimestampLib.blockTimestamp())) {
|
177
|
-
revert
|
178
|
+
revert ErrorDistributionServiceExpirationInvalid(expiryAt);
|
178
179
|
}
|
179
180
|
|
180
181
|
{
|
@@ -183,16 +184,16 @@ contract DistributionService is
|
|
183
184
|
IDistribution.DistributorTypeInfo memory distributorTypeData = instanceReader.getDistributorTypeInfo(distributorType);
|
184
185
|
|
185
186
|
if (distributorTypeData.maxReferralCount < maxReferrals) {
|
186
|
-
revert
|
187
|
+
revert ErrorDistributionServiceMaxReferralsExceeded(distributorTypeData.maxReferralCount);
|
187
188
|
}
|
188
189
|
if (distributorTypeData.minDiscountPercentage > discountPercentage) {
|
189
|
-
revert
|
190
|
+
revert ErrorDistributionServiceDiscountTooLow(distributorTypeData.minDiscountPercentage.toInt(), discountPercentage.toInt());
|
190
191
|
}
|
191
192
|
if (distributorTypeData.maxDiscountPercentage < discountPercentage) {
|
192
|
-
revert
|
193
|
+
revert ErrorDistributionServiceDiscountTooHigh(distributorTypeData.maxDiscountPercentage.toInt(), discountPercentage.toInt());
|
193
194
|
}
|
194
|
-
if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime) {
|
195
|
-
revert
|
195
|
+
if (expiryAt.toInt() - TimestampLib.blockTimestamp().toInt() > distributorTypeData.maxReferralLifetime.toInt()) {
|
196
|
+
revert ErrorDistributionServiceExpiryTooLong(distributorTypeData.maxReferralLifetime, expiryAt);
|
196
197
|
}
|
197
198
|
}
|
198
199
|
|
@@ -314,7 +315,7 @@ contract DistributionService is
|
|
314
315
|
{
|
315
316
|
address distributor = getRegistry().ownerOf(distributorNftId);
|
316
317
|
emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.token), withdrawnAmount);
|
317
|
-
distributionInfo.tokenHandler.
|
318
|
+
distributionInfo.tokenHandler.pushToken(distributor, withdrawnAmount);
|
318
319
|
}
|
319
320
|
}
|
320
321
|
|
@@ -346,7 +347,7 @@ contract DistributionService is
|
|
346
347
|
view
|
347
348
|
returns(IInstance instance)
|
348
349
|
{
|
349
|
-
NftId instanceNftId = getRegistry().
|
350
|
+
NftId instanceNftId = getRegistry().getParentNftId(distributionNftId);
|
350
351
|
address instanceAddress = getRegistry().getObjectAddress(instanceNftId);
|
351
352
|
return IInstance(instanceAddress);
|
352
353
|
}
|
@@ -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),
|
@@ -8,30 +8,31 @@ 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
17
|
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
|
18
|
+
error ErrorDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
|
19
|
+
error ErrorDistributionServiceCallerNotDistributor(address caller);
|
20
|
+
error ErrorDistributionServiceInvalidReferralId(ReferralId referralId);
|
21
|
+
error ErrorDistributionServiceMaxReferralsExceeded(uint256 maxReferrals);
|
22
|
+
error ErrorDistributionServiceDiscountTooLow(uint256 minDiscountPercentage, uint256 discountPercentage);
|
23
|
+
error ErrorDistributionServiceDiscountTooHigh(uint256 maxDiscountPercentage, uint256 discountPercentage);
|
24
|
+
error ErrorDistributionServiceExpiryTooLong(Seconds maxReferralLifetime, Timestamp expiryAt);
|
25
|
+
error ErrorDistributionServiceInvalidReferral(string code);
|
26
|
+
error ErrorDistributionServiceExpirationInvalid(Timestamp expiryAt);
|
27
|
+
error ErrorDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
|
28
|
+
error ErrorDistributionServiceMinFeeTooHigh(uint256 minFee, uint256 limit);
|
28
29
|
|
29
30
|
error ErrorDistributionServiceCommissionWithdrawAmountExceedsLimit(Amount amount, Amount limit);
|
30
31
|
|
31
32
|
error ErrorDistributionServiceVariableFeesTooHight(uint256 maxDiscountPercentage, uint256 limit);
|
32
33
|
error ErrorDistributionServiceMaxDiscountTooHigh(uint256 maxDiscountPercentage, uint256 limit);
|
33
34
|
|
34
|
-
error
|
35
|
+
error ErrorDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
|
35
36
|
error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
|
36
37
|
|
37
38
|
event LogDistributionServiceCommissionWithdrawn(NftId distributorNftId, address recipient, address tokenAddress, Amount amount);
|
@@ -42,7 +43,7 @@ interface IDistributionService is IService {
|
|
42
43
|
UFixed maxDiscountPercentage,
|
43
44
|
UFixed commissionPercentage,
|
44
45
|
uint32 maxReferralCount,
|
45
|
-
|
46
|
+
Seconds maxReferralLifetime,
|
46
47
|
bool allowSelfReferrals,
|
47
48
|
bool allowRenewals,
|
48
49
|
bytes memory data
|
@@ -25,7 +25,7 @@ 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
30
|
_authorize(functions, FirePool.approveTokenHandler.selector, "approveTokenHandler");
|
31
31
|
_authorize(functions, FirePool.createBundle.selector, "createBundle");
|
@@ -107,7 +107,9 @@ contract FireProduct is
|
|
107
107
|
numberOfOracles: 0,
|
108
108
|
poolNftId: NftIdLib.zero(),
|
109
109
|
distributionNftId: NftIdLib.zero(),
|
110
|
-
oracleNftId: new NftId[](0)
|
110
|
+
oracleNftId: new NftId[](0)
|
111
|
+
}),
|
112
|
+
IComponents.FeeInfo({
|
111
113
|
productFee: FeeLib.zero(),
|
112
114
|
processingFee: FeeLib.zero(),
|
113
115
|
distributionFee: FeeLib.zero(),
|
@@ -23,7 +23,7 @@ contract FireProductAuthorization
|
|
23
23
|
IAccess.FunctionInfo[] storage functions;
|
24
24
|
|
25
25
|
// authorize public role (open access to any account, only allows to lock target)
|
26
|
-
functions = _authorizeForTarget(
|
26
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
27
27
|
// fully public functions
|
28
28
|
_authorize(functions, FireProduct.approveTokenHandler.selector, "approveTokenHandler");
|
29
29
|
_authorize(functions, FireProduct.createApplication.selector, "createApplication");
|
@@ -21,7 +21,7 @@ contract SimpleDistributionAuthorization
|
|
21
21
|
|
22
22
|
// authorize public role (open access to any account, only allows to lock target)
|
23
23
|
IAccess.FunctionInfo[] storage functions;
|
24
|
-
functions = _authorizeForTarget(
|
24
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
25
25
|
_authorize(functions, SimpleDistribution.approveTokenHandler.selector, "approveTokenHandler");
|
26
26
|
_authorize(functions, SimpleDistribution.setWallet.selector, "setWallet");
|
27
27
|
}
|
@@ -5,7 +5,6 @@ import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IER
|
|
5
5
|
|
6
6
|
import {Amount, AmountLib} from "../../type/Amount.sol";
|
7
7
|
import {BasicPool} from "../../pool/BasicPool.sol";
|
8
|
-
import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
|
9
8
|
import {Fee} from "../../type/Fee.sol";
|
10
9
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
11
10
|
import {IComponents} from "../../instance/module/IComponents.sol";
|
@@ -21,7 +21,7 @@ contract SimplePoolAuthorization
|
|
21
21
|
|
22
22
|
// authorize public role (open access to any account, only allows to lock target)
|
23
23
|
IAccess.FunctionInfo[] storage functions;
|
24
|
-
functions = _authorizeForTarget(
|
24
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
25
25
|
_authorize(functions, SimplePool.approveTokenHandler.selector, "approveTokenHandler");
|
26
26
|
_authorize(functions, SimplePool.setWallet.selector, "setWallet");
|
27
27
|
}
|
@@ -39,6 +39,7 @@ contract SimpleProduct is
|
|
39
39
|
string memory name,
|
40
40
|
address token,
|
41
41
|
IComponents.ProductInfo memory productInfo,
|
42
|
+
IComponents.FeeInfo memory feeInfo,
|
42
43
|
IAuthorization authorization,
|
43
44
|
address initialOwner
|
44
45
|
)
|
@@ -49,6 +50,7 @@ contract SimpleProduct is
|
|
49
50
|
name,
|
50
51
|
token,
|
51
52
|
productInfo,
|
53
|
+
feeInfo,
|
52
54
|
authorization,
|
53
55
|
initialOwner);
|
54
56
|
}
|
@@ -60,6 +62,7 @@ contract SimpleProduct is
|
|
60
62
|
string memory name,
|
61
63
|
address token,
|
62
64
|
IComponents.ProductInfo memory productInfo,
|
65
|
+
IComponents.FeeInfo memory feeInfo,
|
63
66
|
IAuthorization authorization,
|
64
67
|
address initialOwner
|
65
68
|
)
|
@@ -73,6 +76,7 @@ contract SimpleProduct is
|
|
73
76
|
name,
|
74
77
|
token,
|
75
78
|
productInfo,
|
79
|
+
feeInfo,
|
76
80
|
authorization,
|
77
81
|
initialOwner);
|
78
82
|
|
@@ -184,6 +188,13 @@ contract SimpleProduct is
|
|
184
188
|
_activate(policyNftId, activateAt);
|
185
189
|
}
|
186
190
|
|
191
|
+
function adjustActivation(
|
192
|
+
NftId policyNftId,
|
193
|
+
Timestamp activateAt
|
194
|
+
) public {
|
195
|
+
_adjustActivation(policyNftId, activateAt);
|
196
|
+
}
|
197
|
+
|
187
198
|
function close(
|
188
199
|
NftId policyNftId
|
189
200
|
) public {
|
@@ -198,6 +209,13 @@ contract SimpleProduct is
|
|
198
209
|
return _submitClaim(policyNftId, claimAmount, submissionData);
|
199
210
|
}
|
200
211
|
|
212
|
+
function revokeClaim(
|
213
|
+
NftId policyNftId,
|
214
|
+
ClaimId claimId
|
215
|
+
) public {
|
216
|
+
_revokeClaim(policyNftId, claimId);
|
217
|
+
}
|
218
|
+
|
201
219
|
function confirmClaim(
|
202
220
|
NftId policyNftId,
|
203
221
|
ClaimId claimId,
|
@@ -231,6 +249,13 @@ contract SimpleProduct is
|
|
231
249
|
return _createPayout(policyNftId, claimId, amount, data);
|
232
250
|
}
|
233
251
|
|
252
|
+
function cancelPayout(
|
253
|
+
NftId policyNftId,
|
254
|
+
PayoutId payoutId
|
255
|
+
) public {
|
256
|
+
_cancelPayout(policyNftId, payoutId);
|
257
|
+
}
|
258
|
+
|
234
259
|
// TODO add test
|
235
260
|
function createPayoutForBeneficiary(
|
236
261
|
NftId policyNftId,
|
@@ -21,7 +21,7 @@ contract SimpleProductAuthorization
|
|
21
21
|
|
22
22
|
// authorize public role (open access to any account, only allows to lock target)
|
23
23
|
IAccess.FunctionInfo[] storage functions;
|
24
|
-
functions = _authorizeForTarget(
|
24
|
+
functions = _authorizeForTarget(getMainTargetName(), PUBLIC_ROLE());
|
25
25
|
_authorize(functions, SimpleProduct.approveTokenHandler.selector, "approveTokenHandler");
|
26
26
|
_authorize(functions, SimpleProduct.setWallet.selector, "setWallet");
|
27
27
|
}
|
@@ -1,13 +1,13 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IPolicy} from "../instance/module/IPolicy.sol";
|
5
4
|
import {LibNftIdSet} from "../type/NftIdSet.sol";
|
6
5
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
7
6
|
import {Key32} from "../type/Key32.sol";
|
8
7
|
import {BUNDLE} from "../type/ObjectType.sol";
|
9
8
|
|
10
9
|
import {ObjectSet} from "./base/ObjectSet.sol";
|
10
|
+
import {ObjectSetHelperLib} from "./base/ObjectSetHelperLib.sol";
|
11
11
|
|
12
12
|
contract BundleSet is
|
13
13
|
ObjectSet
|
@@ -60,7 +60,7 @@ contract BundleSet is
|
|
60
60
|
/// @dev add a new bundle to a pool registerd with this instance
|
61
61
|
// the corresponding pool is fetched via instance reader
|
62
62
|
function add(NftId bundleNftId) external restricted() {
|
63
|
-
NftId poolNftId =
|
63
|
+
NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
|
64
64
|
|
65
65
|
// ensure pool is registered with instance
|
66
66
|
if(poolNftId.eqz()) {
|
@@ -74,14 +74,14 @@ contract BundleSet is
|
|
74
74
|
|
75
75
|
/// @dev unlocked (active) bundles are available to collateralize new policies
|
76
76
|
function unlock(NftId bundleNftId) external restricted() {
|
77
|
-
NftId poolNftId =
|
77
|
+
NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
|
78
78
|
_activate(poolNftId, _toBundleKey32(bundleNftId));
|
79
79
|
emit LogBundleSetBundleUnlocked(poolNftId, bundleNftId);
|
80
80
|
}
|
81
81
|
|
82
82
|
/// @dev locked (deactivated) bundles may not collateralize any new policies
|
83
83
|
function lock(NftId bundleNftId) external restricted() {
|
84
|
-
NftId poolNftId =
|
84
|
+
NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
|
85
85
|
_deactivate(poolNftId, _toBundleKey32(bundleNftId));
|
86
86
|
emit LogBundleSetBundleLocked(poolNftId, bundleNftId);
|
87
87
|
}
|
@@ -1,8 +1,6 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
5
|
-
|
6
4
|
import {Amount} from "../type/Amount.sol";
|
7
5
|
import {BundleSet} from "./BundleSet.sol";
|
8
6
|
import {RiskSet} from "./RiskSet.sol";
|
@@ -10,7 +8,6 @@ import {InstanceAdmin} from "./InstanceAdmin.sol";
|
|
10
8
|
import {InstanceReader} from "./InstanceReader.sol";
|
11
9
|
import {InstanceStore} from "./InstanceStore.sol";
|
12
10
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
13
|
-
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
14
11
|
import {NftId} from "../type/NftId.sol";
|
15
12
|
import {RoleId} from "../type/RoleId.sol";
|
16
13
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -18,9 +15,7 @@ import {UFixed} from "../type/UFixed.sol";
|
|
18
15
|
|
19
16
|
|
20
17
|
interface IInstance is
|
21
|
-
IRegisterable
|
22
|
-
ITransferInterceptor,
|
23
|
-
IAccessManaged
|
18
|
+
IRegisterable
|
24
19
|
{
|
25
20
|
error ErrorInstanceInstanceAdminZero();
|
26
21
|
error ErrorInstanceInstanceAdminAlreadySet(address InstanceAdmin);
|
@@ -62,7 +57,11 @@ interface IInstance is
|
|
62
57
|
/// Permissioned: only the target owner may call this function.
|
63
58
|
function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
|
64
59
|
|
65
|
-
// get
|
60
|
+
// get products
|
61
|
+
function products() external view returns (uint256 productCount);
|
62
|
+
function getProductNftId(uint256 idx) external view returns (NftId productNftId);
|
63
|
+
|
64
|
+
// get supporting contracts
|
66
65
|
function getInstanceReader() external view returns (InstanceReader);
|
67
66
|
function getBundleSet() external view returns (BundleSet);
|
68
67
|
function getRiskSet() external view returns (RiskSet);
|
@@ -60,6 +60,8 @@ interface IInstanceService is IService {
|
|
60
60
|
NftId instanceNftId
|
61
61
|
);
|
62
62
|
|
63
|
+
function upgradeInstanceReader(NftId instanceNftId) external;
|
64
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress) external;
|
63
65
|
|
64
66
|
function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
|
65
67
|
function setStakingRewardRate(UFixed rewardRate) external;
|
@@ -1,8 +1,6 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
-
|
6
4
|
import {Amount} from "../type/Amount.sol";
|
7
5
|
import {BundleSet} from "./BundleSet.sol";
|
8
6
|
import {RiskSet} from "./RiskSet.sol";
|
@@ -22,18 +20,19 @@ import {UFixed} from "../type/UFixed.sol";
|
|
22
20
|
|
23
21
|
contract Instance is
|
24
22
|
IInstance,
|
25
|
-
AccessManagedUpgradeable,
|
26
23
|
Registerable
|
27
24
|
{
|
28
25
|
bool private _initialized;
|
29
26
|
|
30
27
|
IComponentService internal _componentService;
|
31
28
|
IInstanceService internal _instanceService;
|
29
|
+
|
32
30
|
InstanceAdmin internal _instanceAdmin;
|
33
31
|
InstanceReader internal _instanceReader;
|
34
32
|
BundleSet internal _bundleSet;
|
35
33
|
RiskSet internal _riskSet;
|
36
34
|
InstanceStore internal _instanceStore;
|
35
|
+
NftId [] internal _products;
|
37
36
|
|
38
37
|
modifier onlyChainNft() {
|
39
38
|
if(msg.sender != getRegistry().getChainNftAddress()) {
|
@@ -54,16 +53,15 @@ contract Instance is
|
|
54
53
|
external
|
55
54
|
initializer()
|
56
55
|
{
|
57
|
-
|
58
|
-
if(_instanceAdmin.authority() == address(0)) {
|
56
|
+
if(address(instanceAdmin) == address(0)) {
|
59
57
|
revert ErrorInstanceInstanceAdminZero();
|
60
58
|
}
|
61
59
|
|
62
|
-
|
63
|
-
__AccessManaged_init(_instanceAdmin.authority());
|
60
|
+
_instanceAdmin = instanceAdmin;
|
64
61
|
|
65
62
|
// setup instance object info
|
66
|
-
|
63
|
+
__Registerable_init(
|
64
|
+
instanceAdmin.authority(),
|
67
65
|
address(registry),
|
68
66
|
registry.getNftId(),
|
69
67
|
INSTANCE(),
|
@@ -79,8 +77,8 @@ contract Instance is
|
|
79
77
|
|
80
78
|
// initialize instance supporting contracts
|
81
79
|
_instanceStore.initialize();
|
82
|
-
_bundleSet.initialize();
|
83
|
-
_riskSet.initialize();
|
80
|
+
_bundleSet.initialize(instanceAdmin.authority(), address(registry));
|
81
|
+
_riskSet.initialize(instanceAdmin.authority(), address(registry));
|
84
82
|
_instanceReader.initialize();
|
85
83
|
|
86
84
|
_componentService = IComponentService(
|
@@ -97,12 +95,14 @@ contract Instance is
|
|
97
95
|
}
|
98
96
|
|
99
97
|
//--- ProductRegistration ----------------------------------------------//
|
98
|
+
|
100
99
|
function registerProduct(address product)
|
101
100
|
external
|
102
101
|
onlyOwner()
|
103
102
|
returns (NftId productNftId)
|
104
103
|
{
|
105
|
-
|
104
|
+
productNftId = _componentService.registerProduct(product);
|
105
|
+
_products.push(productNftId);
|
106
106
|
}
|
107
107
|
|
108
108
|
//--- Staking ----------------------------------------------------------//
|
@@ -215,6 +215,14 @@ contract Instance is
|
|
215
215
|
|
216
216
|
//--- external view functions -------------------------------------------//
|
217
217
|
|
218
|
+
function products() external view returns (uint256 productCount) {
|
219
|
+
return _products.length;
|
220
|
+
}
|
221
|
+
|
222
|
+
function getProductNftId(uint256 idx) external view returns (NftId productNftId) {
|
223
|
+
return _products[idx];
|
224
|
+
}
|
225
|
+
|
218
226
|
function getInstanceReader() external view returns (InstanceReader) {
|
219
227
|
return _instanceReader;
|
220
228
|
}
|