@etherisc/gif-next 0.0.2-8e4a894-234 → 0.0.2-8e5f0ee-617
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 +21 -3
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +154 -339
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +158 -320
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +127 -81
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +151 -251
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +67 -64
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +33 -108
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +71 -72
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +188 -47
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +87 -120
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +500 -334
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +277 -96
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +120 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1125 -371
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +3 -78
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- 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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +95 -249
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +115 -57
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +19 -51
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +149 -285
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +136 -135
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +197 -335
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +186 -355
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +102 -68
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +97 -152
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +116 -34
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +135 -196
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +130 -56
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +20 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +30 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +94 -25
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +40 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +253 -148
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -55
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +184 -282
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +113 -87
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +167 -159
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +141 -43
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +296 -237
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +47 -203
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +94 -32
- 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 +135 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +317 -52
- 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 +367 -39
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +370 -68
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +99 -35
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +692 -92
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +314 -138
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +105 -82
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +901 -45
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +76 -81
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +12 -16
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -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 +20 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +13 -7
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +64 -16
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +21 -7
- 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 +20 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +40 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +566 -54
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +661 -85
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +68 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +53 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +34 -34
- 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/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +47 -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 +149 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +76 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
- 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 +2 -2
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
- package/contracts/distribution/Distribution.sol +144 -146
- package/contracts/distribution/DistributionService.sol +64 -110
- package/contracts/distribution/DistributionServiceManager.sol +9 -18
- package/contracts/distribution/IDistributionComponent.sol +20 -43
- package/contracts/distribution/IDistributionService.sol +7 -9
- package/contracts/instance/IInstance.sol +21 -12
- package/contracts/instance/IInstanceService.sol +41 -22
- package/contracts/instance/Instance.sol +111 -86
- package/contracts/instance/InstanceAdmin.sol +266 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +84 -47
- package/contracts/instance/InstanceService.sol +259 -124
- package/contracts/instance/InstanceServiceManager.sol +10 -20
- package/contracts/instance/InstanceStore.sol +131 -66
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/base/ObjectManager.sol +7 -10
- package/contracts/instance/module/IAccess.sol +2 -10
- package/contracts/instance/module/IBundle.sol +1 -4
- package/contracts/instance/module/IComponents.sol +15 -4
- package/contracts/instance/module/IPolicy.sol +12 -5
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +157 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +76 -162
- package/contracts/pool/BundleServiceManager.sol +9 -18
- package/contracts/pool/IBundleService.sol +4 -16
- package/contracts/pool/IPoolComponent.sol +4 -66
- package/contracts/pool/IPoolService.sol +45 -9
- package/contracts/pool/Pool.sol +150 -141
- package/contracts/pool/PoolService.sol +198 -149
- package/contracts/pool/PoolServiceManager.sol +9 -18
- package/contracts/product/ApplicationService.sol +114 -46
- package/contracts/product/ApplicationServiceManager.sol +9 -6
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +33 -28
- package/contracts/product/ClaimServiceManager.sol +9 -6
- package/contracts/product/IApplicationService.sol +1 -1
- package/contracts/product/IClaimService.sol +12 -3
- package/contracts/product/IPolicyService.sol +6 -8
- package/contracts/product/IPricingService.sol +3 -1
- package/contracts/product/IProductComponent.sol +9 -11
- package/contracts/product/IProductService.sol +1 -8
- package/contracts/product/PolicyService.sol +231 -132
- package/contracts/product/PolicyServiceManager.sol +9 -21
- package/contracts/product/PricingService.sol +78 -53
- package/contracts/product/PricingServiceManager.sol +9 -18
- package/contracts/product/Product.sol +126 -109
- package/contracts/product/ProductService.sol +32 -118
- package/contracts/product/ProductServiceManager.sol +9 -21
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +37 -17
- package/contracts/registry/IRegistryService.sol +33 -30
- package/contracts/registry/Registry.sol +193 -82
- package/contracts/registry/RegistryAdmin.sol +365 -0
- package/contracts/registry/RegistryService.sol +63 -82
- package/contracts/registry/RegistryServiceManager.sol +21 -28
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseManager.sol +354 -191
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +139 -129
- package/contracts/shared/ComponentService.sol +524 -93
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/shared/IComponent.sol +17 -37
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +7 -6
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/IPolicyHolder.sol +6 -1
- package/contracts/shared/IService.sol +8 -1
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +151 -0
- package/contracts/{instance/base → shared}/KeyValueStore.sol +36 -73
- package/contracts/shared/Lifecycle.sol +77 -0
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +2 -13
- package/contracts/shared/PolicyHolder.sol +21 -13
- package/contracts/shared/ProxyManager.sol +31 -1
- package/contracts/shared/Registerable.sol +2 -2
- package/contracts/shared/Service.sol +32 -21
- package/contracts/shared/TokenHandler.sol +24 -1
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +98 -47
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +513 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +290 -45
- package/contracts/staking/{StakeingServiceManager.sol → StakingServiceManager.sol} +11 -4
- package/contracts/staking/StakingStore.sol +615 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +20 -1
- package/contracts/type/Blocknumber.sol +20 -3
- package/contracts/type/Fee.sol +17 -16
- package/contracts/type/NftId.sol +14 -16
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +176 -63
- package/contracts/type/Referral.sol +1 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +117 -40
- package/contracts/type/Seconds.sol +27 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +27 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +6 -2
- package/contracts/type/UFixed.sol +6 -0
- package/contracts/type/Version.sol +1 -1
- package/package.json +8 -5
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -124
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -581
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +0 -628
- package/contracts/instance/InstanceAccessManager.sol +0 -541
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -308
- package/contracts/instance/base/Lifecycle.sol +0 -120
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
@@ -1,6 +1,7 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {Amount, AmountLib} from "../type/Amount.sol";
|
4
5
|
import {Seconds} from "../type/Seconds.sol";
|
5
6
|
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
6
7
|
import {ObjectType} from "../type/ObjectType.sol";
|
@@ -9,7 +10,6 @@ import {Fee} from "../type/Fee.sol";
|
|
9
10
|
import {ReferralId} from "../type/Referral.sol";
|
10
11
|
import {RiskId} from "../type/RiskId.sol";
|
11
12
|
import {PRODUCT, DISTRIBUTION, PRICE} from "../type/ObjectType.sol";
|
12
|
-
import {Amount} from "../type/Amount.sol";
|
13
13
|
import {IRegistry} from "../registry/IRegistry.sol";
|
14
14
|
|
15
15
|
import {IProductComponent} from "./IProductComponent.sol";
|
@@ -19,17 +19,16 @@ import {InstanceReader} from "../instance/InstanceReader.sol";
|
|
19
19
|
import {IComponents} from "../instance/module/IComponents.sol";
|
20
20
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
21
21
|
import {IBundle} from "../instance/module/IBundle.sol";
|
22
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
23
22
|
import {IDistribution} from "../instance/module/IDistribution.sol";
|
24
23
|
|
25
|
-
import {
|
24
|
+
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
26
25
|
|
27
26
|
import {IPricingService} from "./IPricingService.sol";
|
28
27
|
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
29
28
|
|
30
29
|
|
31
30
|
contract PricingService is
|
32
|
-
|
31
|
+
ComponentVerifyingService,
|
33
32
|
IPricingService
|
34
33
|
{
|
35
34
|
using UFixedLib for UFixed;
|
@@ -45,22 +44,18 @@ contract PricingService is
|
|
45
44
|
virtual override
|
46
45
|
initializer()
|
47
46
|
{
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
47
|
+
(
|
48
|
+
address registryAddress,,
|
49
|
+
//address managerAddress
|
50
|
+
address authority
|
51
|
+
) = abi.decode(data, (address, address, address));
|
52
52
|
|
53
|
-
initializeService(registryAddress,
|
53
|
+
initializeService(registryAddress, authority, owner);
|
54
54
|
registerInterface(type(IPricingService).interfaceId);
|
55
55
|
|
56
56
|
_distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
57
57
|
}
|
58
58
|
|
59
|
-
|
60
|
-
function getDomain() public pure override returns(ObjectType) {
|
61
|
-
return PRICE();
|
62
|
-
}
|
63
|
-
|
64
59
|
/// @dev calculates the premium amount for the specified attributes
|
65
60
|
/// also returns the various fee components involved with creating a policy
|
66
61
|
function calculatePremium(
|
@@ -85,14 +80,14 @@ contract PricingService is
|
|
85
80
|
{
|
86
81
|
// verify product
|
87
82
|
(
|
88
|
-
IRegistry.ObjectInfo memory
|
83
|
+
IRegistry.ObjectInfo memory registryInfo,
|
89
84
|
IInstance instance
|
90
|
-
) =
|
85
|
+
) = _getAndVerifyComponentInfo(productNftId, PRODUCT(), false);
|
91
86
|
|
92
87
|
reader = instance.getInstanceReader();
|
93
88
|
|
94
89
|
// calculate net premium
|
95
|
-
netPremiumAmount = IProductComponent(
|
90
|
+
netPremiumAmount = IProductComponent(registryInfo.objectAddress).calculateNetPremium(
|
96
91
|
sumInsuredAmount,
|
97
92
|
riskId,
|
98
93
|
lifetime,
|
@@ -102,46 +97,45 @@ contract PricingService is
|
|
102
97
|
|
103
98
|
{
|
104
99
|
// get configurations for all involed objects
|
105
|
-
|
106
|
-
|
107
|
-
bytes memory componentData = reader.getComponentInfo(productSetup.poolNftId).data;
|
108
|
-
IComponents.PoolInfo memory poolInfo = abi.decode(componentData, (IComponents.PoolInfo));
|
100
|
+
IComponents.ProductInfo memory productInfo = reader.getProductInfo(productNftId);
|
109
101
|
|
110
102
|
IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
111
|
-
if(bundleInfo.poolNftId !=
|
112
|
-
revert ErrorIPricingServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId,
|
103
|
+
if(bundleInfo.poolNftId != productInfo.poolNftId) {
|
104
|
+
revert ErrorIPricingServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, productInfo.poolNftId);
|
113
105
|
}
|
114
106
|
|
115
|
-
NftId distributionNftId = productSetup.distributionNftId;
|
116
|
-
ISetup.DistributionSetupInfo memory distSetup = reader.getDistributionSetupInfo(distributionNftId);
|
117
|
-
|
118
107
|
// calculate premium, order is important
|
119
108
|
premium = _getFixedFeeAmounts(
|
120
109
|
netPremiumAmount,
|
121
|
-
|
122
|
-
poolInfo,
|
123
|
-
distSetup,
|
110
|
+
productInfo,
|
124
111
|
bundleInfo
|
125
112
|
);
|
126
113
|
|
127
114
|
premium = _calculateVariableFeeAmounts(
|
128
115
|
premium,
|
129
|
-
|
130
|
-
poolInfo,
|
131
|
-
distSetup,
|
116
|
+
productInfo,
|
132
117
|
bundleInfo
|
133
118
|
);
|
134
119
|
|
135
120
|
premium = _calculateDistributionOwnerFeeAmount(
|
136
121
|
premium,
|
137
|
-
|
122
|
+
productInfo,
|
138
123
|
referralId,
|
139
|
-
distributionNftId,
|
140
124
|
reader
|
141
125
|
);
|
142
126
|
|
127
|
+
premium = _calculateTargetWalletAmounts(premium);
|
128
|
+
|
143
129
|
// sanity check to validate the fee calculation
|
144
|
-
if
|
130
|
+
if(AmountLib.toAmount(premium.premiumAmount) !=
|
131
|
+
premium.productFeeAmount
|
132
|
+
+ premium.distributionFeeAndCommissionAmount
|
133
|
+
+ premium.poolPremiumAndFeeAmount)
|
134
|
+
{
|
135
|
+
revert ErrorPricingServiceTargetWalletAmountsMismatch();
|
136
|
+
}
|
137
|
+
|
138
|
+
if (premium.distributionOwnerFeeFixAmount < productInfo.minDistributionOwnerFee.fixedFee) {
|
145
139
|
revert ErrorIPricingServiceFeeCalculationMismatch(
|
146
140
|
premium.distributionFeeFixAmount,
|
147
141
|
premium.distributionFeeVarAmount,
|
@@ -168,13 +162,11 @@ contract PricingService is
|
|
168
162
|
// internal functions
|
169
163
|
function _getFixedFeeAmounts(
|
170
164
|
Amount netPremiumAmount,
|
171
|
-
|
172
|
-
IComponents.PoolInfo memory poolInfo,
|
173
|
-
ISetup.DistributionSetupInfo memory distInfo,
|
165
|
+
IComponents.ProductInfo memory productInfo,
|
174
166
|
IBundle.BundleInfo memory bundleInfo
|
175
167
|
)
|
176
168
|
internal
|
177
|
-
|
169
|
+
pure
|
178
170
|
returns (
|
179
171
|
IPolicy.Premium memory premium
|
180
172
|
)
|
@@ -187,7 +179,7 @@ contract PricingService is
|
|
187
179
|
premium.productFeeFixAmount = t;
|
188
180
|
premium.fullPremiumAmount += t;
|
189
181
|
|
190
|
-
t =
|
182
|
+
t = productInfo.poolFee.fixedFee;
|
191
183
|
premium.poolFeeFixAmount = t;
|
192
184
|
premium.fullPremiumAmount += t;
|
193
185
|
|
@@ -195,20 +187,18 @@ contract PricingService is
|
|
195
187
|
premium.bundleFeeFixAmount = t;
|
196
188
|
premium.fullPremiumAmount += t;
|
197
189
|
|
198
|
-
t =
|
190
|
+
t = productInfo.distributionFee.fixedFee;
|
199
191
|
premium.distributionFeeFixAmount = t;
|
200
192
|
premium.fullPremiumAmount += t;
|
201
193
|
}
|
202
194
|
|
203
195
|
function _calculateVariableFeeAmounts(
|
204
196
|
IPolicy.Premium memory premium,
|
205
|
-
|
206
|
-
IComponents.PoolInfo memory poolInfo,
|
207
|
-
ISetup.DistributionSetupInfo memory distInfo,
|
197
|
+
IComponents.ProductInfo memory productInfo,
|
208
198
|
IBundle.BundleInfo memory bundleInfo
|
209
199
|
)
|
210
200
|
internal
|
211
|
-
|
201
|
+
pure
|
212
202
|
returns (
|
213
203
|
IPolicy.Premium memory intermadiatePremium
|
214
204
|
)
|
@@ -219,7 +209,7 @@ contract PricingService is
|
|
219
209
|
premium.productFeeVarAmount = t;
|
220
210
|
premium.fullPremiumAmount += t;
|
221
211
|
|
222
|
-
t = (netPremiumAmount *
|
212
|
+
t = (netPremiumAmount * productInfo.poolFee.fractionalFee).toInt();
|
223
213
|
premium.poolFeeVarAmount = t;
|
224
214
|
premium.fullPremiumAmount += t;
|
225
215
|
|
@@ -227,7 +217,7 @@ contract PricingService is
|
|
227
217
|
premium.bundleFeeVarAmount = t;
|
228
218
|
premium.fullPremiumAmount += t;
|
229
219
|
|
230
|
-
t = (netPremiumAmount *
|
220
|
+
t = (netPremiumAmount * productInfo.distributionFee.fractionalFee).toInt();
|
231
221
|
premium.distributionFeeVarAmount = t;
|
232
222
|
premium.fullPremiumAmount += t;
|
233
223
|
|
@@ -236,24 +226,25 @@ contract PricingService is
|
|
236
226
|
|
237
227
|
function _calculateDistributionOwnerFeeAmount(
|
238
228
|
IPolicy.Premium memory premium,
|
239
|
-
|
229
|
+
IComponents.ProductInfo memory productInfo,
|
230
|
+
// ISetup.DistributionSetupInfo memory distInfo,
|
240
231
|
ReferralId referralId,
|
241
|
-
NftId distributionNftId,
|
242
232
|
InstanceReader reader
|
243
233
|
)
|
244
234
|
internal
|
245
235
|
view
|
246
236
|
returns (IPolicy.Premium memory finalPremium)
|
247
237
|
{
|
238
|
+
|
248
239
|
// if the referral is not valid, then the distribution owner gets everything
|
249
|
-
if (! _distributionService.referralIsValid(distributionNftId, referralId)) {
|
240
|
+
if (! _distributionService.referralIsValid(productInfo.distributionNftId, referralId)) {
|
250
241
|
premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
|
251
242
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
|
252
243
|
premium.premiumAmount = premium.fullPremiumAmount;
|
253
244
|
return premium;
|
254
245
|
}
|
255
246
|
|
256
|
-
Fee memory minDistributionOwnerFee =
|
247
|
+
Fee memory minDistributionOwnerFee = productInfo.minDistributionOwnerFee;
|
257
248
|
|
258
249
|
// if the referral is valid, the the commission and discount are calculated based in the full premium
|
259
250
|
// the remaing amount goes to the distribution owner
|
@@ -265,11 +256,45 @@ contract PricingService is
|
|
265
256
|
uint256 commissionAmount = UFixedLib.toUFixed(premium.netPremiumAmount).mul(distributorTypeInfo.commissionPercentage).toInt();
|
266
257
|
premium.commissionAmount = commissionAmount;
|
267
258
|
premium.discountAmount = UFixedLib.toUFixed(premium.fullPremiumAmount).mul(referralInfo.discountPercentage).toInt();
|
268
|
-
premium.distributionOwnerFeeFixAmount =
|
259
|
+
premium.distributionOwnerFeeFixAmount = minDistributionOwnerFee.fixedFee;
|
269
260
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount - commissionAmount - premium.discountAmount;
|
270
261
|
premium.premiumAmount = premium.fullPremiumAmount - premium.discountAmount;
|
271
262
|
}
|
272
263
|
|
273
264
|
return premium;
|
274
265
|
}
|
266
|
+
|
267
|
+
|
268
|
+
function _calculateTargetWalletAmounts(
|
269
|
+
IPolicy.Premium memory premium
|
270
|
+
)
|
271
|
+
internal
|
272
|
+
virtual
|
273
|
+
view
|
274
|
+
returns (
|
275
|
+
IPolicy.Premium memory premiumWithTargetWalletAmounts
|
276
|
+
)
|
277
|
+
{
|
278
|
+
// fees for product owner
|
279
|
+
premium.productFeeAmount = AmountLib.toAmount(
|
280
|
+
premium.productFeeFixAmount + premium.productFeeVarAmount);
|
281
|
+
|
282
|
+
// fees for distribution owner + distributor commission
|
283
|
+
premium.distributionFeeAndCommissionAmount = AmountLib.toAmount(
|
284
|
+
premium.distributionFeeFixAmount + premium.distributionOwnerFeeVarAmount
|
285
|
+
+ premium.commissionAmount);
|
286
|
+
|
287
|
+
// net premium + fees for pool owner + bundle owner
|
288
|
+
premium.poolPremiumAndFeeAmount = AmountLib.toAmount(
|
289
|
+
premium.netPremiumAmount
|
290
|
+
+ premium.poolFeeFixAmount + premium.poolFeeVarAmount
|
291
|
+
+ premium.bundleFeeFixAmount + premium.bundleFeeVarAmount);
|
292
|
+
|
293
|
+
premiumWithTargetWalletAmounts = premium;
|
294
|
+
}
|
295
|
+
|
296
|
+
|
297
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
298
|
+
return PRICE();
|
299
|
+
}
|
275
300
|
}
|
@@ -12,31 +12,22 @@ contract PricingServiceManager is ProxyManager {
|
|
12
12
|
|
13
13
|
PricingService private _pricingService;
|
14
14
|
|
15
|
-
/// @dev initializes proxy manager with
|
15
|
+
/// @dev initializes proxy manager with pricing service implementation and deploys instance
|
16
16
|
constructor(
|
17
|
-
address
|
17
|
+
address authority,
|
18
|
+
address registryAddress,
|
19
|
+
bytes32 salt
|
18
20
|
)
|
19
21
|
ProxyManager(registryAddress)
|
20
22
|
{
|
21
|
-
PricingService pricingSrv = new PricingService();
|
22
|
-
bytes memory data = abi.encode(registryAddress, address(this));
|
23
|
-
IVersionable versionable =
|
23
|
+
PricingService pricingSrv = new PricingService{salt: salt}();
|
24
|
+
bytes memory data = abi.encode(registryAddress, address(this), authority);
|
25
|
+
IVersionable versionable = deployDetermenistic(
|
24
26
|
address(pricingSrv),
|
25
|
-
data
|
27
|
+
data,
|
28
|
+
salt);
|
26
29
|
|
27
30
|
_pricingService = PricingService(address(versionable));
|
28
|
-
|
29
|
-
// TODO `thi` must have a role or own nft to register service
|
30
|
-
//Registry registry = Registry(registryAddress);
|
31
|
-
//address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _distributionService.getMajorVersion());
|
32
|
-
//RegistryService registryService = RegistryService(registryServiceAddress);
|
33
|
-
//registryService.registerService(_distributionService);
|
34
|
-
|
35
|
-
// TODO no nft to link yet
|
36
|
-
// link ownership of instance service manager ot nft owner of instance service
|
37
|
-
//_linkToNftOwnable(
|
38
|
-
// address(registryAddress),
|
39
|
-
// address(_distributionService));
|
40
31
|
}
|
41
32
|
|
42
33
|
//--- view functions ----------------------------------------------------//
|
@@ -1,14 +1,16 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
2
|
+
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
5
|
|
6
6
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
7
7
|
import {ClaimId} from "../type/ClaimId.sol";
|
8
|
-
import {
|
9
|
-
import {Fee} from "../type/Fee.sol";
|
8
|
+
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
9
|
+
import {Fee, FeeLib} from "../type/Fee.sol";
|
10
10
|
import {IRisk} from "../instance/module/IRisk.sol";
|
11
11
|
import {IApplicationService} from "./IApplicationService.sol";
|
12
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
13
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
12
14
|
import {IPolicyService} from "./IPolicyService.sol";
|
13
15
|
import {IProductService} from "./IProductService.sol";
|
14
16
|
import {IClaimService} from "./IClaimService.sol";
|
@@ -16,7 +18,7 @@ import {IPricingService} from "./IPricingService.sol";
|
|
16
18
|
import {IProductComponent} from "./IProductComponent.sol";
|
17
19
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
18
20
|
import {PayoutId} from "../type/PayoutId.sol";
|
19
|
-
import {PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
21
|
+
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
20
22
|
import {ReferralId} from "../type/Referral.sol";
|
21
23
|
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
22
24
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -27,13 +29,12 @@ import {TokenHandler} from "../shared/TokenHandler.sol";
|
|
27
29
|
|
28
30
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
29
31
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
30
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
31
32
|
import {IComponents} from "../instance/module/IComponents.sol";
|
32
33
|
import {Pool} from "../pool/Pool.sol";
|
33
34
|
import {Distribution} from "../distribution/Distribution.sol";
|
34
35
|
|
35
36
|
abstract contract Product is
|
36
|
-
|
37
|
+
InstanceLinkedComponent,
|
37
38
|
IProductComponent
|
38
39
|
{
|
39
40
|
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.Product")) - 1)) & ~bytes32(uint256(0xff));
|
@@ -45,33 +46,123 @@ abstract contract Product is
|
|
45
46
|
IPolicyService _policyService;
|
46
47
|
IClaimService _claimService;
|
47
48
|
IPricingService _pricingService;
|
48
|
-
|
49
|
-
Distribution _distribution;
|
50
|
-
Fee _initialProductFee;
|
51
|
-
Fee _initialProcessingFee;
|
52
|
-
TokenHandler _tokenHandler;
|
49
|
+
IComponentService _componentService;
|
53
50
|
NftId _poolNftId;
|
54
51
|
NftId _distributionNftId;
|
52
|
+
Pool _pool;
|
53
|
+
Distribution _distribution;
|
55
54
|
}
|
56
55
|
|
57
|
-
|
56
|
+
|
57
|
+
function calculatePremium(
|
58
|
+
Amount sumInsuredAmount,
|
59
|
+
RiskId riskId,
|
60
|
+
Seconds lifetime,
|
61
|
+
bytes memory applicationData,
|
62
|
+
NftId bundleNftId,
|
63
|
+
ReferralId referralId
|
64
|
+
)
|
65
|
+
external
|
66
|
+
view
|
67
|
+
override
|
68
|
+
returns (Amount premiumAmount)
|
69
|
+
{
|
70
|
+
IPolicy.Premium memory premium = _getProductStorage()._pricingService.calculatePremium(
|
71
|
+
getNftId(),
|
72
|
+
riskId,
|
73
|
+
sumInsuredAmount,
|
74
|
+
lifetime,
|
75
|
+
applicationData,
|
76
|
+
bundleNftId,
|
77
|
+
referralId
|
78
|
+
);
|
79
|
+
|
80
|
+
return AmountLib.toAmount(premium.premiumAmount);
|
81
|
+
}
|
82
|
+
|
83
|
+
function calculateNetPremium(
|
84
|
+
Amount sumInsuredAmount,
|
85
|
+
RiskId riskId,
|
86
|
+
Seconds lifetime,
|
87
|
+
bytes memory applicationData
|
88
|
+
)
|
89
|
+
external
|
90
|
+
view
|
91
|
+
virtual override
|
92
|
+
returns (Amount netPremiumAmount)
|
93
|
+
{
|
94
|
+
// default 10% of sum insured
|
95
|
+
return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
|
96
|
+
}
|
97
|
+
|
98
|
+
|
99
|
+
function register()
|
100
|
+
external
|
101
|
+
virtual
|
102
|
+
onlyOwner()
|
103
|
+
{
|
104
|
+
_getProductStorage()._componentService.registerProduct();
|
105
|
+
}
|
106
|
+
|
107
|
+
|
108
|
+
function getInitialProductInfo()
|
109
|
+
public
|
110
|
+
virtual
|
111
|
+
view
|
112
|
+
returns (IComponents.ProductInfo memory poolInfo)
|
113
|
+
{
|
114
|
+
ProductStorage storage $ = _getProductStorage();
|
115
|
+
|
116
|
+
return IComponents.ProductInfo({
|
117
|
+
distributionNftId: $._distributionNftId,
|
118
|
+
poolNftId: $._poolNftId,
|
119
|
+
productFee: FeeLib.zero(),
|
120
|
+
processingFee: FeeLib.zero(),
|
121
|
+
distributionFee: FeeLib.zero(),
|
122
|
+
minDistributionOwnerFee: FeeLib.zero(),
|
123
|
+
poolFee: FeeLib.zero(),
|
124
|
+
stakingFee: FeeLib.zero(),
|
125
|
+
performanceFee: FeeLib.zero()
|
126
|
+
});
|
127
|
+
}
|
128
|
+
|
129
|
+
function getPoolNftId() external view override returns (NftId poolNftId) {
|
130
|
+
return getRegistry().getNftId(address(_getProductStorage()._pool));
|
131
|
+
}
|
132
|
+
|
133
|
+
function getDistributionNftId() external view override returns (NftId distributionNftId) {
|
134
|
+
return getRegistry().getNftId(address(_getProductStorage()._distribution));
|
135
|
+
}
|
136
|
+
|
137
|
+
|
138
|
+
function _initializeProduct(
|
58
139
|
address registry,
|
59
140
|
NftId instanceNftId,
|
141
|
+
IAuthorization authorization,
|
142
|
+
address initialOwner,
|
60
143
|
string memory name,
|
61
144
|
address token,
|
62
145
|
bool isInterceptor,
|
63
146
|
address pool,
|
64
147
|
address distribution,
|
65
|
-
|
66
|
-
|
67
|
-
address initialOwner,
|
68
|
-
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
148
|
+
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
149
|
+
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
69
150
|
)
|
70
|
-
|
151
|
+
internal
|
71
152
|
virtual
|
72
153
|
onlyInitializing()
|
73
154
|
{
|
74
|
-
|
155
|
+
_initializeInstanceLinkedComponent(
|
156
|
+
registry,
|
157
|
+
instanceNftId,
|
158
|
+
name,
|
159
|
+
token,
|
160
|
+
PRODUCT(),
|
161
|
+
authorization,
|
162
|
+
isInterceptor,
|
163
|
+
initialOwner,
|
164
|
+
registryData,
|
165
|
+
componentData);
|
75
166
|
|
76
167
|
ProductStorage storage $ = _getProductStorage();
|
77
168
|
// TODO add validation
|
@@ -81,30 +172,27 @@ abstract contract Product is
|
|
81
172
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
82
173
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
83
174
|
$._pricingService = IPricingService(_getServiceAddress(PRICE()));
|
175
|
+
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
84
176
|
$._pool = Pool(pool);
|
85
177
|
$._distribution = Distribution(distribution);
|
86
|
-
$._initialProductFee = productFee;
|
87
|
-
$._initialProcessingFee = processingFee;
|
88
|
-
$._tokenHandler = new TokenHandler(token);
|
89
178
|
$._poolNftId = getRegistry().getNftId(pool);
|
90
179
|
$._distributionNftId = getRegistry().getNftId(distribution);
|
91
180
|
|
92
181
|
registerInterface(type(IProductComponent).interfaceId);
|
93
182
|
}
|
94
183
|
|
95
|
-
|
96
|
-
function
|
184
|
+
|
185
|
+
function _setFees(
|
97
186
|
Fee memory productFee,
|
98
187
|
Fee memory processingFee
|
99
188
|
)
|
100
|
-
|
101
|
-
|
102
|
-
restricted()
|
103
|
-
override
|
189
|
+
internal
|
190
|
+
virtual
|
104
191
|
{
|
105
|
-
|
192
|
+
_getProductStorage()._componentService.setProductFees(productFee, processingFee);
|
106
193
|
}
|
107
194
|
|
195
|
+
|
108
196
|
function _createRisk(
|
109
197
|
RiskId id,
|
110
198
|
bytes memory data
|
@@ -135,10 +223,12 @@ abstract contract Product is
|
|
135
223
|
);
|
136
224
|
}
|
137
225
|
|
226
|
+
|
138
227
|
function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
|
139
228
|
return getInstance().getInstanceReader().getRiskInfo(id);
|
140
229
|
}
|
141
230
|
|
231
|
+
|
142
232
|
function _createApplication(
|
143
233
|
address applicationOwner,
|
144
234
|
RiskId riskId,
|
@@ -223,25 +313,29 @@ abstract contract Product is
|
|
223
313
|
function _confirmClaim(
|
224
314
|
NftId policyNftId,
|
225
315
|
ClaimId claimId,
|
226
|
-
Amount confirmedAmount
|
316
|
+
Amount confirmedAmount,
|
317
|
+
bytes memory data
|
227
318
|
)
|
228
319
|
internal
|
229
320
|
{
|
230
321
|
_getProductStorage()._claimService.confirm(
|
231
322
|
policyNftId,
|
232
323
|
claimId,
|
233
|
-
confirmedAmount
|
324
|
+
confirmedAmount,
|
325
|
+
data);
|
234
326
|
}
|
235
327
|
|
236
328
|
function _declineClaim(
|
237
329
|
NftId policyNftId,
|
238
|
-
ClaimId claimId
|
330
|
+
ClaimId claimId,
|
331
|
+
bytes memory data
|
239
332
|
)
|
240
333
|
internal
|
241
334
|
{
|
242
335
|
_getProductStorage()._claimService.decline(
|
243
336
|
policyNftId,
|
244
|
-
claimId
|
337
|
+
claimId,
|
338
|
+
data);
|
245
339
|
}
|
246
340
|
|
247
341
|
function _closeClaim(
|
@@ -282,87 +376,10 @@ abstract contract Product is
|
|
282
376
|
payoutId);
|
283
377
|
}
|
284
378
|
|
285
|
-
function calculatePremium(
|
286
|
-
Amount sumInsuredAmount,
|
287
|
-
RiskId riskId,
|
288
|
-
Seconds lifetime,
|
289
|
-
bytes memory applicationData,
|
290
|
-
NftId bundleNftId,
|
291
|
-
ReferralId referralId
|
292
|
-
)
|
293
|
-
external
|
294
|
-
view
|
295
|
-
override
|
296
|
-
returns (Amount premiumAmount)
|
297
|
-
{
|
298
|
-
IPolicy.Premium memory premium = _getProductStorage()._pricingService.calculatePremium(
|
299
|
-
getNftId(),
|
300
|
-
riskId,
|
301
|
-
sumInsuredAmount,
|
302
|
-
lifetime,
|
303
|
-
applicationData,
|
304
|
-
bundleNftId,
|
305
|
-
referralId
|
306
|
-
);
|
307
|
-
|
308
|
-
return AmountLib.toAmount(premium.premiumAmount);
|
309
|
-
}
|
310
|
-
|
311
|
-
function calculateNetPremium(
|
312
|
-
Amount sumInsuredAmount,
|
313
|
-
RiskId riskId,
|
314
|
-
Seconds lifetime,
|
315
|
-
bytes memory applicationData
|
316
|
-
)
|
317
|
-
external
|
318
|
-
view
|
319
|
-
virtual override
|
320
|
-
returns (Amount netPremiumAmount)
|
321
|
-
{
|
322
|
-
// default 10% of sum insured
|
323
|
-
return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
|
324
|
-
}
|
325
|
-
|
326
379
|
function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
|
327
380
|
return RiskIdLib.toRiskId(riskName);
|
328
381
|
}
|
329
382
|
|
330
|
-
function getPoolNftId() external view override returns (NftId poolNftId) {
|
331
|
-
return getRegistry().getNftId(address(_getProductStorage()._pool));
|
332
|
-
}
|
333
|
-
|
334
|
-
function getDistributionNftId() external view override returns (NftId distributionNftId) {
|
335
|
-
return getRegistry().getNftId(address(_getProductStorage()._distribution));
|
336
|
-
}
|
337
|
-
|
338
|
-
function getSetupInfo() public view returns (ISetup.ProductSetupInfo memory setupInfo) {
|
339
|
-
InstanceReader reader = getInstance().getInstanceReader();
|
340
|
-
setupInfo = reader.getProductSetupInfo(getNftId());
|
341
|
-
|
342
|
-
// fallback to initial setup info (wallet is always != address(0))
|
343
|
-
if(setupInfo.wallet == address(0)) {
|
344
|
-
setupInfo = _getInitialSetupInfo();
|
345
|
-
}
|
346
|
-
}
|
347
|
-
|
348
|
-
function _getInitialSetupInfo() internal view returns (ISetup.ProductSetupInfo memory setupInfo) {
|
349
|
-
ProductStorage storage $ = _getProductStorage();
|
350
|
-
|
351
|
-
ISetup.DistributionSetupInfo memory distributionSetupInfo = $._distribution.getSetupInfo();
|
352
|
-
IComponents.PoolInfo memory poolInfo = $._pool.getPoolInfo();
|
353
|
-
|
354
|
-
return ISetup.ProductSetupInfo(
|
355
|
-
getToken(),
|
356
|
-
$._tokenHandler,
|
357
|
-
$._distributionNftId,
|
358
|
-
$._poolNftId,
|
359
|
-
$._initialProductFee,
|
360
|
-
$._initialProcessingFee,
|
361
|
-
false,
|
362
|
-
getWallet()
|
363
|
-
);
|
364
|
-
}
|
365
|
-
|
366
383
|
function _getProductStorage() private pure returns (ProductStorage storage $) {
|
367
384
|
assembly {
|
368
385
|
$.slot := PRODUCT_STORAGE_LOCATION_V1
|