@etherisc/gif-next 0.0.2-309f3f8-751 → 0.0.2-30a4eae-489
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 +46 -8
- 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 +203 -77
- 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 +200 -16
- 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 +142 -44
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +107 -15
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +165 -391
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +206 -27
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +103 -321
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +321 -369
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +129 -119
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +115 -143
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +196 -133
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1475 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2040 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +589 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1479 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1195 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1655 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2426 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +589 -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 +158 -57
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +194 -154
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +446 -143
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +150 -90
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1002 -303
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +131 -266
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +102 -92
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +651 -514
- 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 +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +114 -340
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +180 -29
- 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 +102 -130
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +90 -308
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +119 -387
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +206 -27
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +275 -314
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +122 -108
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +172 -97
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +124 -219
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +464 -312
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +109 -394
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +653 -532
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +163 -97
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +134 -184
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +91 -93
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +243 -400
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +206 -27
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +415 -234
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +140 -114
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +94 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +306 -130
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +136 -83
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +235 -202
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +57 -4
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +369 -336
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +129 -103
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +227 -314
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -122
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +241 -398
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +637 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +724 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +334 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
- 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/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +540 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +349 -167
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +47 -6
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +420 -246
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- 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 +76 -265
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +501 -626
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +136 -128
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +541 -0
- 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 +89 -88
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +446 -276
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +102 -130
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
- 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 +55 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -22
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +89 -307
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -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 +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +137 -139
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +119 -16
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +81 -106
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +216 -375
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +46 -5
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +126 -95
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -63
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +172 -164
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +103 -85
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +149 -108
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +55 -24
- 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 +33 -9
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- 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 +19 -19
- 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 +118 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- 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 +16 -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 +71 -70
- 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 +232 -134
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +321 -202
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +17 -10
- package/contracts/authorization/IAuthorization.sol +27 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +15 -12
- package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
- package/contracts/distribution/Distribution.sol +42 -48
- package/contracts/distribution/DistributionService.sol +125 -104
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +28 -24
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +438 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +106 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +377 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +21 -37
- package/contracts/instance/IInstanceService.sol +9 -29
- package/contracts/instance/Instance.sol +59 -66
- package/contracts/instance/InstanceAdmin.sol +256 -85
- package/contracts/instance/InstanceAuthorizationV3.sol +56 -47
- package/contracts/instance/InstanceReader.sol +275 -43
- package/contracts/instance/InstanceService.sol +125 -164
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +23 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +11 -4
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +14 -14
- package/contracts/instance/module/IDistribution.sol +2 -1
- package/contracts/instance/module/IPolicy.sol +26 -25
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +7 -17
- package/contracts/oracle/OracleService.sol +113 -81
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +38 -27
- package/contracts/pool/BasicPoolAuthorization.sol +32 -11
- package/contracts/pool/BundleService.sol +179 -125
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +29 -34
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +90 -75
- package/contracts/pool/Pool.sol +145 -128
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +540 -217
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +72 -43
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +11 -12
- package/contracts/product/BasicProductAuthorization.sol +24 -11
- package/contracts/product/ClaimService.sol +368 -153
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +6 -2
- package/contracts/product/IClaimService.sol +44 -8
- package/contracts/product/IPolicyService.sol +53 -42
- package/contracts/product/IPricingService.sol +10 -10
- package/contracts/product/IProductComponent.sol +27 -5
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +456 -303
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +66 -62
- package/contracts/product/PricingServiceManager.sol +4 -4
- package/contracts/product/Product.sol +158 -91
- package/contracts/product/RiskService.sol +145 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +60 -28
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +357 -203
- package/contracts/registry/RegistryAdmin.sol +171 -182
- package/contracts/registry/RegistryService.sol +37 -48
- package/contracts/registry/RegistryServiceManager.sol +3 -3
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +258 -232
- package/contracts/registry/ServiceAuthorizationV3.sol +99 -52
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +74 -127
- package/contracts/shared/ComponentService.sol +426 -385
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- package/contracts/shared/ContractLib.sol +253 -0
- package/contracts/shared/IComponent.sol +8 -17
- package/contracts/shared/IComponentService.sol +41 -37
- package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +2 -2
- package/contracts/shared/InstanceLinkedComponent.sol +73 -48
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +29 -9
- package/contracts/shared/PolicyHolder.sol +15 -52
- package/contracts/shared/Registerable.sol +55 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +15 -32
- package/contracts/shared/TokenHandler.sol +309 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +8 -11
- package/contracts/staking/IStakingService.sol +11 -4
- package/contracts/staking/StakeManagerLib.sol +85 -41
- package/contracts/staking/Staking.sol +81 -67
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +13 -21
- package/contracts/staking/StakingService.sol +75 -37
- package/contracts/staking/StakingServiceManager.sol +6 -5
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +52 -20
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +35 -4
- package/contracts/type/RoleId.sol +23 -15
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +6 -5
- package/contracts/type/UFixed.sol +13 -119
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +4 -3
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/ProductService.sol +0 -99
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/shared/InitializableCustom.sol +0 -177
|
@@ -4,21 +4,15 @@ pragma solidity ^0.8.20;
|
|
|
4
4
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
|
5
5
|
|
|
6
6
|
import {Amount} from "../type/Amount.sol";
|
|
7
|
-
import {ChainNft} from "../registry/ChainNft.sol";
|
|
8
|
-
import {IPoolService} from "../pool/IPoolService.sol";
|
|
9
7
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
|
10
8
|
import {IRegistry} from "../registry/IRegistry.sol";
|
|
11
9
|
import {RegistryService} from "../registry/RegistryService.sol";
|
|
12
10
|
import {IStaking} from "./IStaking.sol";
|
|
13
11
|
import {IStakingService} from "./IStakingService.sol";
|
|
14
12
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
|
15
|
-
import {ObjectType, INSTANCE,
|
|
13
|
+
import {ObjectType, INSTANCE, REGISTRY, STAKE, STAKING} from "../type/ObjectType.sol";
|
|
16
14
|
import {Seconds} from "../type/Seconds.sol";
|
|
17
15
|
import {Service} from "../shared/Service.sol";
|
|
18
|
-
import {StakeManagerLib} from "./StakeManagerLib.sol";
|
|
19
|
-
import {StakingReader} from "./StakingReader.sol";
|
|
20
|
-
import {TargetManagerLib} from "./TargetManagerLib.sol";
|
|
21
|
-
import {Timestamp} from "../type/Timestamp.sol";
|
|
22
16
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
|
23
17
|
import {UFixed} from "../type/UFixed.sol";
|
|
24
18
|
|
|
@@ -38,14 +32,28 @@ contract StakingService is
|
|
|
38
32
|
TokenHandler _tokenHandler;
|
|
39
33
|
}
|
|
40
34
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
35
|
+
|
|
36
|
+
modifier onlyStaking() {
|
|
37
|
+
if (msg.sender != address(_getStakingServiceStorage()._staking)) {
|
|
38
|
+
revert ErrorStakingServiceNotStaking(msg.sender);
|
|
44
39
|
}
|
|
45
40
|
_;
|
|
46
41
|
}
|
|
47
42
|
|
|
48
43
|
|
|
44
|
+
function approveTokenHandler(
|
|
45
|
+
IERC20Metadata token,
|
|
46
|
+
Amount amount
|
|
47
|
+
)
|
|
48
|
+
external
|
|
49
|
+
virtual
|
|
50
|
+
onlyStaking()
|
|
51
|
+
{
|
|
52
|
+
_getStakingServiceStorage()._tokenHandler.approve(
|
|
53
|
+
token, amount);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
|
|
49
57
|
function createInstanceTarget(
|
|
50
58
|
NftId targetNftId,
|
|
51
59
|
Seconds initialLockingPeriod,
|
|
@@ -72,6 +80,7 @@ contract StakingService is
|
|
|
72
80
|
virtual
|
|
73
81
|
restricted()
|
|
74
82
|
{
|
|
83
|
+
_checkNftType(instanceNftId, INSTANCE());
|
|
75
84
|
_getStakingServiceStorage()._staking.setLockingPeriod(
|
|
76
85
|
instanceNftId,
|
|
77
86
|
lockingPeriod);
|
|
@@ -83,6 +92,7 @@ contract StakingService is
|
|
|
83
92
|
virtual
|
|
84
93
|
restricted()
|
|
85
94
|
{
|
|
95
|
+
_checkNftType(instanceNftId, INSTANCE());
|
|
86
96
|
_getStakingServiceStorage()._staking.setRewardRate(
|
|
87
97
|
instanceNftId,
|
|
88
98
|
rewardRate);
|
|
@@ -95,6 +105,7 @@ contract StakingService is
|
|
|
95
105
|
restricted()
|
|
96
106
|
returns (Amount newBalance)
|
|
97
107
|
{
|
|
108
|
+
_checkNftType(instanceNftId, INSTANCE());
|
|
98
109
|
return _refillRewardReserves(instanceNftId, rewardProvider, dipAmount);
|
|
99
110
|
}
|
|
100
111
|
|
|
@@ -116,17 +127,17 @@ contract StakingService is
|
|
|
116
127
|
restricted()
|
|
117
128
|
returns (Amount newBalance)
|
|
118
129
|
{
|
|
130
|
+
_checkNftType(instanceNftId, INSTANCE());
|
|
119
131
|
// update reward reserve book keeping
|
|
120
132
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
|
121
133
|
newBalance = $._staking.withdrawRewardReserves(instanceNftId, dipAmount);
|
|
122
134
|
|
|
123
135
|
// transfer withdrawal amount to target owner
|
|
124
136
|
address instanceOwner = getRegistry().ownerOf(instanceNftId);
|
|
125
|
-
|
|
137
|
+
emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
|
|
138
|
+
$._tokenHandler.pushToken(
|
|
126
139
|
instanceOwner,
|
|
127
140
|
dipAmount);
|
|
128
|
-
|
|
129
|
-
emit LogStakingServiceRewardReservesDecreased(instanceNftId, instanceOwner, dipAmount, newBalance);
|
|
130
141
|
}
|
|
131
142
|
|
|
132
143
|
|
|
@@ -169,12 +180,12 @@ contract StakingService is
|
|
|
169
180
|
targetNftId,
|
|
170
181
|
dipAmount);
|
|
171
182
|
|
|
183
|
+
emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
|
|
184
|
+
|
|
172
185
|
// collect staked dip by staking
|
|
173
|
-
$.
|
|
174
|
-
stakeOwner,
|
|
186
|
+
$._tokenHandler.pullToken(
|
|
187
|
+
stakeOwner,
|
|
175
188
|
dipAmount);
|
|
176
|
-
|
|
177
|
-
emit LogStakingServiceStakeCreated(stakeNftId, targetNftId, stakeOwner, dipAmount);
|
|
178
189
|
}
|
|
179
190
|
|
|
180
191
|
|
|
@@ -187,6 +198,8 @@ contract StakingService is
|
|
|
187
198
|
restricted()
|
|
188
199
|
onlyNftOwner(stakeNftId)
|
|
189
200
|
{
|
|
201
|
+
_checkNftType(stakeNftId, STAKE());
|
|
202
|
+
|
|
190
203
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
|
191
204
|
address stakeOwner = msg.sender;
|
|
192
205
|
|
|
@@ -197,12 +210,11 @@ contract StakingService is
|
|
|
197
210
|
|
|
198
211
|
// collect staked dip by staking
|
|
199
212
|
if (dipAmount.gtz()) {
|
|
200
|
-
|
|
213
|
+
emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
|
|
214
|
+
$._tokenHandler.pullToken(
|
|
201
215
|
stakeOwner,
|
|
202
216
|
dipAmount);
|
|
203
217
|
}
|
|
204
|
-
|
|
205
|
-
emit LogStakingServiceStakeIncreased(stakeNftId, stakeOwner, dipAmount, stakeBalance);
|
|
206
218
|
}
|
|
207
219
|
|
|
208
220
|
|
|
@@ -215,11 +227,32 @@ contract StakingService is
|
|
|
215
227
|
restricted()
|
|
216
228
|
onlyNftOwner(stakeNftId)
|
|
217
229
|
returns (
|
|
218
|
-
NftId newStakeNftId
|
|
230
|
+
NftId newStakeNftId,
|
|
231
|
+
Amount newStakeBalance
|
|
219
232
|
)
|
|
220
233
|
{
|
|
234
|
+
_checkNftType(stakeNftId, STAKE());
|
|
235
|
+
|
|
221
236
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
|
222
|
-
|
|
237
|
+
address stakeOwner = msg.sender;
|
|
238
|
+
|
|
239
|
+
// register new stake object with registry
|
|
240
|
+
newStakeNftId = $._registryService.registerStake(
|
|
241
|
+
IRegistry.ObjectInfo({
|
|
242
|
+
nftId: NftIdLib.zero(),
|
|
243
|
+
parentNftId: newTargetNftId,
|
|
244
|
+
objectType: STAKE(),
|
|
245
|
+
isInterceptor: false,
|
|
246
|
+
objectAddress: address(0),
|
|
247
|
+
initialOwner: stakeOwner,
|
|
248
|
+
data: ""
|
|
249
|
+
}));
|
|
250
|
+
|
|
251
|
+
newStakeBalance = $._staking.restake(
|
|
252
|
+
stakeNftId,
|
|
253
|
+
newStakeNftId);
|
|
254
|
+
|
|
255
|
+
emit LogStakingServiceStakeRestaked(stakeOwner, stakeNftId, newStakeNftId, newTargetNftId, newStakeBalance);
|
|
223
256
|
}
|
|
224
257
|
|
|
225
258
|
|
|
@@ -230,6 +263,8 @@ contract StakingService is
|
|
|
230
263
|
virtual
|
|
231
264
|
restricted()
|
|
232
265
|
{
|
|
266
|
+
_checkNftType(stakeNftId, STAKE());
|
|
267
|
+
|
|
233
268
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
|
234
269
|
$._staking.updateRewards(stakeNftId);
|
|
235
270
|
|
|
@@ -243,15 +278,16 @@ contract StakingService is
|
|
|
243
278
|
restricted()
|
|
244
279
|
onlyNftOwner(stakeNftId)
|
|
245
280
|
{
|
|
281
|
+
_checkNftType(stakeNftId, STAKE());
|
|
282
|
+
|
|
246
283
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
|
247
284
|
address stakeOwner = msg.sender;
|
|
248
285
|
|
|
249
286
|
Amount rewardsClaimedAmount = $._staking.claimRewards(stakeNftId);
|
|
250
|
-
|
|
287
|
+
emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
|
|
288
|
+
$._tokenHandler.pushToken(
|
|
251
289
|
stakeOwner,
|
|
252
290
|
rewardsClaimedAmount);
|
|
253
|
-
|
|
254
|
-
emit LogStakingServiceRewardsClaimed(stakeNftId, stakeOwner, rewardsClaimedAmount);
|
|
255
291
|
}
|
|
256
292
|
|
|
257
293
|
|
|
@@ -261,6 +297,8 @@ contract StakingService is
|
|
|
261
297
|
restricted()
|
|
262
298
|
onlyNftOwner(stakeNftId)
|
|
263
299
|
{
|
|
300
|
+
_checkNftType(stakeNftId, STAKE());
|
|
301
|
+
|
|
264
302
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
|
265
303
|
address stakeOwner = msg.sender;
|
|
266
304
|
|
|
@@ -270,11 +308,11 @@ contract StakingService is
|
|
|
270
308
|
) = $._staking.unstake(stakeNftId);
|
|
271
309
|
|
|
272
310
|
Amount totalAmount = unstakedAmount + rewardsClaimedAmount;
|
|
273
|
-
$._staking.transferDipAmount(
|
|
274
|
-
stakeOwner,
|
|
275
|
-
totalAmount);
|
|
276
|
-
|
|
277
311
|
emit LogStakingServiceUnstaked(stakeNftId, stakeOwner, totalAmount);
|
|
312
|
+
|
|
313
|
+
$._tokenHandler.pushToken(
|
|
314
|
+
stakeOwner,
|
|
315
|
+
totalAmount);
|
|
278
316
|
}
|
|
279
317
|
|
|
280
318
|
|
|
@@ -331,19 +369,19 @@ contract StakingService is
|
|
|
331
369
|
{
|
|
332
370
|
(
|
|
333
371
|
address authority,
|
|
334
|
-
address
|
|
335
|
-
address
|
|
372
|
+
address registry,
|
|
373
|
+
address staking
|
|
336
374
|
) = abi.decode(data, (address, address, address));
|
|
337
375
|
|
|
338
|
-
|
|
376
|
+
__Service_init(authority, registry, owner);
|
|
339
377
|
|
|
340
378
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
|
341
379
|
$._registryService = RegistryService(_getServiceAddress(REGISTRY()));
|
|
342
|
-
$._staking = _registerStaking(
|
|
380
|
+
$._staking = _registerStaking(staking);
|
|
343
381
|
$._dip = $._staking.getToken();
|
|
344
382
|
$._tokenHandler = $._staking.getTokenHandler();
|
|
345
383
|
|
|
346
|
-
|
|
384
|
+
_registerInterface(type(IStakingService).interfaceId);
|
|
347
385
|
}
|
|
348
386
|
|
|
349
387
|
|
|
@@ -389,12 +427,12 @@ contract StakingService is
|
|
|
389
427
|
StakingServiceStorage storage $ = _getStakingServiceStorage();
|
|
390
428
|
newBalance = $._staking.refillRewardReserves(targetNftId, dipAmount);
|
|
391
429
|
|
|
430
|
+
emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
|
|
431
|
+
|
|
392
432
|
// collect reward dip from provider
|
|
393
|
-
$.
|
|
433
|
+
$._tokenHandler.pullToken(
|
|
394
434
|
rewardProvider,
|
|
395
435
|
dipAmount);
|
|
396
|
-
|
|
397
|
-
emit LogStakingServiceRewardReservesIncreased(targetNftId, rewardProvider, dipAmount, newBalance);
|
|
398
436
|
}
|
|
399
437
|
|
|
400
438
|
|
|
@@ -15,17 +15,18 @@ contract StakingServiceManager is
|
|
|
15
15
|
/// @dev initializes proxy manager with service implementation
|
|
16
16
|
constructor(
|
|
17
17
|
address authority,
|
|
18
|
-
address
|
|
18
|
+
address registry,
|
|
19
19
|
bytes32 salt
|
|
20
20
|
)
|
|
21
|
-
ProxyManager(registryAddress)
|
|
22
21
|
{
|
|
23
22
|
StakingService svc = new StakingService();
|
|
24
23
|
bytes memory data = abi.encode(
|
|
25
24
|
authority,
|
|
26
|
-
|
|
27
|
-
IRegistry(
|
|
28
|
-
|
|
25
|
+
registry,
|
|
26
|
+
IRegistry(registry).getStakingAddress());
|
|
27
|
+
|
|
28
|
+
IVersionable versionable = initialize(
|
|
29
|
+
registry,
|
|
29
30
|
address(svc),
|
|
30
31
|
data,
|
|
31
32
|
salt);
|
|
@@ -132,9 +132,9 @@ library TargetManagerLib {
|
|
|
132
132
|
public
|
|
133
133
|
pure
|
|
134
134
|
{
|
|
135
|
-
// check locking period is
|
|
136
|
-
if (lockingPeriod.
|
|
137
|
-
revert IStaking.
|
|
135
|
+
// check locking period is >= min locking period
|
|
136
|
+
if (lockingPeriod.lt(getMinimumLockingPeriod())) {
|
|
137
|
+
revert IStaking.ErrorStakingLockingPeriodTooShort(targetNftId, getMinimumLockingPeriod(), lockingPeriod);
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
// check locking period <= max locking period
|
|
@@ -190,6 +190,10 @@ library TargetManagerLib {
|
|
|
190
190
|
return SecondsLib.toSeconds(365 * 24 * 3600 / 2);
|
|
191
191
|
}
|
|
192
192
|
|
|
193
|
+
/// @dev the minimum locking period is 24 hours
|
|
194
|
+
function getMinimumLockingPeriod() public pure returns (Seconds minLockingPeriod) {
|
|
195
|
+
return SecondsLib.toSeconds(24 * 3600);
|
|
196
|
+
}
|
|
193
197
|
|
|
194
198
|
function getMaxRewardRate() public pure returns (UFixed maxRewardRate) {
|
|
195
199
|
return UFixedLib.toUFixed(33, -2);
|
|
@@ -11,7 +11,9 @@ using {
|
|
|
11
11
|
eqAmount as ==,
|
|
12
12
|
nqAmount as !=,
|
|
13
13
|
ltAmount as <,
|
|
14
|
+
ltAmount as <=,
|
|
14
15
|
gtAmount as >,
|
|
16
|
+
gteAmount as >=,
|
|
15
17
|
AmountLib.add,
|
|
16
18
|
AmountLib.eq,
|
|
17
19
|
AmountLib.eqz,
|
|
@@ -43,10 +45,18 @@ function ltAmount(Amount a, Amount b) pure returns (bool) {
|
|
|
43
45
|
return AmountLib.lt(a, b);
|
|
44
46
|
}
|
|
45
47
|
|
|
48
|
+
function lteAmount(Amount a, Amount b) pure returns (bool) {
|
|
49
|
+
return AmountLib.lte(a, b);
|
|
50
|
+
}
|
|
51
|
+
|
|
46
52
|
function gtAmount(Amount a, Amount b) pure returns (bool) {
|
|
47
53
|
return AmountLib.gt(a, b);
|
|
48
54
|
}
|
|
49
55
|
|
|
56
|
+
function gteAmount(Amount a, Amount b) pure returns (bool) {
|
|
57
|
+
return AmountLib.gte(a, b);
|
|
58
|
+
}
|
|
59
|
+
|
|
50
60
|
library AmountLib {
|
|
51
61
|
|
|
52
62
|
error ErrorAmountLibValueTooBig(uint256 amount);
|
|
@@ -84,6 +94,11 @@ library AmountLib {
|
|
|
84
94
|
return Amount.unwrap(a1) < Amount.unwrap(a2);
|
|
85
95
|
}
|
|
86
96
|
|
|
97
|
+
/// @dev return true if amount a1 is less or equal than a2
|
|
98
|
+
function lte(Amount a1, Amount a2) public pure returns (bool) {
|
|
99
|
+
return Amount.unwrap(a1) <= Amount.unwrap(a2);
|
|
100
|
+
}
|
|
101
|
+
|
|
87
102
|
/// @dev return true if amount a1 is greater than a2
|
|
88
103
|
function gt(Amount a1, Amount a2) public pure returns (bool) {
|
|
89
104
|
return Amount.unwrap(a1) > Amount.unwrap(a2);
|
|
@@ -11,8 +11,14 @@ using {
|
|
|
11
11
|
eqBlocknumber as ==,
|
|
12
12
|
neBlocknumber as !=,
|
|
13
13
|
BlocknumberLib.toInt,
|
|
14
|
+
BlocknumberLib.eq,
|
|
15
|
+
BlocknumberLib.ne,
|
|
14
16
|
BlocknumberLib.eqz,
|
|
15
|
-
BlocknumberLib.gtz
|
|
17
|
+
BlocknumberLib.gtz,
|
|
18
|
+
BlocknumberLib.gt,
|
|
19
|
+
BlocknumberLib.gte,
|
|
20
|
+
BlocknumberLib.lt,
|
|
21
|
+
BlocknumberLib.lte
|
|
16
22
|
} for Blocknumber global;
|
|
17
23
|
|
|
18
24
|
/// @dev return true if Blocknumber a is greater than Blocknumber b
|
|
@@ -12,6 +12,7 @@ import {NftId} from "./NftId.sol";
|
|
|
12
12
|
using {
|
|
13
13
|
eqClaimId as ==,
|
|
14
14
|
neClaimId as !=,
|
|
15
|
+
ClaimIdLib.eq,
|
|
15
16
|
ClaimIdLib.eqz,
|
|
16
17
|
ClaimIdLib.gtz,
|
|
17
18
|
ClaimIdLib.toInt,
|
|
@@ -21,7 +22,7 @@ using {
|
|
|
21
22
|
|
|
22
23
|
// pure free functions for operators
|
|
23
24
|
function eqClaimId(ClaimId a, ClaimId b) pure returns (bool isSame) {
|
|
24
|
-
return
|
|
25
|
+
return ClaimIdLib.eq(a, b);
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
function neClaimId(ClaimId a, ClaimId b) pure returns (bool isDifferent) {
|
|
@@ -68,6 +69,10 @@ library ClaimIdLib {
|
|
|
68
69
|
return ClaimId.unwrap(a) > 0;
|
|
69
70
|
}
|
|
70
71
|
|
|
72
|
+
function eq(ClaimId a, ClaimId b) public pure returns (bool) {
|
|
73
|
+
return ClaimId.unwrap(a) == ClaimId.unwrap(b);
|
|
74
|
+
}
|
|
75
|
+
|
|
71
76
|
/// @dev Returns true if the value is zero (== 0).
|
|
72
77
|
function eqz(ClaimId a) public pure returns (bool) {
|
|
73
78
|
return ClaimId.unwrap(a) == 0;
|
package/contracts/type/Key32.sol
CHANGED
|
@@ -28,8 +28,8 @@ library Key32Lib {
|
|
|
28
28
|
|
|
29
29
|
uint8 public constant TYPE_SHIFT = 31 * 8;
|
|
30
30
|
uint8 public constant ID_SHIFT = uint8(32 * 8 - TYPE_SHIFT);
|
|
31
|
-
bytes32 public constant TYPE_MASK = bytes32(bytes1(type(uint8).max)); //
|
|
32
|
-
bytes32 public constant ID_MASK = bytes32(~TYPE_MASK); //
|
|
31
|
+
bytes32 public constant TYPE_MASK = bytes32(bytes1(type(uint8).max)); // [32] byte in bytes32
|
|
32
|
+
bytes32 public constant ID_MASK = bytes32(~TYPE_MASK); // [0..31] bytes in bytes32
|
|
33
33
|
|
|
34
34
|
function toKey32(ObjectType objectType, KeyId id) public pure returns (Key32) {
|
|
35
35
|
uint256 uintObjectType = ObjectType.unwrap(objectType);
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
import {Key32} from "../type/Key32.sol";
|
|
5
|
+
|
|
6
|
+
// based on https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/utils/structs/EnumerableSet.sol
|
|
7
|
+
library LibKey32Set {
|
|
8
|
+
|
|
9
|
+
struct Set {
|
|
10
|
+
Key32[] keys;
|
|
11
|
+
mapping(Key32 key => uint256 index) at;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
error ErrorKey32SetAlreadyAdded(Key32 key);
|
|
15
|
+
error ErrorKey32SetNotInSet(Key32 key);
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
function add(Set storage set, Key32 key) external {
|
|
19
|
+
if (set.at[key] > 0) {
|
|
20
|
+
revert ErrorKey32SetAlreadyAdded(key);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
set.keys.push(key);
|
|
24
|
+
set.at[key] = set.keys.length;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
function remove(Set storage set, Key32 key) external {
|
|
28
|
+
uint256 nftIdIndex = set.at[key];
|
|
29
|
+
|
|
30
|
+
if (nftIdIndex == 0) {
|
|
31
|
+
revert ErrorKey32SetNotInSet(key);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
uint256 toDeleteIndex = nftIdIndex - 1;
|
|
35
|
+
uint256 lastIndex = set.keys.length - 1;
|
|
36
|
+
|
|
37
|
+
if (lastIndex != toDeleteIndex) {
|
|
38
|
+
Key32 lastId = set.keys[lastIndex];
|
|
39
|
+
set.keys[toDeleteIndex] = lastId;
|
|
40
|
+
set.at[lastId] = nftIdIndex; // Replace lastValue's index to valueIndex
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
set.keys.pop();
|
|
44
|
+
delete set.at[key];
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function isEmpty(Set storage set) external view returns(bool empty) {
|
|
48
|
+
return set.keys.length == 0;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function contains(Set storage set, Key32 key) external view returns(bool inSet) {
|
|
52
|
+
return set.at[key] > 0;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function size(Set storage set) external view returns(uint256 length) {
|
|
56
|
+
return set.keys.length;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function getElementAt(Set storage set, uint256 index) external view returns(Key32 key) {
|
|
60
|
+
return set.keys[index];
|
|
61
|
+
}
|
|
62
|
+
}
|
package/contracts/type/NftId.sol
CHANGED
|
@@ -14,6 +14,7 @@ using {
|
|
|
14
14
|
NftIdLib.toInt,
|
|
15
15
|
NftIdLib.gtz,
|
|
16
16
|
NftIdLib.eqz,
|
|
17
|
+
NftIdLib.eq,
|
|
17
18
|
NftIdLib.toKeyId,
|
|
18
19
|
NftIdLib.toKey32
|
|
19
20
|
} for NftId global;
|
|
@@ -75,4 +76,10 @@ library NftIdLib {
|
|
|
75
76
|
function toKeyId(NftId id) public pure returns (KeyId keyId) {
|
|
76
77
|
return KeyId.wrap(bytes31(uint248(NftId.unwrap(id))));
|
|
77
78
|
}
|
|
79
|
+
|
|
80
|
+
function toNftId(KeyId keyId) public pure returns (NftId nftId) {
|
|
81
|
+
uint248 keyIdInt = uint248(bytes31(KeyId.unwrap(keyId)));
|
|
82
|
+
assert(keyIdInt < type(uint96).max);
|
|
83
|
+
return NftId.wrap(uint96(keyIdInt));
|
|
84
|
+
}
|
|
78
85
|
}
|
|
@@ -9,6 +9,7 @@ using {
|
|
|
9
9
|
neObjectType as !=,
|
|
10
10
|
ObjectTypeLib.toInt,
|
|
11
11
|
ObjectTypeLib.eqz,
|
|
12
|
+
ObjectTypeLib.eq,
|
|
12
13
|
ObjectTypeLib.gtz
|
|
13
14
|
} for ObjectType global;
|
|
14
15
|
|
|
@@ -43,10 +44,16 @@ function INSTANCE() pure returns (ObjectType) {
|
|
|
43
44
|
return ObjectType.wrap(10);
|
|
44
45
|
}
|
|
45
46
|
|
|
47
|
+
/// @dev Generic component object type.
|
|
48
|
+
/// Component role id range is 11-19.
|
|
49
|
+
/// Stick to this range for new component object types.
|
|
46
50
|
function COMPONENT() pure returns (ObjectType) {
|
|
47
51
|
return ObjectType.wrap(11);
|
|
48
52
|
}
|
|
49
53
|
|
|
54
|
+
/// @dev Product object type.
|
|
55
|
+
/// IMPORTANT the actual value has an influence on the corresponding role id (RoleIdLib.sol).
|
|
56
|
+
/// Do not change this value without updating the corresponding role id calculation.
|
|
50
57
|
function PRODUCT() pure returns (ObjectType) {
|
|
51
58
|
return ObjectType.wrap(12);
|
|
52
59
|
}
|
|
@@ -63,6 +70,8 @@ function POOL() pure returns (ObjectType) {
|
|
|
63
70
|
return ObjectType.wrap(15);
|
|
64
71
|
}
|
|
65
72
|
|
|
73
|
+
/// @dev Application object type.
|
|
74
|
+
/// Range for NFT objects created thorugh components is 20-29.
|
|
66
75
|
function APPLICATION() pure returns (ObjectType) {
|
|
67
76
|
return ObjectType.wrap(20);
|
|
68
77
|
}
|
|
@@ -71,50 +80,69 @@ function POLICY() pure returns (ObjectType) {
|
|
|
71
80
|
return ObjectType.wrap(21);
|
|
72
81
|
}
|
|
73
82
|
|
|
74
|
-
function
|
|
83
|
+
function BUNDLE() pure returns (ObjectType) {
|
|
75
84
|
return ObjectType.wrap(22);
|
|
76
85
|
}
|
|
77
86
|
|
|
78
|
-
function
|
|
79
|
-
return ObjectType.wrap(23);
|
|
87
|
+
function DISTRIBUTOR() pure returns (ObjectType) {
|
|
88
|
+
return ObjectType.wrap(23);
|
|
80
89
|
}
|
|
81
90
|
|
|
82
|
-
|
|
83
|
-
|
|
91
|
+
/// @dev Stake object type.
|
|
92
|
+
/// NFT object type is 30
|
|
93
|
+
function STAKE() pure returns (ObjectType) {
|
|
94
|
+
return ObjectType.wrap(30);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/// @dev Staking target object type.
|
|
98
|
+
function TARGET() pure returns (ObjectType) {
|
|
99
|
+
return ObjectType.wrap(31);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/// @dev Accounting object type.
|
|
103
|
+
/// Range for non-NFT types created through components is 40+
|
|
104
|
+
function ACCOUNTING() pure returns (ObjectType) {
|
|
105
|
+
return ObjectType.wrap(40);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function FEE() pure returns (ObjectType) {
|
|
109
|
+
return ObjectType.wrap(41);
|
|
84
110
|
}
|
|
85
111
|
|
|
86
112
|
function PRICE() pure returns (ObjectType) {
|
|
87
|
-
return ObjectType.wrap(
|
|
113
|
+
return ObjectType.wrap(42);
|
|
88
114
|
}
|
|
89
115
|
|
|
90
|
-
function
|
|
91
|
-
return ObjectType.wrap(
|
|
116
|
+
function PREMIUM() pure returns (ObjectType) {
|
|
117
|
+
return ObjectType.wrap(43);
|
|
92
118
|
}
|
|
93
119
|
|
|
94
|
-
function
|
|
95
|
-
return ObjectType.wrap(
|
|
120
|
+
function RISK() pure returns (ObjectType) {
|
|
121
|
+
return ObjectType.wrap(44);
|
|
96
122
|
}
|
|
97
123
|
|
|
98
|
-
function
|
|
99
|
-
return ObjectType.wrap(
|
|
124
|
+
function CLAIM() pure returns (ObjectType) {
|
|
125
|
+
return ObjectType.wrap(45);
|
|
100
126
|
}
|
|
101
127
|
|
|
102
|
-
function
|
|
103
|
-
return ObjectType.wrap(
|
|
128
|
+
function PAYOUT() pure returns (ObjectType) {
|
|
129
|
+
return ObjectType.wrap(46);
|
|
104
130
|
}
|
|
105
131
|
|
|
106
|
-
function
|
|
107
|
-
return ObjectType.wrap(
|
|
132
|
+
function REQUEST() pure returns (ObjectType) {
|
|
133
|
+
return ObjectType.wrap(47);
|
|
108
134
|
}
|
|
109
135
|
|
|
110
|
-
function
|
|
111
|
-
return ObjectType.wrap(
|
|
136
|
+
function DISTRIBUTOR_TYPE() pure returns (ObjectType) {
|
|
137
|
+
return ObjectType.wrap(48);
|
|
112
138
|
}
|
|
113
139
|
|
|
114
|
-
function
|
|
115
|
-
return ObjectType.wrap(
|
|
140
|
+
function REFERRAL() pure returns (ObjectType) {
|
|
141
|
+
return ObjectType.wrap(49);
|
|
116
142
|
}
|
|
117
143
|
|
|
144
|
+
|
|
145
|
+
|
|
118
146
|
/// @dev Object type that includes any other object type.
|
|
119
147
|
/// Note that eq()/'==' does not take this property into account.
|
|
120
148
|
function ALL() pure returns (ObjectType) {
|
|
@@ -197,6 +225,10 @@ library ObjectTypeLib {
|
|
|
197
225
|
return "Price";
|
|
198
226
|
} else if (objectType == BUNDLE()) {
|
|
199
227
|
return "Bundle";
|
|
228
|
+
} else if (objectType == RISK()) {
|
|
229
|
+
return "Risk";
|
|
230
|
+
} else if (objectType == ACCOUNTING()) {
|
|
231
|
+
return "Accounting";
|
|
200
232
|
}
|
|
201
233
|
|
|
202
234
|
// fallback: ObjectType<obect-type-int>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
pragma solidity ^0.8.20;
|
|
3
3
|
|
|
4
|
-
//
|
|
5
|
-
type PayoutId is
|
|
4
|
+
// uint40 allows for 65'535 claims with 16'777'216 payouts each per policy
|
|
5
|
+
type PayoutId is uint40;
|
|
6
6
|
|
|
7
7
|
import {ClaimId} from "./ClaimId.sol";
|
|
8
8
|
import {PAYOUT} from "./ObjectType.sol";
|
|
@@ -39,21 +39,21 @@ library PayoutIdLib {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
/// @dev Converts an uint into a PayoutId.
|
|
42
|
-
function toPayoutId(ClaimId claimId,
|
|
43
|
-
return PayoutId.wrap((ClaimId.unwrap(claimId) <<
|
|
42
|
+
function toPayoutId(ClaimId claimId, uint24 payoutNo) public pure returns (PayoutId) {
|
|
43
|
+
return PayoutId.wrap((uint40(ClaimId.unwrap(claimId)) << 24) + payoutNo);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
function toClaimId(PayoutId payoutId) public pure returns (ClaimId) {
|
|
47
|
-
return ClaimId.wrap(uint16(PayoutId.unwrap(payoutId) >>
|
|
47
|
+
return ClaimId.wrap(uint16(PayoutId.unwrap(payoutId) >> 24));
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
function toPayoutNo(PayoutId payoutId) public pure returns (
|
|
51
|
-
return
|
|
50
|
+
function toPayoutNo(PayoutId payoutId) public pure returns (uint24) {
|
|
51
|
+
return uint24(PayoutId.unwrap(payoutId) & 16777215);
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
/// @dev Converts the PayoutId to a uint.
|
|
55
|
-
function toInt(PayoutId a) public pure returns (
|
|
56
|
-
return
|
|
55
|
+
function toInt(PayoutId a) public pure returns (uint40) {
|
|
56
|
+
return PayoutId.unwrap(a);
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
/// @dev Returns true if the value is non-zero (> 0).
|
|
@@ -77,6 +77,6 @@ library PayoutIdLib {
|
|
|
77
77
|
bytes31(
|
|
78
78
|
bytes15(
|
|
79
79
|
uint120(
|
|
80
|
-
(NftId.unwrap(policyNftId) <<
|
|
80
|
+
(NftId.unwrap(policyNftId) << 40) + PayoutId.unwrap(payoutId)))));
|
|
81
81
|
}
|
|
82
82
|
}
|