@etherisc/gif-next 0.0.2-a307d03-692 → 0.0.2-a33f6f4-689
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 +32 -32
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +26 -26
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +361 -246
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +1 -1
- 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 +8 -39
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +96 -23
- 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 +278 -184
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +32 -0
- 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 +21 -134
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +96 -41
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +0 -86
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +156 -85
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +56 -52
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +0 -86
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +64 -1
- 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 +19 -49
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +96 -41
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +67 -105
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +96 -41
- 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 +71 -162
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +96 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +20 -63
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +24 -67
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +96 -41
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +35 -72
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +96 -41
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +93 -15
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +61 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +113 -38
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +509 -413
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +96 -41
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +104 -75
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +93 -64
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +26 -36
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +54 -44
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
- 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 +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
- 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 +14 -35
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +93 -30
- 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 +0 -21
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +0 -21
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +42 -42
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +31 -31
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +0 -21
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +96 -41
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +58 -58
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +39 -39
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +0 -21
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +0 -21
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +2 -2
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +62 -62
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +41 -41
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +90 -24
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +34 -22
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +0 -21
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +96 -41
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +80 -80
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +50 -50
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +42 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +21 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +0 -21
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +31 -4
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +62 -62
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +41 -41
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +73 -52
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +36 -36
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +0 -21
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +79 -28
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +34 -22
- 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/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- 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 +2 -2
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +440 -350
- 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 +18 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +19 -19
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +474 -369
- 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 +128 -124
- 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 +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +0 -21
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +242 -96
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +48 -40
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +60 -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 +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -21
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +165 -35
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +0 -21
- 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/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- 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 +0 -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/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +74 -30
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +71 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +123 -84
- 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 +41 -37
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +30 -57
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +105 -26
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +27 -23
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +142 -128
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +24 -14
- 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 +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 +9 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- 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/SelectorSetLib.dbg.json +1 -1
- 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/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 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +56 -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 +4 -4
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +201 -186
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +40 -31
- package/contracts/authorization/Authorization.sol +61 -33
- package/contracts/authorization/IAccessAdmin.sol +63 -36
- package/contracts/authorization/IAuthorization.sol +6 -0
- package/contracts/distribution/BasicDistribution.sol +6 -6
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +3 -48
- package/contracts/distribution/DistributionService.sol +32 -5
- package/contracts/distribution/IDistributionComponent.sol +0 -9
- package/contracts/distribution/IDistributionService.sol +4 -2
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +1 -6
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +4 -8
- package/contracts/instance/IInstance.sol +45 -10
- package/contracts/instance/IInstanceService.sol +19 -3
- package/contracts/instance/Instance.sol +74 -26
- package/contracts/instance/InstanceAdmin.sol +119 -118
- package/contracts/instance/InstanceAuthorizationV3.sol +43 -24
- package/contracts/instance/InstanceReader.sol +13 -0
- package/contracts/instance/InstanceService.sol +128 -73
- package/contracts/instance/module/IComponents.sol +0 -1
- package/contracts/instance/module/IDistribution.sol +3 -1
- package/contracts/oracle/BasicOracle.sol +1 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +1 -1
- package/contracts/oracle/Oracle.sol +0 -2
- package/contracts/pool/BasicPool.sol +0 -2
- package/contracts/pool/BasicPoolAuthorization.sol +1 -1
- package/contracts/pool/Pool.sol +0 -2
- package/contracts/pool/PoolService.sol +1 -3
- package/contracts/product/ApplicationService.sol +21 -6
- package/contracts/product/BasicProduct.sol +0 -2
- package/contracts/product/BasicProductAuthorization.sol +1 -1
- package/contracts/product/IApplicationService.sol +3 -0
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IRiskService.sol +7 -7
- package/contracts/product/PolicyService.sol +0 -18
- package/contracts/product/PricingService.sol +5 -0
- package/contracts/product/Product.sol +6 -17
- package/contracts/product/RiskService.sol +16 -7
- package/contracts/registry/RegistryAdmin.sol +133 -229
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/ReleaseAdmin.sol +30 -22
- package/contracts/registry/ReleaseRegistry.sol +39 -33
- package/contracts/registry/ServiceAuthorizationV3.sol +6 -1
- package/contracts/shared/Component.sol +11 -27
- package/contracts/shared/ComponentService.sol +219 -135
- package/contracts/shared/ContractLib.sol +28 -0
- package/contracts/shared/IComponent.sol +0 -3
- package/contracts/shared/IComponentService.sol +21 -9
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +0 -2
- package/contracts/shared/NftOwnable.sol +1 -1
- package/contracts/shared/Registerable.sol +1 -4
- package/contracts/shared/TokenHandler.sol +5 -4
- package/contracts/staking/IStaking.sol +12 -2
- package/contracts/staking/IStakingService.sol +8 -1
- package/contracts/staking/Staking.sol +35 -15
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +79 -22
- package/contracts/staking/StakingReader.sol +5 -15
- package/contracts/staking/StakingService.sol +36 -2
- package/contracts/staking/StakingStore.sol +2 -1
- package/contracts/type/ObjectType.sol +5 -14
- package/contracts/type/RiskId.sol +4 -3
- package/contracts/type/Version.sol +39 -0
- package/package.json +2 -2
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
@@ -1,6 +1,8 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
5
|
+
|
4
6
|
import {IAccess} from "../authorization/IAccess.sol";
|
5
7
|
import {ObjectType} from "../type/ObjectType.sol";
|
6
8
|
import {RoleId} from "../type/RoleId.sol";
|
@@ -8,12 +10,16 @@ import {Str} from "../type/String.sol";
|
|
8
10
|
import {VersionPart} from "../type/Version.sol";
|
9
11
|
|
10
12
|
interface IAuthorization is
|
13
|
+
IERC165,
|
11
14
|
IAccess
|
12
15
|
{
|
13
16
|
|
14
17
|
error ErrorAuthorizationMainTargetNameEmpty();
|
15
18
|
error ErrorAuthorizationTargetDomainZero();
|
16
19
|
|
20
|
+
/// @dev Returns the main domain of the authorization.
|
21
|
+
function getDomain() external view returns(ObjectType targetDomain);
|
22
|
+
|
17
23
|
/// @dev Returns the list of service targets.
|
18
24
|
function getServiceDomains() external view returns(ObjectType[] memory serviceDomains);
|
19
25
|
|
@@ -7,7 +7,7 @@ import {Distribution} from "./Distribution.sol";
|
|
7
7
|
import {DistributorType} from "../type/DistributorType.sol";
|
8
8
|
import {DISTRIBUTOR} from "../type/ObjectType.sol";
|
9
9
|
import {Fee} from "../type/Fee.sol";
|
10
|
-
import {NftId} from "../type/NftId.sol";
|
10
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
11
11
|
import {ReferralId} from "../type/Referral.sol";
|
12
12
|
import {Seconds} from "../type/Seconds.sol";
|
13
13
|
import {Timestamp} from "../type/Timestamp.sol";
|
@@ -95,6 +95,7 @@ contract BasicDistribution is
|
|
95
95
|
* referral codes need to be unique
|
96
96
|
*/
|
97
97
|
function createReferral(
|
98
|
+
NftId distributorNftId,
|
98
99
|
string memory code,
|
99
100
|
UFixed discountPercentage,
|
100
101
|
uint32 maxReferrals,
|
@@ -104,10 +105,10 @@ contract BasicDistribution is
|
|
104
105
|
external
|
105
106
|
virtual
|
106
107
|
restricted()
|
107
|
-
|
108
|
+
onlyNftOwner(distributorNftId)
|
108
109
|
returns (ReferralId referralId)
|
109
110
|
{
|
110
|
-
|
111
|
+
_checkNftType(distributorNftId, DISTRIBUTOR());
|
111
112
|
return _createReferral(
|
112
113
|
distributorNftId,
|
113
114
|
code,
|
@@ -122,8 +123,7 @@ contract BasicDistribution is
|
|
122
123
|
NftId instanceNftId,
|
123
124
|
IAuthorization authorization,
|
124
125
|
address initialOwner,
|
125
|
-
string memory name
|
126
|
-
address token
|
126
|
+
string memory name
|
127
127
|
)
|
128
128
|
internal
|
129
129
|
virtual
|
@@ -133,9 +133,9 @@ contract BasicDistribution is
|
|
133
133
|
registry,
|
134
134
|
instanceNftId,
|
135
135
|
authorization,
|
136
|
+
false,
|
136
137
|
initialOwner,
|
137
138
|
name,
|
138
|
-
token,
|
139
139
|
""); // component specifc data
|
140
140
|
}
|
141
141
|
}
|
@@ -10,7 +10,7 @@ import {Amount} from "../type/Amount.sol";
|
|
10
10
|
import {COMPONENT, DISTRIBUTION, DISTRIBUTOR} from "../type/ObjectType.sol";
|
11
11
|
import {DistributorType} from "../type/DistributorType.sol";
|
12
12
|
import {Fee} from "../type/Fee.sol";
|
13
|
-
import {NftId
|
13
|
+
import {NftId} from "../type/NftId.sol";
|
14
14
|
import {ReferralId, ReferralStatus, ReferralLib} from "../type/Referral.sol";
|
15
15
|
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
16
16
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -28,17 +28,8 @@ abstract contract Distribution is
|
|
28
28
|
struct DistributionStorage {
|
29
29
|
IComponentService _componentService;
|
30
30
|
IDistributionService _distributionService;
|
31
|
-
mapping(address distributor => NftId distributorNftId) _distributorNftId;
|
32
31
|
}
|
33
32
|
|
34
|
-
modifier onlyDistributor() {
|
35
|
-
if (!isDistributor(msg.sender)) {
|
36
|
-
revert ErrorDistributionNotDistributor(msg.sender);
|
37
|
-
}
|
38
|
-
_;
|
39
|
-
}
|
40
|
-
|
41
|
-
|
42
33
|
function processRenewal(
|
43
34
|
ReferralId referralId,
|
44
35
|
uint256 feeAmount
|
@@ -56,7 +47,6 @@ abstract contract Distribution is
|
|
56
47
|
external
|
57
48
|
virtual
|
58
49
|
restricted()
|
59
|
-
onlyDistributor()
|
60
50
|
onlyNftOfType(distributorNftId, DISTRIBUTOR())
|
61
51
|
onlyNftOwner(distributorNftId)
|
62
52
|
returns (Amount withdrawnAmount)
|
@@ -64,27 +54,6 @@ abstract contract Distribution is
|
|
64
54
|
return _withdrawCommission(distributorNftId, amount);
|
65
55
|
}
|
66
56
|
|
67
|
-
|
68
|
-
function isDistributor(address candidate)
|
69
|
-
public
|
70
|
-
view
|
71
|
-
returns (bool)
|
72
|
-
{
|
73
|
-
DistributionStorage storage $ = _getDistributionStorage();
|
74
|
-
return $._distributorNftId[candidate].gtz();
|
75
|
-
}
|
76
|
-
|
77
|
-
|
78
|
-
function getDistributorNftId(address distributor)
|
79
|
-
public
|
80
|
-
view
|
81
|
-
returns (NftId distributorNftId)
|
82
|
-
{
|
83
|
-
DistributionStorage storage $ = _getDistributionStorage();
|
84
|
-
return $._distributorNftId[distributor];
|
85
|
-
}
|
86
|
-
|
87
|
-
|
88
57
|
function getDiscountPercentage(string memory referralCode)
|
89
58
|
external
|
90
59
|
view
|
@@ -135,9 +104,9 @@ abstract contract Distribution is
|
|
135
104
|
address registry,
|
136
105
|
NftId productNftId,
|
137
106
|
IAuthorization authorization,
|
107
|
+
bool isInterceptor,
|
138
108
|
address initialOwner,
|
139
109
|
string memory name,
|
140
|
-
address token,
|
141
110
|
bytes memory componentData // component specifidc data
|
142
111
|
)
|
143
112
|
internal
|
@@ -148,10 +117,9 @@ abstract contract Distribution is
|
|
148
117
|
registry,
|
149
118
|
productNftId,
|
150
119
|
name,
|
151
|
-
token,
|
152
120
|
DISTRIBUTION(),
|
153
121
|
authorization,
|
154
|
-
|
122
|
+
isInterceptor,
|
155
123
|
initialOwner,
|
156
124
|
componentData);
|
157
125
|
|
@@ -215,16 +183,11 @@ abstract contract Distribution is
|
|
215
183
|
returns(NftId distributorNftId)
|
216
184
|
{
|
217
185
|
DistributionStorage storage $ = _getDistributionStorage();
|
218
|
-
if($._distributorNftId[distributor].gtz()) {
|
219
|
-
revert ErrorDistributionAlreadyDistributor(distributor, $._distributorNftId[distributor]);
|
220
|
-
}
|
221
186
|
|
222
187
|
distributorNftId = $._distributionService.createDistributor(
|
223
188
|
distributor,
|
224
189
|
distributorType,
|
225
190
|
data);
|
226
|
-
|
227
|
-
$._distributorNftId[distributor] = distributorNftId;
|
228
191
|
}
|
229
192
|
|
230
193
|
/// @dev Uptates the distributor type for the specified distributor.
|
@@ -273,14 +236,6 @@ abstract contract Distribution is
|
|
273
236
|
return _getDistributionStorage()._distributionService.withdrawCommission(distributorNftId, amount);
|
274
237
|
}
|
275
238
|
|
276
|
-
function _nftTransferFrom(address from, address to, uint256 tokenId, address operator) internal virtual override {
|
277
|
-
// keep track of distributor nft owner
|
278
|
-
emit LogDistributorUpdated(to, operator);
|
279
|
-
DistributionStorage storage $ = _getDistributionStorage();
|
280
|
-
$._distributorNftId[from] = NftIdLib.zero();
|
281
|
-
$._distributorNftId[to] = NftIdLib.toNftId(tokenId);
|
282
|
-
}
|
283
|
-
|
284
239
|
function _getDistributionStorage() private pure returns (DistributionStorage storage $) {
|
285
240
|
assembly {
|
286
241
|
$.slot := DISTRIBUTION_STORAGE_LOCATION_V1
|
@@ -74,7 +74,6 @@ contract DistributionService is
|
|
74
74
|
returns (DistributorType distributorType)
|
75
75
|
{
|
76
76
|
(NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
77
|
-
// InstanceReader instanceReader = instance.getInstanceReader();
|
78
77
|
|
79
78
|
{
|
80
79
|
NftId productNftId = _getProductNftId(distributionNftId);
|
@@ -96,6 +95,7 @@ contract DistributionService is
|
|
96
95
|
distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
|
97
96
|
IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo(
|
98
97
|
name,
|
98
|
+
distributionNftId,
|
99
99
|
minDiscountPercentage,
|
100
100
|
maxDiscountPercentage,
|
101
101
|
commissionPercentage,
|
@@ -119,6 +119,7 @@ contract DistributionService is
|
|
119
119
|
returns (NftId distributorNftId)
|
120
120
|
{
|
121
121
|
(NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
122
|
+
_checkDistributionType(instance.getInstanceReader(), distributorType, distributionNftId);
|
122
123
|
|
123
124
|
distributorNftId = _registryService.registerDistributor(
|
124
125
|
IRegistry.ObjectInfo(
|
@@ -142,15 +143,18 @@ contract DistributionService is
|
|
142
143
|
|
143
144
|
function changeDistributorType(
|
144
145
|
NftId distributorNftId,
|
145
|
-
DistributorType
|
146
|
+
DistributorType newDistributorType,
|
146
147
|
bytes memory data
|
147
148
|
)
|
148
149
|
external
|
149
150
|
virtual
|
150
151
|
{
|
151
|
-
(
|
152
|
+
_checkNftType(distributorNftId, DISTRIBUTOR());
|
153
|
+
(NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
154
|
+
_checkDistributionType(instance.getInstanceReader(), newDistributorType, distributionNftId);
|
155
|
+
|
152
156
|
IDistribution.DistributorInfo memory distributorInfo = instance.getInstanceReader().getDistributorInfo(distributorNftId);
|
153
|
-
distributorInfo.distributorType =
|
157
|
+
distributorInfo.distributorType = newDistributorType;
|
154
158
|
distributorInfo.data = data;
|
155
159
|
instance.getInstanceStore().updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
|
156
160
|
}
|
@@ -178,6 +182,11 @@ contract DistributionService is
|
|
178
182
|
revert ErrorDistributionServiceExpirationInvalid(expiryAt);
|
179
183
|
}
|
180
184
|
|
185
|
+
NftId distributorDistributionNftId = getRegistry().getParentNftId(distributorNftId);
|
186
|
+
if (distributorDistributionNftId != distributionNftId) {
|
187
|
+
revert ErrorDistributionServiceDistributorDistributionMismatch(distributorNftId, distributorDistributionNftId, distributionNftId);
|
188
|
+
}
|
189
|
+
|
181
190
|
{
|
182
191
|
InstanceReader instanceReader = instance.getInstanceReader();
|
183
192
|
DistributorType distributorType = instanceReader.getDistributorInfo(distributorNftId).distributorType;
|
@@ -200,6 +209,7 @@ contract DistributionService is
|
|
200
209
|
{
|
201
210
|
referralId = ReferralLib.toReferralId(distributionNftId, code);
|
202
211
|
IDistribution.ReferralInfo memory info = IDistribution.ReferralInfo(
|
212
|
+
distributionNftId,
|
203
213
|
distributorNftId,
|
204
214
|
code,
|
205
215
|
discountPercentage,
|
@@ -314,7 +324,7 @@ contract DistributionService is
|
|
314
324
|
// transfer amount to distributor
|
315
325
|
{
|
316
326
|
address distributor = getRegistry().ownerOf(distributorNftId);
|
317
|
-
emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.
|
327
|
+
emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.tokenHandler.TOKEN()), withdrawnAmount);
|
318
328
|
distributionInfo.tokenHandler.pushToken(distributor, withdrawnAmount);
|
319
329
|
}
|
320
330
|
}
|
@@ -338,10 +348,27 @@ contract DistributionService is
|
|
338
348
|
return false;
|
339
349
|
}
|
340
350
|
|
351
|
+
// ensure the referral was created on the same distribution
|
352
|
+
if(info.distributionNftId != distributionNftId) {
|
353
|
+
revert ErrorDistributionServiceReferralDistributionMismatch(referralId, info.distributionNftId, distributionNftId);
|
354
|
+
}
|
355
|
+
|
341
356
|
isValid = info.expiryAt.eqz() || (info.expiryAt.gtz() && TimestampLib.blockTimestamp() <= info.expiryAt);
|
342
357
|
isValid = isValid && info.usedReferrals < info.maxReferrals;
|
343
358
|
}
|
344
359
|
|
360
|
+
function _checkDistributionType(InstanceReader instanceReader, DistributorType distributorType, NftId expectedDistributionNftId)
|
361
|
+
internal
|
362
|
+
view
|
363
|
+
{
|
364
|
+
// enfore distributor type belongs to the calling distribution
|
365
|
+
NftId distributorTypeDistributionNftId = instanceReader.getDistributorTypeInfo(distributorType).distributionNftId;
|
366
|
+
|
367
|
+
if (distributorTypeDistributionNftId != expectedDistributionNftId) {
|
368
|
+
revert ErrorDistributionServiceDistributorTypeDistributionMismatch(distributorType, distributorTypeDistributionNftId, expectedDistributionNftId);
|
369
|
+
}
|
370
|
+
}
|
371
|
+
|
345
372
|
function _getInstanceForDistribution(NftId distributionNftId)
|
346
373
|
internal
|
347
374
|
view
|
@@ -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);
|
@@ -13,7 +13,6 @@ import {Timestamp} from "../type/Timestamp.sol";
|
|
13
13
|
|
14
14
|
|
15
15
|
interface IDistributionService is IService {
|
16
|
-
|
17
16
|
error ErrorDistributionServiceCallerNotRegistered(address caller);
|
18
17
|
error ErrorDistributionServiceParentNftIdNotInstance(NftId nftId, NftId parentNftId);
|
19
18
|
error ErrorDistributionServiceCallerNotDistributor(address caller);
|
@@ -26,6 +25,8 @@ interface IDistributionService is IService {
|
|
26
25
|
error ErrorDistributionServiceExpirationInvalid(Timestamp expiryAt);
|
27
26
|
error ErrorDistributionServiceCommissionTooHigh(uint256 commissionPercentage, uint256 maxCommissionPercentage);
|
28
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);
|
29
30
|
|
30
31
|
error ErrorDistributionServiceCommissionWithdrawAmountExceedsLimit(Amount amount, Amount limit);
|
31
32
|
|
@@ -34,6 +35,7 @@ interface IDistributionService is IService {
|
|
34
35
|
|
35
36
|
error ErrorDistributionServiceReferralInvalid(NftId distributionNftId, ReferralId referralId);
|
36
37
|
error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
|
38
|
+
error ErrorDistributionServiceReferralDistributionMismatch(ReferralId referralId, NftId referralDistributionNft, NftId distributionNftId);
|
37
39
|
|
38
40
|
event LogDistributionServiceCommissionWithdrawn(NftId distributorNftId, address recipient, address tokenAddress, Amount amount);
|
39
41
|
|
@@ -59,7 +61,7 @@ interface IDistributionService is IService {
|
|
59
61
|
|
60
62
|
function changeDistributorType(
|
61
63
|
NftId distributorNftId,
|
62
|
-
DistributorType
|
64
|
+
DistributorType newDistributorType,
|
63
65
|
bytes memory data
|
64
66
|
) external;
|
65
67
|
|
@@ -19,7 +19,6 @@ contract FirePool is
|
|
19
19
|
address registry,
|
20
20
|
NftId fireProductNftId,
|
21
21
|
string memory componentName,
|
22
|
-
address token,
|
23
22
|
IAuthorization authorization
|
24
23
|
)
|
25
24
|
{
|
@@ -28,7 +27,6 @@ contract FirePool is
|
|
28
27
|
registry,
|
29
28
|
fireProductNftId,
|
30
29
|
componentName,
|
31
|
-
token,
|
32
30
|
IComponents.PoolInfo({
|
33
31
|
maxBalanceAmount: AmountLib.max(),
|
34
32
|
isInterceptingBundleTransfers: false,
|
@@ -46,7 +44,6 @@ contract FirePool is
|
|
46
44
|
address registry,
|
47
45
|
NftId fireProductNftId,
|
48
46
|
string memory componentName,
|
49
|
-
address token,
|
50
47
|
IComponents.PoolInfo memory poolInfo,
|
51
48
|
IAuthorization authorization,
|
52
49
|
address initialOwner
|
@@ -58,7 +55,6 @@ contract FirePool is
|
|
58
55
|
registry,
|
59
56
|
fireProductNftId,
|
60
57
|
componentName,
|
61
|
-
token,
|
62
58
|
poolInfo,
|
63
59
|
authorization,
|
64
60
|
initialOwner);
|
@@ -68,7 +68,6 @@ contract FireProduct is
|
|
68
68
|
address registry,
|
69
69
|
NftId instanceNftid,
|
70
70
|
string memory componentName,
|
71
|
-
address token,
|
72
71
|
IAuthorization authorization
|
73
72
|
)
|
74
73
|
{
|
@@ -78,7 +77,6 @@ contract FireProduct is
|
|
78
77
|
registry,
|
79
78
|
instanceNftid,
|
80
79
|
componentName,
|
81
|
-
token,
|
82
80
|
authorization,
|
83
81
|
initialOwner);
|
84
82
|
}
|
@@ -87,7 +85,6 @@ contract FireProduct is
|
|
87
85
|
address registry,
|
88
86
|
NftId instanceNftId,
|
89
87
|
string memory componentName,
|
90
|
-
address token,
|
91
88
|
IAuthorization authorization,
|
92
89
|
address initialOwner
|
93
90
|
)
|
@@ -98,7 +95,6 @@ contract FireProduct is
|
|
98
95
|
registry,
|
99
96
|
instanceNftId,
|
100
97
|
componentName,
|
101
|
-
token,
|
102
98
|
IComponents.ProductInfo({
|
103
99
|
isProcessingFundedClaims: false,
|
104
100
|
isInterceptingPolicyTransfers: false,
|
@@ -252,8 +248,7 @@ contract FireProduct is
|
|
252
248
|
return _riskMapping[cityName];
|
253
249
|
}
|
254
250
|
_cities.push(cityName);
|
255
|
-
risk =
|
256
|
-
_createRisk(risk, "");
|
251
|
+
risk = _createRisk(bytes32(abi.encodePacked(cityName)), "");
|
257
252
|
_riskMapping[cityName] = risk;
|
258
253
|
}
|
259
254
|
|
@@ -7,6 +7,9 @@ import {Amount} from "../../type/Amount.sol";
|
|
7
7
|
import {BasicDistribution} from "../../distribution/BasicDistribution.sol";
|
8
8
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
9
9
|
import {NftId} from "../../type/NftId.sol";
|
10
|
+
import {ReferralId} from "../../type/Referral.sol";
|
11
|
+
import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
12
|
+
import {UFixed, UFixedLib} from "../../type/UFixed.sol";
|
10
13
|
|
11
14
|
|
12
15
|
contract SimpleDistribution is
|
@@ -17,8 +20,7 @@ contract SimpleDistribution is
|
|
17
20
|
address registry,
|
18
21
|
NftId productNftId,
|
19
22
|
IAuthorization authorization,
|
20
|
-
address initialOwner
|
21
|
-
address token
|
23
|
+
address initialOwner
|
22
24
|
)
|
23
25
|
{
|
24
26
|
initialize(
|
@@ -26,8 +28,7 @@ contract SimpleDistribution is
|
|
26
28
|
productNftId,
|
27
29
|
authorization,
|
28
30
|
initialOwner,
|
29
|
-
"SimpleDistribution"
|
30
|
-
token);
|
31
|
+
"SimpleDistribution");
|
31
32
|
}
|
32
33
|
|
33
34
|
function initialize(
|
@@ -35,8 +36,7 @@ contract SimpleDistribution is
|
|
35
36
|
NftId productNftId,
|
36
37
|
IAuthorization authorization,
|
37
38
|
address initialOwner,
|
38
|
-
string memory name
|
39
|
-
address token
|
39
|
+
string memory name
|
40
40
|
)
|
41
41
|
public
|
42
42
|
virtual
|
@@ -47,11 +47,35 @@ contract SimpleDistribution is
|
|
47
47
|
productNftId,
|
48
48
|
authorization,
|
49
49
|
initialOwner,
|
50
|
-
name
|
51
|
-
token);
|
50
|
+
name);
|
52
51
|
}
|
53
52
|
|
54
53
|
function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
|
55
54
|
function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
|
56
55
|
function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
|
56
|
+
|
57
|
+
/**
|
58
|
+
* @dev create referral codes. This is required for testing only to provide a distributor that is not the message sender.
|
59
|
+
*/
|
60
|
+
function createReferral2(
|
61
|
+
NftId distributorNftId,
|
62
|
+
string memory code,
|
63
|
+
UFixed discountPercentage,
|
64
|
+
uint32 maxReferrals,
|
65
|
+
Timestamp expiryAt,
|
66
|
+
bytes memory data
|
67
|
+
)
|
68
|
+
external
|
69
|
+
virtual
|
70
|
+
returns (ReferralId referralId)
|
71
|
+
{
|
72
|
+
return _createReferral(
|
73
|
+
distributorNftId,
|
74
|
+
code,
|
75
|
+
discountPercentage,
|
76
|
+
maxReferrals,
|
77
|
+
expiryAt,
|
78
|
+
data); // data
|
79
|
+
}
|
80
|
+
|
57
81
|
}
|
@@ -34,8 +34,7 @@ contract SimpleOracle is
|
|
34
34
|
address registry,
|
35
35
|
NftId productNftId,
|
36
36
|
IAuthorization authorization,
|
37
|
-
address initialOwner
|
38
|
-
address token
|
37
|
+
address initialOwner
|
39
38
|
)
|
40
39
|
{
|
41
40
|
initialize(
|
@@ -43,8 +42,7 @@ contract SimpleOracle is
|
|
43
42
|
productNftId,
|
44
43
|
authorization,
|
45
44
|
initialOwner,
|
46
|
-
"SimpleOracle"
|
47
|
-
token
|
45
|
+
"SimpleOracle"
|
48
46
|
);
|
49
47
|
}
|
50
48
|
|
@@ -53,8 +51,7 @@ contract SimpleOracle is
|
|
53
51
|
NftId productNftId,
|
54
52
|
IAuthorization authorization,
|
55
53
|
address initialOwner,
|
56
|
-
string memory name
|
57
|
-
address token
|
54
|
+
string memory name
|
58
55
|
)
|
59
56
|
public
|
60
57
|
virtual
|
@@ -65,8 +62,7 @@ contract SimpleOracle is
|
|
65
62
|
productNftId,
|
66
63
|
authorization,
|
67
64
|
initialOwner,
|
68
|
-
name
|
69
|
-
token);
|
65
|
+
name);
|
70
66
|
}
|
71
67
|
|
72
68
|
/// @dev use case specific handling of oracle requests
|
@@ -19,7 +19,6 @@ contract SimplePool is
|
|
19
19
|
constructor(
|
20
20
|
address registry,
|
21
21
|
NftId productNftId,
|
22
|
-
address token,
|
23
22
|
IComponents.PoolInfo memory poolInfo,
|
24
23
|
IAuthorization authorization,
|
25
24
|
address initialOwner
|
@@ -28,7 +27,6 @@ contract SimplePool is
|
|
28
27
|
initialize(
|
29
28
|
registry,
|
30
29
|
productNftId,
|
31
|
-
token,
|
32
30
|
poolInfo,
|
33
31
|
authorization,
|
34
32
|
initialOwner
|
@@ -39,7 +37,6 @@ contract SimplePool is
|
|
39
37
|
function initialize(
|
40
38
|
address registry,
|
41
39
|
NftId productNftId,
|
42
|
-
address token,
|
43
40
|
IComponents.PoolInfo memory poolInfo,
|
44
41
|
IAuthorization authorization,
|
45
42
|
address initialOwner
|
@@ -52,7 +49,6 @@ contract SimplePool is
|
|
52
49
|
registry,
|
53
50
|
productNftId,
|
54
51
|
"SimplePool",
|
55
|
-
token,
|
56
52
|
poolInfo,
|
57
53
|
authorization,
|
58
54
|
initialOwner);
|
@@ -37,7 +37,6 @@ contract SimpleProduct is
|
|
37
37
|
address registry,
|
38
38
|
NftId instanceNftId,
|
39
39
|
string memory name,
|
40
|
-
address token,
|
41
40
|
IComponents.ProductInfo memory productInfo,
|
42
41
|
IComponents.FeeInfo memory feeInfo,
|
43
42
|
IAuthorization authorization,
|
@@ -48,7 +47,6 @@ contract SimpleProduct is
|
|
48
47
|
registry,
|
49
48
|
instanceNftId,
|
50
49
|
name,
|
51
|
-
token,
|
52
50
|
productInfo,
|
53
51
|
feeInfo,
|
54
52
|
authorization,
|
@@ -60,7 +58,6 @@ contract SimpleProduct is
|
|
60
58
|
address registry,
|
61
59
|
NftId instanceNftid,
|
62
60
|
string memory name,
|
63
|
-
address token,
|
64
61
|
IComponents.ProductInfo memory productInfo,
|
65
62
|
IComponents.FeeInfo memory feeInfo,
|
66
63
|
IAuthorization authorization,
|
@@ -74,7 +71,6 @@ contract SimpleProduct is
|
|
74
71
|
registry,
|
75
72
|
instanceNftid,
|
76
73
|
name,
|
77
|
-
token,
|
78
74
|
productInfo,
|
79
75
|
feeInfo,
|
80
76
|
authorization,
|
@@ -85,11 +81,11 @@ contract SimpleProduct is
|
|
85
81
|
|
86
82
|
|
87
83
|
function createRisk(
|
88
|
-
|
84
|
+
string memory id,
|
89
85
|
bytes memory data
|
90
|
-
) public {
|
91
|
-
_createRisk(
|
92
|
-
id,
|
86
|
+
) public returns (RiskId) {
|
87
|
+
return _createRisk(
|
88
|
+
bytes32(abi.encodePacked(id)),
|
93
89
|
data
|
94
90
|
);
|
95
91
|
}
|