@etherisc/gif-next 0.0.2-dc7e4cb-141 → 0.0.2-de0a1d3-009
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +58 -11
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +405 -0
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +340 -0
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +131 -0
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +109 -18
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/components/Pool.sol/Pool.json +194 -3
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/components/Product.sol/Product.json +160 -21
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +2 -2
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +2 -2
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +709 -678
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +916 -717
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/{InstanceBase.sol/InstanceBase.json → base/ComponentServiceBase.sol/ComponentServiceBase.json} +102 -28
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +113 -0
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +560 -0
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/{module/lifecycle/ILifecycle.sol/ILifecycleModule.json → base/ILifecycle.sol/ILifecycle.json} +10 -77
- package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/instance/{service → base}/IService.sol/IService.json +58 -17
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +463 -0
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +710 -0
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +169 -0
- package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +4 -0
- package/artifacts/contracts/instance/{module/compensation/ICompensation.sol/ICompensation.json → base/ModuleBase.sol/ModuleBase.json} +2 -2
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +4 -0
- package/artifacts/contracts/instance/{service → base}/ServiceBase.sol/ServiceBase.json +88 -1
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +71 -50
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +71 -50
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +22 -93
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +22 -93
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +10 -0
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{compensation/ICompensation.sol/ICompensationModule.json → distribution/IDistribution.sol/IDistribution.json} +2 -2
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +4 -0
- package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +10 -0
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +61 -38
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +61 -38
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -5
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -5
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +104 -1
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +126 -5
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +209 -231
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +1 -1
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +209 -231
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +145 -18
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +507 -0
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +57 -16
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/instance/service/{ComponentServiceBase.sol/ComponentServiceBase.json → IDistributionService.sol/IDistributionService.json} +91 -25
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +122 -17
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +210 -16
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +171 -12
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +303 -31
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
- package/artifacts/contracts/registry/RegistryUpgradeable.sol/RegistryUpgradeable.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryUpgradeable.sol/RegistryUpgradeable.json +724 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +53 -12
- package/artifacts/contracts/shared/Proxy.sol/ProxyDeployer.dbg.json +4 -0
- package/artifacts/contracts/shared/Proxy.sol/ProxyDeployer.json +248 -0
- package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.dbg.json +4 -0
- package/artifacts/contracts/shared/Proxy.sol/ProxyWithProxyAdminGetter.json +129 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +87 -0
- package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.dbg.json +4 -0
- package/artifacts/contracts/shared/VersionableUpgradeable.sol/VersionableUpgradeable.json +228 -0
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +4 -0
- package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +405 -0
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
- package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +1 -1
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +194 -3
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +1 -1
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +209 -27
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +2 -2
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +38 -4
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
- package/artifacts/contracts/test/TestService.sol/TestService.json +95 -8
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +2 -2
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +95 -8
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +50 -11
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +111 -0
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +65 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +99 -0
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +30 -0
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionLib.json +40 -2
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +2 -2
- package/contracts/components/BaseComponent.sol +7 -2
- package/contracts/components/Distribution.sol +132 -0
- package/contracts/components/IDistributionComponent.sol +47 -0
- package/contracts/components/IPoolComponent.sol +14 -0
- package/contracts/components/IProductComponent.sol +24 -5
- package/contracts/components/Pool.sol +64 -3
- package/contracts/components/Product.sol +123 -13
- package/contracts/instance/IInstance.sol +14 -14
- package/contracts/instance/Instance.sol +20 -12
- package/contracts/instance/{service → base}/ComponentServiceBase.sol +1 -0
- package/contracts/instance/base/IInstanceBase.sol +22 -0
- package/contracts/instance/base/IKeyValueStore.sol +50 -0
- package/contracts/instance/base/ILifecycle.sol +30 -0
- package/contracts/instance/{InstanceBase.sol → base/InstanceBase.sol} +33 -13
- package/contracts/instance/base/KeyValueStore.sol +161 -0
- package/contracts/instance/{module/lifecycle/LifecycleModule.sol → base/Lifecycle.sol} +50 -39
- package/contracts/instance/base/ModuleBase.sol +57 -0
- package/contracts/instance/{service → base}/ServiceBase.sol +0 -2
- package/contracts/instance/module/access/Access.sol +6 -6
- package/contracts/instance/module/bundle/BundleModule.sol +24 -118
- package/contracts/instance/module/bundle/IBundle.sol +9 -9
- package/contracts/instance/module/component/ComponentModule.sol +27 -60
- package/contracts/instance/module/component/IComponent.sol +5 -30
- package/contracts/instance/module/distribution/DistributionModule.sol +17 -0
- package/contracts/instance/module/distribution/IDistribution.sol +10 -0
- package/contracts/instance/module/policy/IPolicy.sol +12 -9
- package/contracts/instance/module/policy/PolicyModule.sol +33 -26
- package/contracts/instance/module/pool/IPoolModule.sol +0 -1
- package/contracts/instance/module/pool/PoolModule.sol +12 -9
- package/contracts/instance/module/risk/IRisk.sol +18 -2
- package/contracts/instance/module/risk/RiskModule.sol +56 -2
- package/contracts/instance/module/treasury/ITreasury.sol +29 -50
- package/contracts/instance/module/treasury/TreasuryModule.sol +71 -85
- package/contracts/instance/service/ComponentOwnerService.sol +30 -44
- package/contracts/instance/service/DistributionService.sol +59 -0
- package/contracts/instance/service/IComponentOwnerService.sol +1 -1
- package/contracts/instance/service/IDistributionService.sol +12 -0
- package/contracts/instance/service/IPoolService.sol +8 -1
- package/contracts/instance/service/IProductService.sol +56 -7
- package/contracts/instance/service/PoolService.sol +31 -5
- package/contracts/instance/service/ProductService.sol +231 -77
- package/contracts/registry/Registry.sol +4 -4
- package/contracts/registry/RegistryUpgradeable.sol +473 -0
- package/contracts/shared/IVersionable.sol +17 -4
- package/contracts/shared/Proxy.sol +94 -0
- package/contracts/shared/Versionable.sol +13 -3
- package/contracts/shared/VersionableUpgradeable.sol +133 -0
- package/contracts/test/TestDistribution.sol +21 -0
- package/contracts/test/TestPool.sol +5 -2
- package/contracts/test/TestProduct.sol +35 -7
- package/contracts/test/TestRoleId.sol +2 -2
- package/contracts/test/TestService.sol +1 -1
- package/contracts/types/Fee.sol +8 -3
- package/contracts/types/Key32.sol +45 -0
- package/contracts/types/NftId.sol +16 -1
- package/contracts/types/ObjectType.sol +24 -8
- package/contracts/types/ReferralId.sol +48 -0
- package/contracts/types/RiskId.sol +43 -0
- package/contracts/types/RoleId.sol +12 -10
- package/contracts/types/StateId.sol +7 -1
- package/contracts/types/Version.sol +8 -0
- package/package.json +1 -1
- package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.dbg.json +0 -4
- package/artifacts/contracts/instance/IServiceLinked.sol/IServiceLinked.json +0 -50
- package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycle.json +0 -134
- package/artifacts/contracts/instance/module/lifecycle/ILifecycle.sol/ILifecycleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/lifecycle/LifecycleModule.sol/LifecycleModule.json +0 -221
- package/artifacts/contracts/instance/service/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IService.sol/IService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ServiceBase.sol/ServiceBase.dbg.json +0 -4
- package/contracts/instance/IServiceLinked.sol +0 -12
- package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
- package/contracts/instance/module/compensation/ICompensation.sol +0 -10
- package/contracts/instance/module/lifecycle/ILifecycle.sol +0 -47
- /package/contracts/instance/{service → base}/IService.sol +0 -0
@@ -0,0 +1,133 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Initializable} from "@openzeppelin5/contracts/proxy/utils/Initializable.sol";
|
5
|
+
|
6
|
+
import {Blocknumber, blockNumber} from "../types/Blocknumber.sol";
|
7
|
+
import {Timestamp, blockTimestamp} from "../types/Timestamp.sol";
|
8
|
+
import {Version, VersionPart, VersionLib} from "../types/Version.sol";
|
9
|
+
|
10
|
+
import {IVersionable} from "./IVersionable.sol";
|
11
|
+
|
12
|
+
abstract contract VersionableUpgradeable is
|
13
|
+
Initializable,
|
14
|
+
IVersionable
|
15
|
+
{
|
16
|
+
/// @custom:storage-location erc7201:gif-next.contracts.shared.Versionable.sol
|
17
|
+
struct VersionableStorage {
|
18
|
+
mapping(Version version => VersionInfo info) _versionHistory;
|
19
|
+
Version [] _versions;
|
20
|
+
Version _v1;
|
21
|
+
}
|
22
|
+
|
23
|
+
// keccak256(abi.encode(uint256(keccak256("gif-next.contracts.shared.Versionable.sol")) - 1)) & ~bytes32(uint256(0xff))
|
24
|
+
bytes32 private constant VersionableStorageLocation = 0x4f61291a8ac3d020d0a7d919a76b8592aa88385744dee3f8b4f3873b969ed900;
|
25
|
+
|
26
|
+
function _getVersionableStorage() private pure returns (VersionableStorage storage $) {
|
27
|
+
assembly {
|
28
|
+
$.slot := VersionableStorageLocation
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
constructor() {
|
33
|
+
_disableInitializers();
|
34
|
+
}
|
35
|
+
|
36
|
+
function initialize(
|
37
|
+
address implementation,
|
38
|
+
address activatedBy, // TODO can it be a msg.sender ?
|
39
|
+
bytes memory data
|
40
|
+
)
|
41
|
+
public
|
42
|
+
virtual
|
43
|
+
initializer
|
44
|
+
{
|
45
|
+
_activate(implementation, activatedBy);
|
46
|
+
_initialize(data);
|
47
|
+
}
|
48
|
+
function upgrade(
|
49
|
+
address implementation,
|
50
|
+
address activatedBy,
|
51
|
+
bytes memory data
|
52
|
+
)
|
53
|
+
external
|
54
|
+
virtual
|
55
|
+
reinitializer(VersionLib.toUint64(getVersion()))
|
56
|
+
{
|
57
|
+
_activate(implementation, activatedBy);
|
58
|
+
_upgrade(data);
|
59
|
+
}
|
60
|
+
// IMPORTANT each version must implement this function
|
61
|
+
// each implementation MUST use onlyInitialising modifier
|
62
|
+
function _initialize(bytes memory data) virtual internal;
|
63
|
+
|
64
|
+
// IMPORTANT each version except version "1" must implement this function
|
65
|
+
// each implementation MUST use onlyInitialising modifier
|
66
|
+
function _upgrade(bytes memory data) virtual internal {
|
67
|
+
revert();
|
68
|
+
}
|
69
|
+
|
70
|
+
// can only be called once per contract
|
71
|
+
// needs to be called inside the proxy upgrade tx
|
72
|
+
// TODO run reinitializer(version().toUint64()) modifier after "version()" is checked,
|
73
|
+
function _activate(
|
74
|
+
address implementation,
|
75
|
+
address activatedBy
|
76
|
+
)
|
77
|
+
private
|
78
|
+
onlyInitializing
|
79
|
+
{
|
80
|
+
VersionableStorage storage $ = _getVersionableStorage();
|
81
|
+
|
82
|
+
uint64 version = _getInitializedVersion();
|
83
|
+
|
84
|
+
Version thisVersion = getVersion();
|
85
|
+
|
86
|
+
if(version == 1) {
|
87
|
+
// thisVersion is alias to version "1"
|
88
|
+
$._v1 = thisVersion;
|
89
|
+
}
|
90
|
+
else {
|
91
|
+
require(thisVersion > $._v1, "INVALID VERSION");
|
92
|
+
}
|
93
|
+
|
94
|
+
// update version history
|
95
|
+
$._versions.push(thisVersion);
|
96
|
+
$._versionHistory[thisVersion] = VersionInfo(
|
97
|
+
thisVersion,
|
98
|
+
implementation,
|
99
|
+
activatedBy,
|
100
|
+
blockTimestamp(),
|
101
|
+
blockNumber()
|
102
|
+
);
|
103
|
+
|
104
|
+
emit LogVersionableActivated(thisVersion, implementation, activatedBy);
|
105
|
+
}
|
106
|
+
|
107
|
+
// TODO previous version(s) can not be active -> check that _version is the current one
|
108
|
+
function isActivated(Version _version) public override view returns(bool) {
|
109
|
+
return _getVersionableStorage()._versionHistory[_version].activatedIn.toInt() > 0;
|
110
|
+
}
|
111
|
+
|
112
|
+
|
113
|
+
function getVersion() public pure virtual returns(Version);
|
114
|
+
|
115
|
+
|
116
|
+
function getVersionCount() external view override returns(uint256) {
|
117
|
+
return _getVersionableStorage()._versions.length;
|
118
|
+
}
|
119
|
+
|
120
|
+
function getVersion(uint256 idx) external view override returns(Version) {
|
121
|
+
return _getVersionableStorage()._versions[idx];
|
122
|
+
}
|
123
|
+
|
124
|
+
|
125
|
+
function getVersionInfo(Version _version) external override view returns(VersionInfo memory) {
|
126
|
+
return _getVersionableStorage()._versionHistory[_version];
|
127
|
+
}
|
128
|
+
|
129
|
+
function getInitializedVersion() external view returns(uint64)
|
130
|
+
{
|
131
|
+
return _getInitializedVersion();
|
132
|
+
}
|
133
|
+
}
|
@@ -0,0 +1,21 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {Fee} from "../../contracts/types/Fee.sol";
|
5
|
+
import {NftId} from "../../contracts/types/NftId.sol";
|
6
|
+
import {Distribution} from "../../contracts/components/Distribution.sol";
|
7
|
+
|
8
|
+
|
9
|
+
contract TestDistribution is Distribution {
|
10
|
+
|
11
|
+
constructor(
|
12
|
+
address registry,
|
13
|
+
NftId instanceNftid,
|
14
|
+
address token,
|
15
|
+
bool isVerifying,
|
16
|
+
Fee memory distributionFee
|
17
|
+
)
|
18
|
+
Distribution(registry, instanceNftid, token, isVerifying, distributionFee)
|
19
|
+
// solhint-disable-next-line no-empty-blocks
|
20
|
+
{}
|
21
|
+
}
|
@@ -14,9 +14,12 @@ contract TestPool is Pool {
|
|
14
14
|
NftId instanceNftid,
|
15
15
|
address token,
|
16
16
|
bool isVerifying,
|
17
|
-
UFixed collateralizationLevel
|
17
|
+
UFixed collateralizationLevel,
|
18
|
+
Fee memory poolFee,
|
19
|
+
Fee memory stakingFee,
|
20
|
+
Fee memory performanceFee
|
18
21
|
)
|
19
|
-
Pool(registry, instanceNftid, token, isVerifying, collateralizationLevel)
|
22
|
+
Pool(registry, instanceNftid, token, isVerifying, collateralizationLevel, poolFee, stakingFee, performanceFee)
|
20
23
|
// solhint-disable-next-line no-empty-blocks
|
21
24
|
{}
|
22
25
|
}
|
@@ -3,6 +3,8 @@ pragma solidity ^0.8.19;
|
|
3
3
|
|
4
4
|
import {Product} from "../../contracts/components/Product.sol";
|
5
5
|
import {NftId, toNftId} from "../../contracts/types/NftId.sol";
|
6
|
+
import {ReferralId} from "../types/ReferralId.sol";
|
7
|
+
import {RiskId} from "../../contracts/types/RiskId.sol";
|
6
8
|
import {Timestamp, blockTimestamp} from "../../contracts/types/Timestamp.sol";
|
7
9
|
import {Fee} from "../../contracts/types/Fee.sol";
|
8
10
|
|
@@ -10,26 +12,52 @@ contract TestProduct is Product {
|
|
10
12
|
|
11
13
|
event LogTestProductSender(address sender);
|
12
14
|
|
13
|
-
|
14
|
-
|
15
|
+
string public constant DEFAULT_RISK_NAME = "DEFAULT_RISK";
|
16
|
+
bool private defaultRiskCreated;
|
17
|
+
|
18
|
+
constructor(
|
19
|
+
address registry,
|
20
|
+
NftId instanceNftid,
|
21
|
+
address token,
|
22
|
+
address pool,
|
23
|
+
address distribution,
|
24
|
+
Fee memory productFee,
|
25
|
+
Fee memory processingFee
|
26
|
+
)
|
27
|
+
Product(registry, instanceNftid, token, pool, distribution, productFee, processingFee)
|
15
28
|
// solhint-disable-next-line no-empty-blocks
|
16
|
-
{
|
29
|
+
{
|
30
|
+
}
|
31
|
+
|
32
|
+
function getDefaultRiskId() public pure returns (RiskId) {
|
33
|
+
return _toRiskId(DEFAULT_RISK_NAME);
|
34
|
+
}
|
17
35
|
|
18
36
|
function applyForPolicy(
|
19
37
|
uint256 sumInsuredAmount,
|
20
|
-
uint256 premiumAmount,
|
21
38
|
uint256 lifetime,
|
22
|
-
NftId bundleNftId
|
39
|
+
NftId bundleNftId,
|
40
|
+
ReferralId referralId
|
23
41
|
)
|
24
42
|
external
|
25
43
|
returns(NftId nftId)
|
26
44
|
{
|
45
|
+
RiskId riskId = getDefaultRiskId();
|
46
|
+
bytes memory applicationData = "";
|
47
|
+
|
48
|
+
if (!defaultRiskCreated) {
|
49
|
+
_createRisk(riskId, "");
|
50
|
+
defaultRiskCreated = true;
|
51
|
+
}
|
52
|
+
|
27
53
|
nftId = _createApplication(
|
28
54
|
msg.sender, // policy holder
|
55
|
+
riskId,
|
29
56
|
sumInsuredAmount,
|
30
|
-
premiumAmount,
|
31
57
|
lifetime,
|
32
|
-
|
58
|
+
applicationData,
|
59
|
+
bundleNftId,
|
60
|
+
referralId
|
33
61
|
);
|
34
62
|
}
|
35
63
|
|
@@ -1,10 +1,10 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.19;
|
3
3
|
|
4
|
-
import {RoleId,
|
4
|
+
import {RoleId, RoleIdLib, PRODUCT_OWNER_ROLE_NAME, PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE_NAME, POOL_OWNER_ROLE} from "../../contracts/types/RoleId.sol";
|
5
5
|
|
6
6
|
contract TestRoleId {
|
7
|
-
function getRole(string memory roleName) external pure returns (RoleId) { return toRoleId(roleName); }
|
7
|
+
function getRole(string memory roleName) external pure returns (RoleId) { return RoleIdLib.toRoleId(roleName); }
|
8
8
|
|
9
9
|
function getProductOwnerRoleName() external pure returns (string memory) { return PRODUCT_OWNER_ROLE_NAME(); }
|
10
10
|
function getProductOwnerRole() external pure returns (RoleId) { return PRODUCT_OWNER_ROLE(); }
|
@@ -3,7 +3,7 @@ pragma solidity ^0.8.19;
|
|
3
3
|
|
4
4
|
import {NftId} from "../../contracts/types/NftId.sol";
|
5
5
|
import {Version, VersionLib} from "../../contracts/types/Version.sol";
|
6
|
-
import {ServiceBase} from "../../contracts/instance/
|
6
|
+
import {ServiceBase} from "../../contracts/instance/base/ServiceBase.sol";
|
7
7
|
|
8
8
|
import {IVersionable} from "../../contracts/shared/IVersionable.sol";
|
9
9
|
import {Versionable} from "../../contracts/shared/Versionable.sol";
|
package/contracts/types/Fee.sol
CHANGED
@@ -11,8 +11,8 @@ struct Fee {
|
|
11
11
|
library FeeLib {
|
12
12
|
|
13
13
|
function calculateFee(
|
14
|
-
|
15
|
-
|
14
|
+
Fee memory fee,
|
15
|
+
uint256 amount
|
16
16
|
)
|
17
17
|
public
|
18
18
|
pure
|
@@ -35,7 +35,12 @@ library FeeLib {
|
|
35
35
|
return Fee(fractionalFee, fixedFee);
|
36
36
|
}
|
37
37
|
|
38
|
-
/// @dev Return the
|
38
|
+
/// @dev Return the percent fee struct (x%, 0)
|
39
|
+
function percentageFee(uint8 percent) public pure returns (Fee memory fee) {
|
40
|
+
return Fee(UFixedMathLib.toUFixed(percent, -2), 0);
|
41
|
+
}
|
42
|
+
|
43
|
+
/// @dev Return a zero fee struct (0, 0)
|
39
44
|
function zeroFee() public pure returns (Fee memory fee) {
|
40
45
|
return Fee(UFixed.wrap(0), 0);
|
41
46
|
}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {ObjectType} from "./ObjectType.sol";
|
5
|
+
|
6
|
+
type Key32 is bytes32;
|
7
|
+
type KeyId is bytes31;
|
8
|
+
|
9
|
+
// type bindings
|
10
|
+
using {
|
11
|
+
eqKey32 as ==,
|
12
|
+
neKey32 as !=,
|
13
|
+
Key32Lib.toKey
|
14
|
+
} for Key32 global;
|
15
|
+
|
16
|
+
// @dev Returns true iff keys are identical
|
17
|
+
function eqKey32(Key32 a, Key32 b) pure returns (bool isSame) {
|
18
|
+
return Key32.unwrap(a) == Key32.unwrap(b);
|
19
|
+
}
|
20
|
+
|
21
|
+
// @dev Returns true iff keys are different
|
22
|
+
function neKey32(Key32 a, Key32 b) pure returns (bool isDifferent) {
|
23
|
+
return Key32.unwrap(a) != Key32.unwrap(b);
|
24
|
+
}
|
25
|
+
|
26
|
+
library Key32Lib {
|
27
|
+
|
28
|
+
uint8 public constant TYPE_SHIFT = 31 * 8;
|
29
|
+
uint8 public constant ID_SHIFT = uint8(32 * 8 - TYPE_SHIFT);
|
30
|
+
bytes32 public constant TYPE_MASK = bytes32(bytes1(type(uint8).max)); // first byte in bytes32
|
31
|
+
bytes32 public constant ID_MASK = bytes32(~TYPE_MASK); // remaining bytes in bytes32
|
32
|
+
|
33
|
+
function toKey32(ObjectType objectType, KeyId id) public pure returns (Key32) {
|
34
|
+
uint256 uintObjectType = ObjectType.unwrap(objectType);
|
35
|
+
uint256 uintId = uint248(KeyId.unwrap(id));
|
36
|
+
uint256 uintKey = (uintObjectType << TYPE_SHIFT) + uintId;
|
37
|
+
return Key32.wrap(bytes32(uintKey));
|
38
|
+
}
|
39
|
+
|
40
|
+
function toKey(Key32 key) public pure returns (ObjectType objectType, KeyId id) {
|
41
|
+
bytes32 key32 = Key32.unwrap(key);
|
42
|
+
objectType = ObjectType.wrap(uint8(uint256(key32 & TYPE_MASK) >> TYPE_SHIFT));
|
43
|
+
id = KeyId.wrap(bytes31((key32 & ID_MASK) << ID_SHIFT));
|
44
|
+
}
|
45
|
+
}
|
@@ -1,6 +1,9 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.19;
|
3
3
|
|
4
|
+
import {Key32, KeyId, Key32Lib} from "./Key32.sol";
|
5
|
+
import {ObjectType} from "./ObjectType.sol";
|
6
|
+
|
4
7
|
// uint96 allows for chain ids up to 13 digits
|
5
8
|
type NftId is uint96;
|
6
9
|
|
@@ -10,7 +13,9 @@ using {
|
|
10
13
|
neNftId as !=,
|
11
14
|
NftIdLib.toInt,
|
12
15
|
NftIdLib.gtz,
|
13
|
-
NftIdLib.eqz
|
16
|
+
NftIdLib.eqz,
|
17
|
+
NftIdLib.toKeyId,
|
18
|
+
NftIdLib.toKey32
|
14
19
|
} for NftId global;
|
15
20
|
|
16
21
|
// general pure free functions
|
@@ -54,4 +59,14 @@ library NftIdLib {
|
|
54
59
|
function eq(NftId a, NftId b) public pure returns (bool isSame) {
|
55
60
|
return eqNftId(a, b);
|
56
61
|
}
|
62
|
+
|
63
|
+
/// @dev Returns the key32 value for the specified nft id and object type.
|
64
|
+
function toKey32(NftId id, ObjectType objectType) public pure returns (Key32 key) {
|
65
|
+
return Key32Lib.toKey32(objectType, toKeyId(id));
|
66
|
+
}
|
67
|
+
|
68
|
+
/// @dev Returns the key id value for the specified nft id
|
69
|
+
function toKeyId(NftId id) public pure returns (KeyId keyId) {
|
70
|
+
return KeyId.wrap(bytes31(uint248(NftId.unwrap(id))));
|
71
|
+
}
|
57
72
|
}
|
@@ -37,36 +37,52 @@ function STAKE() pure returns (ObjectType) {
|
|
37
37
|
return toObjectType(60);
|
38
38
|
}
|
39
39
|
|
40
|
-
function
|
40
|
+
function COMPONENT() pure returns (ObjectType) {
|
41
41
|
return toObjectType(100);
|
42
42
|
}
|
43
43
|
|
44
|
-
function
|
44
|
+
function TREASURY() pure returns (ObjectType) {
|
45
|
+
return toObjectType(101);
|
46
|
+
}
|
47
|
+
|
48
|
+
function PRODUCT() pure returns (ObjectType) {
|
45
49
|
return toObjectType(110);
|
46
50
|
}
|
47
51
|
|
48
|
-
function
|
52
|
+
function DISTRIBUTION() pure returns (ObjectType) {
|
49
53
|
return toObjectType(120);
|
50
54
|
}
|
51
55
|
|
52
|
-
function
|
56
|
+
function ORACLE() pure returns (ObjectType) {
|
53
57
|
return toObjectType(130);
|
54
58
|
}
|
55
59
|
|
56
|
-
function
|
60
|
+
function POOL() pure returns (ObjectType) {
|
61
|
+
return toObjectType(140);
|
62
|
+
}
|
63
|
+
|
64
|
+
function RISK() pure returns (ObjectType) {
|
57
65
|
return toObjectType(200);
|
58
66
|
}
|
59
67
|
|
60
|
-
function
|
68
|
+
function POLICY() pure returns (ObjectType) {
|
61
69
|
return toObjectType(210);
|
62
70
|
}
|
63
71
|
|
72
|
+
function REFERRAL() pure returns (ObjectType) {
|
73
|
+
return toObjectType(212);
|
74
|
+
}
|
75
|
+
|
64
76
|
function CLAIM() pure returns (ObjectType) {
|
65
|
-
return toObjectType(
|
77
|
+
return toObjectType(214);
|
66
78
|
}
|
67
79
|
|
68
80
|
function PAYOUT() pure returns (ObjectType) {
|
69
|
-
return toObjectType(
|
81
|
+
return toObjectType(216);
|
82
|
+
}
|
83
|
+
|
84
|
+
function BUNDLE() pure returns (ObjectType) {
|
85
|
+
return toObjectType(220);
|
70
86
|
}
|
71
87
|
|
72
88
|
/// @dev Converts the uint8 to a ObjectType.
|
@@ -0,0 +1,48 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {Key32, KeyId, Key32Lib} from "./Key32.sol";
|
5
|
+
import {REFERRAL} from "./ObjectType.sol";
|
6
|
+
|
7
|
+
type ReferralId is bytes8;
|
8
|
+
|
9
|
+
// type bindings
|
10
|
+
using {
|
11
|
+
eqReferralId as ==,
|
12
|
+
neReferralId as !=,
|
13
|
+
ReferralIdLib.toKey32
|
14
|
+
} for ReferralId global;
|
15
|
+
|
16
|
+
// general pure free functions
|
17
|
+
|
18
|
+
// @dev Returns true iff risk ids a and b are identical
|
19
|
+
function eqReferralId(ReferralId a, ReferralId b) pure returns (bool isSame) {
|
20
|
+
return ReferralId.unwrap(a) == ReferralId.unwrap(b);
|
21
|
+
}
|
22
|
+
|
23
|
+
// @dev Returns true iff risk ids a and b are different
|
24
|
+
function neReferralId(ReferralId a, ReferralId b) pure returns (bool isDifferent) {
|
25
|
+
return ReferralId.unwrap(a) != ReferralId.unwrap(b);
|
26
|
+
}
|
27
|
+
|
28
|
+
library ReferralIdLib {
|
29
|
+
|
30
|
+
function zeroReferralId() public pure returns (ReferralId) {
|
31
|
+
return ReferralId.wrap(bytes8(0));
|
32
|
+
}
|
33
|
+
|
34
|
+
// @dev Converts a role string into a role id.
|
35
|
+
function toReferralId(string memory referral) public pure returns (ReferralId) {
|
36
|
+
return ReferralId.wrap(bytes8(keccak256(abi.encode(referral))));
|
37
|
+
}
|
38
|
+
|
39
|
+
/// @dev Returns the key32 value for the specified id
|
40
|
+
function toKey32(ReferralId id) public pure returns (Key32 key) {
|
41
|
+
return Key32Lib.toKey32(REFERRAL(), toKeyId(id));
|
42
|
+
}
|
43
|
+
|
44
|
+
/// @dev Returns the key id value for the specified id
|
45
|
+
function toKeyId(ReferralId id) public pure returns (KeyId keyId) {
|
46
|
+
return KeyId.wrap(bytes31(ReferralId.unwrap(id)));
|
47
|
+
}
|
48
|
+
}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.19;
|
3
|
+
|
4
|
+
import {Key32, KeyId, Key32Lib} from "./Key32.sol";
|
5
|
+
import {RISK} from "./ObjectType.sol";
|
6
|
+
|
7
|
+
type RiskId is bytes8;
|
8
|
+
|
9
|
+
// type bindings
|
10
|
+
using {
|
11
|
+
eqRiskId as ==,
|
12
|
+
neRiskId as !=,
|
13
|
+
RiskIdLib.toKey32
|
14
|
+
} for RiskId global;
|
15
|
+
|
16
|
+
// general pure free functions
|
17
|
+
|
18
|
+
// @dev Returns true iff risk ids a and b are identical
|
19
|
+
function eqRiskId(RiskId a, RiskId b) pure returns (bool isSame) {
|
20
|
+
return RiskId.unwrap(a) == RiskId.unwrap(b);
|
21
|
+
}
|
22
|
+
|
23
|
+
// @dev Returns true iff risk ids a and b are different
|
24
|
+
function neRiskId(RiskId a, RiskId b) pure returns (bool isDifferent) {
|
25
|
+
return RiskId.unwrap(a) != RiskId.unwrap(b);
|
26
|
+
}
|
27
|
+
|
28
|
+
library RiskIdLib {
|
29
|
+
// @dev Converts a role string into a role id.
|
30
|
+
function toRiskId(string memory risk) public pure returns (RiskId) {
|
31
|
+
return RiskId.wrap(bytes8(keccak256(abi.encode(risk))));
|
32
|
+
}
|
33
|
+
|
34
|
+
/// @dev Returns the key32 value for the specified nft id and object type.
|
35
|
+
function toKey32(RiskId id) public pure returns (Key32 key) {
|
36
|
+
return Key32Lib.toKey32(RISK(), toKeyId(id));
|
37
|
+
}
|
38
|
+
|
39
|
+
/// @dev Returns the key id value for the specified nft id
|
40
|
+
function toKeyId(RiskId id) public pure returns (KeyId keyId) {
|
41
|
+
return KeyId.wrap(bytes31(RiskId.unwrap(id)));
|
42
|
+
}
|
43
|
+
}
|
@@ -10,20 +10,15 @@ using {
|
|
10
10
|
} for RoleId global;
|
11
11
|
|
12
12
|
// general pure free functions
|
13
|
-
function
|
13
|
+
function DISTRIBUTION_OWNER_ROLE_NAME() pure returns (string memory) { return "DistributionOwnerRole"; }
|
14
14
|
function ORACLE_OWNER_ROLE_NAME() pure returns (string memory) { return "OracleOwnerRole"; }
|
15
15
|
function POOL_OWNER_ROLE_NAME() pure returns (string memory) { return "PoolOwnerRole"; }
|
16
16
|
function PRODUCT_OWNER_ROLE_NAME() pure returns (string memory) { return "ProductOwnerRole"; }
|
17
17
|
|
18
|
-
function
|
19
|
-
function ORACLE_OWNER_ROLE() pure returns (RoleId) { return toRoleId("OracleOwnerRole"); }
|
20
|
-
function POOL_OWNER_ROLE() pure returns (RoleId) { return toRoleId("PoolOwnerRole"); }
|
21
|
-
function PRODUCT_OWNER_ROLE() pure returns (RoleId) { return toRoleId("ProductOwnerRole"); }
|
22
|
-
|
23
|
-
// @dev Converts a role string into a role id.
|
24
|
-
function toRoleId(string memory role) pure returns (RoleId) {
|
25
|
-
return RoleId.wrap(bytes8(keccak256(abi.encode(role))));
|
26
|
-
}
|
18
|
+
function DISTRIBUTION_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId("DistributionOwnerRole"); }
|
19
|
+
function ORACLE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId("OracleOwnerRole"); }
|
20
|
+
function POOL_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId("PoolOwnerRole"); }
|
21
|
+
function PRODUCT_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId("ProductOwnerRole"); }
|
27
22
|
|
28
23
|
// @dev Returns true iff role ids a and b are identical
|
29
24
|
function eqRoleId(RoleId a, RoleId b) pure returns (bool isSame) {
|
@@ -34,3 +29,10 @@ function eqRoleId(RoleId a, RoleId b) pure returns (bool isSame) {
|
|
34
29
|
function neRoleId(RoleId a, RoleId b) pure returns (bool isDifferent) {
|
35
30
|
return RoleId.unwrap(a) != RoleId.unwrap(b);
|
36
31
|
}
|
32
|
+
|
33
|
+
library RoleIdLib {
|
34
|
+
// @dev Converts a role string into a role id.
|
35
|
+
function toRoleId(string memory role) public pure returns (RoleId) {
|
36
|
+
return RoleId.wrap(bytes8(keccak256(abi.encode(role))));
|
37
|
+
}
|
38
|
+
}
|
@@ -5,7 +5,13 @@ pragma solidity ^0.8.19;
|
|
5
5
|
type StateId is uint8;
|
6
6
|
|
7
7
|
// type bindings
|
8
|
-
using {
|
8
|
+
using {
|
9
|
+
eqStateId as ==,
|
10
|
+
neStateId as !=,
|
11
|
+
StateIdLib.eqz,
|
12
|
+
StateIdLib.gtz,
|
13
|
+
StateIdLib.toInt
|
14
|
+
} for StateId global;
|
9
15
|
|
10
16
|
// general pure free functions
|
11
17
|
function APPLIED() pure returns (StateId) {
|
@@ -23,6 +23,7 @@ using {
|
|
23
23
|
versionGt as >,
|
24
24
|
versionEq as ==,
|
25
25
|
VersionLib.toInt,
|
26
|
+
VersionLib.toUint64,
|
26
27
|
VersionLib.toMajorPart,
|
27
28
|
VersionLib.toVersionParts
|
28
29
|
}
|
@@ -34,6 +35,8 @@ function versionEq(Version a, Version b) pure returns(bool isSame) { return Vers
|
|
34
35
|
library VersionLib {
|
35
36
|
function toInt(Version version) external pure returns(uint) { return Version.unwrap(version); }
|
36
37
|
|
38
|
+
function toUint64(Version version) external pure returns(uint64) { return Version.unwrap(version); }
|
39
|
+
|
37
40
|
function toMajorPart(Version version)
|
38
41
|
external
|
39
42
|
pure
|
@@ -89,6 +92,11 @@ library VersionLib {
|
|
89
92
|
(major << 16) + (minor << 8) + patch));
|
90
93
|
}
|
91
94
|
|
95
|
+
// TODO check for overflow?
|
96
|
+
function toVersion(uint64 versionNumber) external pure returns(Version) {
|
97
|
+
return Version.wrap(uint24(versionNumber));
|
98
|
+
}
|
99
|
+
|
92
100
|
function zeroVersion() external pure returns(Version) {
|
93
101
|
return Version.wrap(0);
|
94
102
|
}
|
package/package.json
CHANGED
@@ -1,50 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"_format": "hh-sol-artifact-1",
|
3
|
-
"contractName": "IServiceLinked",
|
4
|
-
"sourceName": "contracts/instance/IServiceLinked.sol",
|
5
|
-
"abi": [
|
6
|
-
{
|
7
|
-
"inputs": [],
|
8
|
-
"name": "getComponentOwnerService",
|
9
|
-
"outputs": [
|
10
|
-
{
|
11
|
-
"internalType": "contract IComponentOwnerService",
|
12
|
-
"name": "service",
|
13
|
-
"type": "address"
|
14
|
-
}
|
15
|
-
],
|
16
|
-
"stateMutability": "view",
|
17
|
-
"type": "function"
|
18
|
-
},
|
19
|
-
{
|
20
|
-
"inputs": [],
|
21
|
-
"name": "getPoolService",
|
22
|
-
"outputs": [
|
23
|
-
{
|
24
|
-
"internalType": "contract IPoolService",
|
25
|
-
"name": "service",
|
26
|
-
"type": "address"
|
27
|
-
}
|
28
|
-
],
|
29
|
-
"stateMutability": "view",
|
30
|
-
"type": "function"
|
31
|
-
},
|
32
|
-
{
|
33
|
-
"inputs": [],
|
34
|
-
"name": "getProductService",
|
35
|
-
"outputs": [
|
36
|
-
{
|
37
|
-
"internalType": "contract IProductService",
|
38
|
-
"name": "service",
|
39
|
-
"type": "address"
|
40
|
-
}
|
41
|
-
],
|
42
|
-
"stateMutability": "view",
|
43
|
-
"type": "function"
|
44
|
-
}
|
45
|
-
],
|
46
|
-
"bytecode": "0x",
|
47
|
-
"deployedBytecode": "0x",
|
48
|
-
"linkReferences": {},
|
49
|
-
"deployedLinkReferences": {}
|
50
|
-
}
|