@etherisc/gif-next 0.0.2-e9c5694-914 → 0.0.2-ea09fbf-195
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -6
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +103 -55
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/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 +2 -2
- 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 +37 -5
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- 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 +106 -186
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -89
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +154 -108
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +75 -53
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -58
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +50 -3
- 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 +101 -164
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +49 -17
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +258 -290
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +17 -17
- 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 +137 -129
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +90 -126
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +225 -162
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +630 -317
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +94 -47
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +77 -20
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +131 -56
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +239 -92
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +40 -27
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +478 -197
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +104 -74
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -27
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +410 -370
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelper.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelper.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- 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 +74 -154
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- 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 +44 -58
- 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 +58 -90
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +112 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +69 -27
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +57 -104
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +49 -17
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +128 -226
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +60 -74
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +46 -60
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -97
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +104 -78
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -128
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +175 -174
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +64 -38
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +105 -63
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -27
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +163 -175
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +251 -144
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +79 -57
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +61 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +143 -3
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +65 -22
- 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 +150 -144
- 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 +158 -140
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +73 -47
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +99 -76
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -38
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +163 -175
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +88 -73
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +54 -24
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +31 -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 +69 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +188 -213
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +42 -20
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -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 +310 -52
- 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 +57 -75
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +250 -421
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +71 -61
- 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 +454 -5
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +44 -44
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +134 -248
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +44 -58
- 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 +57 -89
- 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 +388 -35
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +62 -80
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +27 -3
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +3 -3
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +134 -173
- 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 +58 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +73 -50
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +46 -24
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +129 -129
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +3 -3
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +3 -3
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +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 +62 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +3 -3
- 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/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
- 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 +18 -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 +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +136 -73
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/IAccessAdmin.sol +6 -3
- package/contracts/distribution/BasicDistribution.sol +6 -6
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +32 -30
- package/contracts/distribution/DistributionService.sol +34 -32
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +5 -6
- package/contracts/examples/fire/FirePool.sol +22 -5
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -0
- package/contracts/examples/fire/FireProduct.sol +31 -8
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +7 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +33 -2
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +40 -21
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +8 -8
- package/contracts/instance/IInstanceService.sol +9 -9
- package/contracts/instance/Instance.sol +20 -17
- package/contracts/instance/InstanceAdmin.sol +96 -47
- package/contracts/instance/InstanceAuthorizationV3.sol +45 -14
- package/contracts/instance/InstanceReader.sol +108 -7
- package/contracts/instance/InstanceService.sol +73 -82
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelper.sol +30 -0
- package/contracts/instance/module/IComponents.sol +4 -4
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +92 -73
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +24 -3
- package/contracts/pool/BasicPoolAuthorization.sol +12 -1
- package/contracts/pool/BundleService.sol +26 -94
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +2 -24
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +12 -26
- package/contracts/pool/Pool.sol +112 -102
- package/contracts/pool/PoolService.sol +171 -100
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +15 -15
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +9 -11
- package/contracts/product/BasicProductAuthorization.sol +1 -2
- package/contracts/product/ClaimService.sol +147 -51
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +13 -0
- package/contracts/product/IPolicyService.sol +17 -7
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/PolicyService.sol +244 -199
- 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 +47 -39
- package/contracts/product/RiskService.sol +78 -23
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +8 -15
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/Registry.sol +12 -3
- package/contracts/registry/RegistryAdmin.sol +121 -225
- 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 +129 -119
- package/contracts/registry/ServiceAuthorizationV3.sol +88 -40
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +59 -98
- package/contracts/shared/ComponentService.sol +206 -251
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +15 -13
- package/contracts/shared/ContractLib.sol +223 -9
- package/contracts/shared/IComponent.sol +4 -17
- package/contracts/shared/IComponentService.sol +20 -24
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +2 -18
- package/contracts/shared/NftOwnable.sol +4 -4
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +44 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +316 -66
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +9 -4
- package/contracts/staking/Staking.sol +62 -33
- package/contracts/staking/StakingService.sol +41 -9
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +32 -18
- package/contracts/type/RiskId.sol +23 -6
- package/contracts/type/RoleId.sol +5 -2
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +9 -119
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +3 -3
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
@@ -1,6 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IAccountingService} from "../accounting/IAccountingService.sol";
|
4
5
|
import {IRegistry} from "../registry/IRegistry.sol";
|
5
6
|
import {IInstance} from "../instance/IInstance.sol";
|
6
7
|
import {IComponentService} from "../shared/IComponentService.sol";
|
@@ -13,7 +14,7 @@ import {IPolicy} from "../instance/module/IPolicy.sol";
|
|
13
14
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
14
15
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
15
16
|
import {KEEP_STATE} from "../type/StateId.sol";
|
16
|
-
import {ObjectType, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
|
17
|
+
import {ObjectType, ACCOUNTING, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
|
17
18
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
18
19
|
import {IDistributionService} from "./IDistributionService.sol";
|
19
20
|
import {UFixed} from "../type/UFixed.sol";
|
@@ -28,6 +29,7 @@ contract DistributionService is
|
|
28
29
|
ComponentVerifyingService,
|
29
30
|
IDistributionService
|
30
31
|
{
|
32
|
+
IAccountingService private _accountingService;
|
31
33
|
IComponentService private _componentService;
|
32
34
|
IInstanceService private _instanceService;
|
33
35
|
IRegistryService private _registryService;
|
@@ -41,12 +43,13 @@ contract DistributionService is
|
|
41
43
|
initializer()
|
42
44
|
{
|
43
45
|
(
|
44
|
-
address
|
45
|
-
address
|
46
|
+
address authority,
|
47
|
+
address registry
|
46
48
|
) = abi.decode(data, (address, address));
|
47
49
|
|
48
|
-
|
50
|
+
__Service_init(authority, registry, owner);
|
49
51
|
|
52
|
+
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
50
53
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
51
54
|
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
52
55
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
@@ -70,14 +73,14 @@ contract DistributionService is
|
|
70
73
|
returns (DistributorType distributorType)
|
71
74
|
{
|
72
75
|
(NftId distributionNftId,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
73
|
-
InstanceReader instanceReader = instance.getInstanceReader();
|
76
|
+
// InstanceReader instanceReader = instance.getInstanceReader();
|
74
77
|
|
75
78
|
{
|
76
79
|
NftId productNftId = _getProductNftId(distributionNftId);
|
77
|
-
IComponents.
|
80
|
+
IComponents.FeeInfo memory feeInfo = instance.getInstanceReader().getFeeInfo(productNftId);
|
78
81
|
|
79
|
-
UFixed variableDistributionFees =
|
80
|
-
UFixed variableFeesPartsTotal =
|
82
|
+
UFixed variableDistributionFees = feeInfo.distributionFee.fractionalFee;
|
83
|
+
UFixed variableFeesPartsTotal = feeInfo.minDistributionOwnerFee.fractionalFee + commissionPercentage;
|
81
84
|
|
82
85
|
if (variableFeesPartsTotal > variableDistributionFees) {
|
83
86
|
revert ErrorDistributionServiceVariableFeesTooHight(variableDistributionFees.toInt1000(), variableFeesPartsTotal.toInt1000());
|
@@ -136,21 +139,20 @@ contract DistributionService is
|
|
136
139
|
instance.getInstanceStore().createDistributor(distributorNftId, info);
|
137
140
|
}
|
138
141
|
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
// }
|
142
|
+
function changeDistributorType(
|
143
|
+
NftId distributorNftId,
|
144
|
+
DistributorType distributorType,
|
145
|
+
bytes memory data
|
146
|
+
)
|
147
|
+
external
|
148
|
+
virtual
|
149
|
+
{
|
150
|
+
(,, IInstance instance) = _getAndVerifyActiveComponent(DISTRIBUTION());
|
151
|
+
IDistribution.DistributorInfo memory distributorInfo = instance.getInstanceReader().getDistributorInfo(distributorNftId);
|
152
|
+
distributorInfo.distributorType = distributorType;
|
153
|
+
distributorInfo.data = data;
|
154
|
+
instance.getInstanceStore().updateDistributor(distributorNftId, distributorInfo, KEEP_STATE());
|
155
|
+
}
|
154
156
|
|
155
157
|
|
156
158
|
function createReferral(
|
@@ -223,7 +225,7 @@ contract DistributionService is
|
|
223
225
|
if (referralIsValid(distributionNftId, referralId)) {
|
224
226
|
IRegistry registry = getRegistry();
|
225
227
|
IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionNftId);
|
226
|
-
IInstance instance = _getInstanceForComponent(registry, distributionInfo);
|
228
|
+
IInstance instance = _getInstanceForComponent(registry, distributionInfo.parentNftId);
|
227
229
|
|
228
230
|
// update book keeping for referral info
|
229
231
|
IDistribution.ReferralInfo memory referralInfo = instance.getInstanceReader().getReferralInfo(referralId);
|
@@ -244,7 +246,7 @@ contract DistributionService is
|
|
244
246
|
{
|
245
247
|
IRegistry registry = getRegistry();
|
246
248
|
IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionNftId);
|
247
|
-
IInstance instance = _getInstanceForComponent(registry, distributionInfo);
|
249
|
+
IInstance instance = _getInstanceForComponent(registry, distributionInfo.parentNftId);
|
248
250
|
InstanceReader reader = instance.getInstanceReader();
|
249
251
|
InstanceStore store = instance.getInstanceStore();
|
250
252
|
|
@@ -256,12 +258,12 @@ contract DistributionService is
|
|
256
258
|
|
257
259
|
// increase distribution balance by commission amount and distribution owner fee
|
258
260
|
Amount commissionAmount = premium.commissionAmount;
|
259
|
-
|
261
|
+
_accountingService.increaseDistributionBalance(store, distributionNftId, commissionAmount, distributionOwnerFee);
|
260
262
|
|
261
263
|
// update book keeping for referral info
|
262
264
|
IDistribution.ReferralInfo memory referralInfo = reader.getReferralInfo(referralId);
|
263
265
|
|
264
|
-
|
266
|
+
_accountingService.increaseDistributorBalance(store, referralInfo.distributorNftId, AmountLib.zero(), commissionAmount);
|
265
267
|
|
266
268
|
// update book keeping for distributor info
|
267
269
|
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
@@ -269,7 +271,7 @@ contract DistributionService is
|
|
269
271
|
store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
|
270
272
|
} else {
|
271
273
|
// increase distribution balance by distribution owner fee
|
272
|
-
|
274
|
+
_accountingService.increaseDistributionBalance(store, distributionNftId, AmountLib.zero(), distributionOwnerFee);
|
273
275
|
}
|
274
276
|
}
|
275
277
|
|
@@ -285,7 +287,7 @@ contract DistributionService is
|
|
285
287
|
InstanceReader reader = instance.getInstanceReader();
|
286
288
|
|
287
289
|
IComponents.ComponentInfo memory distributionInfo = reader.getComponentInfo(distributionNftId);
|
288
|
-
address distributionWallet = distributionInfo.
|
290
|
+
address distributionWallet = distributionInfo.tokenHandler.getWallet();
|
289
291
|
|
290
292
|
Amount commissionAmount = reader.getFeeAmount(distributorNftId);
|
291
293
|
|
@@ -303,9 +305,9 @@ contract DistributionService is
|
|
303
305
|
{
|
304
306
|
InstanceStore store = instance.getInstanceStore();
|
305
307
|
// decrease fee counter for distribution balance
|
306
|
-
|
308
|
+
_accountingService.decreaseDistributionBalance(store, distributionNftId, withdrawnAmount, AmountLib.zero());
|
307
309
|
// decrease fee counter for distributor fee
|
308
|
-
|
310
|
+
_accountingService.decreaseDistributorBalance(store, distributorNftId, AmountLib.zero(), withdrawnAmount);
|
309
311
|
}
|
310
312
|
|
311
313
|
// transfer amount to distributor
|
@@ -328,7 +330,7 @@ contract DistributionService is
|
|
328
330
|
|
329
331
|
IRegistry registry = getRegistry();
|
330
332
|
IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionNftId);
|
331
|
-
IInstance instance = _getInstanceForComponent(registry, distributionInfo);
|
333
|
+
IInstance instance = _getInstanceForComponent(registry, distributionInfo.parentNftId);
|
332
334
|
IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
|
333
335
|
|
334
336
|
if (info.distributorNftId.eqz()) {
|
@@ -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),
|
@@ -56,12 +56,11 @@ interface IDistributionService is IService {
|
|
56
56
|
bytes memory data
|
57
57
|
) external returns (NftId distributorNftId);
|
58
58
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
// ) external;
|
59
|
+
function changeDistributorType(
|
60
|
+
NftId distributorNftId,
|
61
|
+
DistributorType distributorType,
|
62
|
+
bytes memory data
|
63
|
+
) external;
|
65
64
|
|
66
65
|
function createReferral(
|
67
66
|
NftId distributorNftId,
|
@@ -1,17 +1,20 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
6
|
+
import {Amount, AmountLib} from "../../type/Amount.sol";
|
5
7
|
import {BasicPool} from "../../pool/BasicPool.sol";
|
6
8
|
import {Fee} from "../../type/Fee.sol";
|
7
9
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
10
|
+
import {IComponents} from "../../instance/module/IComponents.sol";
|
8
11
|
import {NftId} from "../../type/NftId.sol";
|
9
12
|
import {Seconds} from "../../type/Timestamp.sol";
|
13
|
+
import {UFixed, UFixedLib} from "../../type/UFixed.sol";
|
10
14
|
|
11
15
|
contract FirePool is
|
12
16
|
BasicPool
|
13
|
-
{
|
14
|
-
|
17
|
+
{
|
15
18
|
constructor(
|
16
19
|
address registry,
|
17
20
|
NftId fireProductNftId,
|
@@ -26,6 +29,15 @@ contract FirePool is
|
|
26
29
|
fireProductNftId,
|
27
30
|
componentName,
|
28
31
|
token,
|
32
|
+
IComponents.PoolInfo({
|
33
|
+
maxBalanceAmount: AmountLib.max(),
|
34
|
+
isInterceptingBundleTransfers: false,
|
35
|
+
isProcessingConfirmedClaims: false,
|
36
|
+
isExternallyManaged: false,
|
37
|
+
isVerifyingApplications: false,
|
38
|
+
collateralizationLevel: UFixedLib.one(),
|
39
|
+
retentionLevel: UFixedLib.one()
|
40
|
+
}),
|
29
41
|
authorization,
|
30
42
|
initialOwner);
|
31
43
|
}
|
@@ -35,6 +47,7 @@ contract FirePool is
|
|
35
47
|
NftId fireProductNftId,
|
36
48
|
string memory componentName,
|
37
49
|
address token,
|
50
|
+
IComponents.PoolInfo memory poolInfo,
|
38
51
|
IAuthorization authorization,
|
39
52
|
address initialOwner
|
40
53
|
)
|
@@ -44,9 +57,10 @@ contract FirePool is
|
|
44
57
|
_initializeBasicPool(
|
45
58
|
registry,
|
46
59
|
fireProductNftId,
|
47
|
-
authorization,
|
48
|
-
token,
|
49
60
|
componentName,
|
61
|
+
token,
|
62
|
+
poolInfo,
|
63
|
+
authorization,
|
50
64
|
initialOwner);
|
51
65
|
}
|
52
66
|
|
@@ -70,4 +84,7 @@ contract FirePool is
|
|
70
84
|
netStakedAmount = _stake(bundleNftId, initialAmount);
|
71
85
|
}
|
72
86
|
|
87
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
|
88
|
+
function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
|
89
|
+
function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
|
73
90
|
}
|
@@ -27,6 +27,7 @@ contract FirePoolAuthorization
|
|
27
27
|
// authorize public role (open access to any account, only allows to lock target)
|
28
28
|
functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
|
29
29
|
// TODO: FirePool.createBundle must require a custom role (e.g. INVESTOR) instead of PUBLIC_ROLE
|
30
|
+
_authorize(functions, FirePool.approveTokenHandler.selector, "approveTokenHandler");
|
30
31
|
_authorize(functions, FirePool.createBundle.selector, "createBundle");
|
31
32
|
}
|
32
33
|
|
@@ -1,14 +1,18 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
4
6
|
import {ACTIVE, PAUSED} from "../../type/StateId.sol";
|
5
7
|
import {Amount, AmountLib} from "../../type/Amount.sol";
|
6
8
|
import {BasicProduct} from "../../product/BasicProduct.sol";
|
7
9
|
import {ClaimId} from "../../type/ClaimId.sol";
|
8
10
|
import {DamageLevel, DAMAGE_SMALL, DAMAGE_MEDIUM, DAMAGE_LARGE} from "./DamageLevel.sol";
|
11
|
+
import {FeeLib} from "../../type/Fee.sol";
|
9
12
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
13
|
+
import {IComponents} from "../../instance/module/IComponents.sol";
|
10
14
|
import {IPolicy} from "../../instance/module/IPolicy.sol";
|
11
|
-
import {NftId} from "../../type/NftId.sol";
|
15
|
+
import {NftId, NftIdLib} from "../../type/NftId.sol";
|
12
16
|
import {PayoutId} from "../../type/PayoutId.sol";
|
13
17
|
import {POLICY, BUNDLE} from "../../type/ObjectType.sol";
|
14
18
|
import {ReferralLib} from "../../type/Referral.sol";
|
@@ -81,7 +85,7 @@ contract FireProduct is
|
|
81
85
|
|
82
86
|
function _initialize(
|
83
87
|
address registry,
|
84
|
-
NftId
|
88
|
+
NftId instanceNftId,
|
85
89
|
string memory componentName,
|
86
90
|
address token,
|
87
91
|
IAuthorization authorization,
|
@@ -92,14 +96,30 @@ contract FireProduct is
|
|
92
96
|
{
|
93
97
|
_initializeBasicProduct(
|
94
98
|
registry,
|
95
|
-
|
96
|
-
authorization,
|
97
|
-
initialOwner,
|
99
|
+
instanceNftId,
|
98
100
|
componentName,
|
99
101
|
token,
|
100
|
-
|
101
|
-
|
102
|
-
|
102
|
+
IComponents.ProductInfo({
|
103
|
+
isProcessingFundedClaims: false,
|
104
|
+
isInterceptingPolicyTransfers: false,
|
105
|
+
hasDistribution: false,
|
106
|
+
expectedNumberOfOracles: 0,
|
107
|
+
numberOfOracles: 0,
|
108
|
+
poolNftId: NftIdLib.zero(),
|
109
|
+
distributionNftId: NftIdLib.zero(),
|
110
|
+
oracleNftId: new NftId[](0)
|
111
|
+
}),
|
112
|
+
IComponents.FeeInfo({
|
113
|
+
productFee: FeeLib.zero(),
|
114
|
+
processingFee: FeeLib.zero(),
|
115
|
+
distributionFee: FeeLib.zero(),
|
116
|
+
minDistributionOwnerFee: FeeLib.zero(),
|
117
|
+
poolFee: FeeLib.zero(),
|
118
|
+
stakingFee: FeeLib.zero(),
|
119
|
+
performanceFee: FeeLib.zero()
|
120
|
+
}),
|
121
|
+
authorization,
|
122
|
+
initialOwner); // number of oracles
|
103
123
|
}
|
104
124
|
|
105
125
|
function cities() public view returns (uint256) {
|
@@ -412,4 +432,7 @@ contract FireProduct is
|
|
412
432
|
}
|
413
433
|
}
|
414
434
|
|
435
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
|
436
|
+
function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
|
437
|
+
function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
|
415
438
|
}
|
@@ -25,6 +25,7 @@ contract FireProductAuthorization
|
|
25
25
|
// authorize public role (open access to any account, only allows to lock target)
|
26
26
|
functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
|
27
27
|
// fully public functions
|
28
|
+
_authorize(functions, FireProduct.approveTokenHandler.selector, "approveTokenHandler");
|
28
29
|
_authorize(functions, FireProduct.createApplication.selector, "createApplication");
|
29
30
|
|
30
31
|
// only owner
|
@@ -1,6 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
6
|
+
import {Amount} from "../../type/Amount.sol";
|
4
7
|
import {BasicDistribution} from "../../distribution/BasicDistribution.sol";
|
5
8
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
6
9
|
import {NftId} from "../../type/NftId.sol";
|
@@ -47,4 +50,8 @@ contract SimpleDistribution is
|
|
47
50
|
name,
|
48
51
|
token);
|
49
52
|
}
|
53
|
+
|
54
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
|
55
|
+
function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
|
56
|
+
function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
|
50
57
|
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {BasicDistributionAuthorization} from "../../distribution/BasicDistributionAuthorization.sol";
|
5
|
+
import {IAccess} from "../../authorization/IAccess.sol";
|
6
|
+
import {PUBLIC_ROLE} from "../../type/RoleId.sol";
|
7
|
+
import {SimpleDistribution} from "./SimpleDistribution.sol";
|
8
|
+
|
9
|
+
contract SimpleDistributionAuthorization
|
10
|
+
is BasicDistributionAuthorization
|
11
|
+
{
|
12
|
+
constructor(string memory componentName)
|
13
|
+
BasicDistributionAuthorization(componentName)
|
14
|
+
{}
|
15
|
+
|
16
|
+
function _setupTargetAuthorizations()
|
17
|
+
internal
|
18
|
+
virtual override
|
19
|
+
{
|
20
|
+
super._setupTargetAuthorizations();
|
21
|
+
|
22
|
+
// authorize public role (open access to any account, only allows to lock target)
|
23
|
+
IAccess.FunctionInfo[] storage functions;
|
24
|
+
functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
|
25
|
+
_authorize(functions, SimpleDistribution.approveTokenHandler.selector, "approveTokenHandler");
|
26
|
+
_authorize(functions, SimpleDistribution.setWallet.selector, "setWallet");
|
27
|
+
}
|
28
|
+
}
|
@@ -1,11 +1,14 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
4
6
|
import {Amount, AmountLib} from "../../type/Amount.sol";
|
5
7
|
import {BasicPool} from "../../pool/BasicPool.sol";
|
6
8
|
import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
|
7
9
|
import {Fee} from "../../type/Fee.sol";
|
8
10
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
11
|
+
import {IComponents} from "../../instance/module/IComponents.sol";
|
9
12
|
import {NftId} from "../../type/NftId.sol";
|
10
13
|
import {Seconds} from "../../type/Timestamp.sol";
|
11
14
|
import {UFixed} from "../../type/UFixed.sol";
|
@@ -18,6 +21,7 @@ contract SimplePool is
|
|
18
21
|
address registry,
|
19
22
|
NftId productNftId,
|
20
23
|
address token,
|
24
|
+
IComponents.PoolInfo memory poolInfo,
|
21
25
|
IAuthorization authorization,
|
22
26
|
address initialOwner
|
23
27
|
)
|
@@ -26,15 +30,18 @@ contract SimplePool is
|
|
26
30
|
registry,
|
27
31
|
productNftId,
|
28
32
|
token,
|
33
|
+
poolInfo,
|
29
34
|
authorization,
|
30
35
|
initialOwner
|
31
36
|
);
|
32
37
|
}
|
33
38
|
|
39
|
+
|
34
40
|
function initialize(
|
35
41
|
address registry,
|
36
42
|
NftId productNftId,
|
37
43
|
address token,
|
44
|
+
IComponents.PoolInfo memory poolInfo,
|
38
45
|
IAuthorization authorization,
|
39
46
|
address initialOwner
|
40
47
|
)
|
@@ -45,12 +52,14 @@ contract SimplePool is
|
|
45
52
|
_initializeBasicPool(
|
46
53
|
registry,
|
47
54
|
productNftId,
|
48
|
-
authorization,
|
49
|
-
token,
|
50
55
|
"SimplePool",
|
56
|
+
token,
|
57
|
+
poolInfo,
|
58
|
+
authorization,
|
51
59
|
initialOwner);
|
52
60
|
}
|
53
61
|
|
62
|
+
|
54
63
|
function createBundle(
|
55
64
|
Fee memory fee,
|
56
65
|
uint256 initialAmount,
|
@@ -73,4 +82,26 @@ contract SimplePool is
|
|
73
82
|
netStakedAmountInt = netStakedAmount.toInt();
|
74
83
|
}
|
75
84
|
|
85
|
+
|
86
|
+
function fundPoolWallet(
|
87
|
+
Amount amount
|
88
|
+
)
|
89
|
+
external
|
90
|
+
{
|
91
|
+
_fundPoolWallet(amount);
|
92
|
+
}
|
93
|
+
|
94
|
+
|
95
|
+
function defundPoolWallet(
|
96
|
+
Amount amount
|
97
|
+
)
|
98
|
+
external
|
99
|
+
{
|
100
|
+
_defundPoolWallet(amount);
|
101
|
+
}
|
102
|
+
|
103
|
+
|
104
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
|
105
|
+
function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
|
106
|
+
function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
|
76
107
|
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {BasicPoolAuthorization} from "../../pool/BasicPoolAuthorization.sol";
|
5
|
+
import {IAccess} from "../../authorization/IAccess.sol";
|
6
|
+
import {PUBLIC_ROLE} from "../../type/RoleId.sol";
|
7
|
+
import {SimplePool} from "./SimplePool.sol";
|
8
|
+
|
9
|
+
contract SimplePoolAuthorization
|
10
|
+
is BasicPoolAuthorization
|
11
|
+
{
|
12
|
+
constructor(string memory poolName)
|
13
|
+
BasicPoolAuthorization(poolName)
|
14
|
+
{}
|
15
|
+
|
16
|
+
function _setupTargetAuthorizations()
|
17
|
+
internal
|
18
|
+
virtual override
|
19
|
+
{
|
20
|
+
super._setupTargetAuthorizations();
|
21
|
+
|
22
|
+
// authorize public role (open access to any account, only allows to lock target)
|
23
|
+
IAccess.FunctionInfo[] storage functions;
|
24
|
+
functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
|
25
|
+
_authorize(functions, SimplePool.approveTokenHandler.selector, "approveTokenHandler");
|
26
|
+
_authorize(functions, SimplePool.setWallet.selector, "setWallet");
|
27
|
+
}
|
28
|
+
}
|
@@ -1,10 +1,13 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
4
6
|
import {Amount, AmountLib} from "../../type/Amount.sol";
|
5
7
|
import {BasicProduct} from "../../product/BasicProduct.sol";
|
6
8
|
import {ClaimId} from "../../type/ClaimId.sol";
|
7
9
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
10
|
+
import {IComponents} from "../../instance/module/IComponents.sol";
|
8
11
|
import {IOracleService} from "../../oracle/IOracleService.sol";
|
9
12
|
import {ORACLE} from "../../type/ObjectType.sol";
|
10
13
|
import {NftId} from "../../type/NftId.sol";
|
@@ -33,37 +36,35 @@ contract SimpleProduct is
|
|
33
36
|
constructor(
|
34
37
|
address registry,
|
35
38
|
NftId instanceNftId,
|
36
|
-
|
37
|
-
address initialOwner,
|
39
|
+
string memory name,
|
38
40
|
address token,
|
39
|
-
|
40
|
-
|
41
|
-
|
41
|
+
IComponents.ProductInfo memory productInfo,
|
42
|
+
IComponents.FeeInfo memory feeInfo,
|
43
|
+
IAuthorization authorization,
|
44
|
+
address initialOwner
|
42
45
|
)
|
43
46
|
{
|
44
47
|
initialize(
|
45
48
|
registry,
|
46
49
|
instanceNftId,
|
47
|
-
|
48
|
-
initialOwner,
|
49
|
-
"SimpleProduct",
|
50
|
+
name,
|
50
51
|
token,
|
51
|
-
|
52
|
-
|
53
|
-
|
52
|
+
productInfo,
|
53
|
+
feeInfo,
|
54
|
+
authorization,
|
55
|
+
initialOwner);
|
54
56
|
}
|
55
57
|
|
56
58
|
|
57
59
|
function initialize(
|
58
60
|
address registry,
|
59
61
|
NftId instanceNftid,
|
60
|
-
IAuthorization authorization,
|
61
|
-
address initialOwner,
|
62
62
|
string memory name,
|
63
63
|
address token,
|
64
|
-
|
65
|
-
|
66
|
-
|
64
|
+
IComponents.ProductInfo memory productInfo,
|
65
|
+
IComponents.FeeInfo memory feeInfo,
|
66
|
+
IAuthorization authorization,
|
67
|
+
address initialOwner
|
67
68
|
)
|
68
69
|
public
|
69
70
|
virtual
|
@@ -72,17 +73,17 @@ contract SimpleProduct is
|
|
72
73
|
_initializeBasicProduct(
|
73
74
|
registry,
|
74
75
|
instanceNftid,
|
75
|
-
authorization,
|
76
|
-
initialOwner,
|
77
76
|
name,
|
78
77
|
token,
|
79
|
-
|
80
|
-
|
81
|
-
|
78
|
+
productInfo,
|
79
|
+
feeInfo,
|
80
|
+
authorization,
|
81
|
+
initialOwner);
|
82
82
|
|
83
83
|
_oracleService = IOracleService(_getServiceAddress(ORACLE()));
|
84
84
|
}
|
85
85
|
|
86
|
+
|
86
87
|
function createRisk(
|
87
88
|
RiskId id,
|
88
89
|
bytes memory data
|
@@ -201,6 +202,13 @@ contract SimpleProduct is
|
|
201
202
|
return _submitClaim(policyNftId, claimAmount, submissionData);
|
202
203
|
}
|
203
204
|
|
205
|
+
function revokeClaim(
|
206
|
+
NftId policyNftId,
|
207
|
+
ClaimId claimId
|
208
|
+
) public {
|
209
|
+
_revokeClaim(policyNftId, claimId);
|
210
|
+
}
|
211
|
+
|
204
212
|
function confirmClaim(
|
205
213
|
NftId policyNftId,
|
206
214
|
ClaimId claimId,
|
@@ -234,6 +242,13 @@ contract SimpleProduct is
|
|
234
242
|
return _createPayout(policyNftId, claimId, amount, data);
|
235
243
|
}
|
236
244
|
|
245
|
+
function cancelPayout(
|
246
|
+
NftId policyNftId,
|
247
|
+
PayoutId payoutId
|
248
|
+
) public {
|
249
|
+
_cancelPayout(policyNftId, payoutId);
|
250
|
+
}
|
251
|
+
|
237
252
|
// TODO add test
|
238
253
|
function createPayoutForBeneficiary(
|
239
254
|
NftId policyNftId,
|
@@ -348,4 +363,8 @@ contract SimpleProduct is
|
|
348
363
|
function getOracleService() public view returns (IOracleService) {
|
349
364
|
return _oracleService;
|
350
365
|
}
|
366
|
+
|
367
|
+
function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
|
368
|
+
function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
|
369
|
+
function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
|
351
370
|
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {BasicProductAuthorization} from "../../product/BasicProductAuthorization.sol";
|
5
|
+
import {IAccess} from "../../authorization/IAccess.sol";
|
6
|
+
import {PUBLIC_ROLE} from "../../type/RoleId.sol";
|
7
|
+
import {SimpleProduct} from "./SimpleProduct.sol";
|
8
|
+
|
9
|
+
contract SimpleProductAuthorization
|
10
|
+
is BasicProductAuthorization
|
11
|
+
{
|
12
|
+
constructor(string memory componentName)
|
13
|
+
BasicProductAuthorization(componentName)
|
14
|
+
{}
|
15
|
+
|
16
|
+
function _setupTargetAuthorizations()
|
17
|
+
internal
|
18
|
+
virtual override
|
19
|
+
{
|
20
|
+
super._setupTargetAuthorizations();
|
21
|
+
|
22
|
+
// authorize public role (open access to any account, only allows to lock target)
|
23
|
+
IAccess.FunctionInfo[] storage functions;
|
24
|
+
functions = _authorizeForTarget(getTargetName(), PUBLIC_ROLE());
|
25
|
+
_authorize(functions, SimpleProduct.approveTokenHandler.selector, "approveTokenHandler");
|
26
|
+
_authorize(functions, SimpleProduct.setWallet.selector, "setWallet");
|
27
|
+
}
|
28
|
+
}
|