@etherisc/gif-next 0.0.2-d3ee0cc-268 → 0.0.2-d408403-475

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.
Files changed (217) hide show
  1. package/README.md +38 -11
  2. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +1 -1
  3. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +4 -0
  4. package/artifacts/contracts/components/Distribution.sol/Distribution.json +405 -0
  5. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +1 -1
  6. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  7. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +340 -0
  8. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  9. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +131 -0
  10. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  11. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +109 -18
  12. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +1 -1
  13. package/artifacts/contracts/components/Pool.sol/Pool.json +194 -3
  14. package/artifacts/contracts/components/Product.sol/Product.dbg.json +1 -1
  15. package/artifacts/contracts/components/Product.sol/Product.json +160 -21
  16. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +1 -1
  17. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +1 -1
  18. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +1 -1
  19. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +1 -1
  20. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +1 -1
  21. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +1 -1
  22. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +1 -1
  23. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +1 -1
  24. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +1 -1
  25. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +1 -1
  26. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +1 -1
  27. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +2 -2
  28. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +1 -1
  29. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +1 -1
  30. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +1 -1
  31. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +1 -1
  32. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +1 -1
  33. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +1 -1
  34. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  35. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +592 -451
  36. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +1 -1
  37. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  38. package/artifacts/contracts/instance/Instance.sol/Instance.json +735 -506
  39. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +1 -1
  40. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +1 -1
  41. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +50 -0
  42. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  43. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.json +49 -0
  44. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  45. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +1 -1
  46. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +1 -1
  47. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.json +50 -0
  48. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  49. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +41 -23
  50. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  51. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +4 -4
  52. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +1 -1
  53. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +1 -1
  54. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +1 -1
  55. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +1 -1
  56. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +1 -1
  57. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +1 -1
  58. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +55 -54
  59. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +1 -1
  60. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +1 -1
  61. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +56 -55
  62. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +1 -1
  63. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +22 -93
  64. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +1 -1
  65. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +22 -93
  67. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +4 -0
  68. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +10 -0
  69. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +4 -0
  70. package/artifacts/contracts/instance/module/{compensation/ICompensation.sol/ICompensation.json → distribution/IDistribution.sol/IDistribution.json} +2 -2
  71. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +4 -0
  72. package/artifacts/contracts/instance/module/{compensation/ICompensation.sol/ICompensationModule.json → distribution/IDistribution.sol/IDistributionModule.json} +2 -2
  73. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +1 -1
  74. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +1 -1
  75. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +61 -38
  76. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +1 -1
  77. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +61 -38
  78. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +1 -1
  79. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +1 -1
  80. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -5
  81. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +1 -1
  82. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -5
  83. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +1 -1
  84. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +1 -1
  85. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +104 -1
  86. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +1 -1
  87. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +126 -5
  88. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +1 -1
  89. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +1 -1
  90. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +209 -231
  91. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  92. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +2 -2
  93. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +1 -1
  94. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +209 -231
  95. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +1 -1
  96. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +55 -15
  97. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +4 -0
  98. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +420 -0
  99. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +1 -1
  100. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  101. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +325 -0
  102. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +1 -1
  103. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +64 -0
  104. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +1 -1
  105. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.json +160 -7
  106. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +1 -1
  107. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +84 -12
  108. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +1 -1
  109. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +216 -31
  110. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  111. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +1 -1
  112. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  113. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  114. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  115. package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
  116. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  117. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +1 -1
  118. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  119. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  120. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  121. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  122. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +4 -0
  123. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +405 -0
  124. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +1 -1
  125. package/artifacts/contracts/test/TestFee.sol/TestFee.json +2 -2
  126. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +1 -1
  127. package/artifacts/contracts/test/TestPool.sol/TestPool.json +194 -3
  128. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +1 -1
  129. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +209 -27
  130. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +1 -1
  131. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +2 -2
  132. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +1 -1
  133. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +38 -4
  134. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +1 -1
  135. package/artifacts/contracts/test/TestService.sol/TestService.json +2 -2
  136. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +1 -1
  137. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +1 -1
  138. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +1 -1
  139. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +1 -1
  140. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  141. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  142. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +1 -1
  143. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +1 -1
  144. package/artifacts/contracts/types/Fee.sol/FeeLib.json +50 -11
  145. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +1 -1
  146. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +2 -2
  147. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +1 -1
  148. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +2 -2
  149. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  150. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +2 -2
  151. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  152. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +2 -2
  153. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +4 -0
  154. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +99 -0
  155. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +4 -0
  156. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +86 -0
  157. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +4 -0
  158. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +30 -0
  159. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +1 -1
  160. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +1 -1
  161. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +1 -1
  162. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +1 -1
  163. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +1 -1
  164. package/contracts/components/BaseComponent.sol +7 -1
  165. package/contracts/components/Distribution.sol +132 -0
  166. package/contracts/components/IDistributionComponent.sol +48 -0
  167. package/contracts/components/IPoolComponent.sol +14 -0
  168. package/contracts/components/IProductComponent.sol +24 -5
  169. package/contracts/components/Pool.sol +64 -3
  170. package/contracts/components/Product.sol +123 -13
  171. package/contracts/instance/IInstance.sol +7 -6
  172. package/contracts/instance/Instance.sol +12 -6
  173. package/contracts/instance/base/IInstanceBase.sol +8 -0
  174. package/contracts/instance/base/IKeyValueStore.sol +4 -3
  175. package/contracts/instance/base/InstanceBase.sol +13 -2
  176. package/contracts/instance/base/KeyValueStore.sol +12 -7
  177. package/contracts/instance/base/Lifecycle.sol +15 -10
  178. package/contracts/instance/base/ModuleBase.sol +22 -17
  179. package/contracts/instance/module/access/Access.sol +6 -6
  180. package/contracts/instance/module/bundle/BundleModule.sol +10 -12
  181. package/contracts/instance/module/bundle/IBundle.sol +6 -11
  182. package/contracts/instance/module/component/ComponentModule.sol +29 -54
  183. package/contracts/instance/module/component/IComponent.sol +5 -30
  184. package/contracts/instance/module/distribution/DistributionModule.sol +17 -0
  185. package/contracts/instance/module/distribution/IDistribution.sol +10 -0
  186. package/contracts/instance/module/policy/IPolicy.sol +12 -9
  187. package/contracts/instance/module/policy/PolicyModule.sol +35 -20
  188. package/contracts/instance/module/pool/IPoolModule.sol +0 -1
  189. package/contracts/instance/module/pool/PoolModule.sol +12 -9
  190. package/contracts/instance/module/risk/IRisk.sol +18 -2
  191. package/contracts/instance/module/risk/RiskModule.sol +56 -2
  192. package/contracts/instance/module/treasury/ITreasury.sol +29 -50
  193. package/contracts/instance/module/treasury/TreasuryModule.sol +71 -85
  194. package/contracts/instance/service/ComponentOwnerService.sol +29 -42
  195. package/contracts/instance/service/DistributionService.sol +59 -0
  196. package/contracts/instance/service/IDistributionService.sol +12 -0
  197. package/contracts/instance/service/IPoolService.sol +7 -0
  198. package/contracts/instance/service/IProductService.sol +56 -7
  199. package/contracts/instance/service/PoolService.sol +30 -4
  200. package/contracts/instance/service/ProductService.sol +230 -75
  201. package/contracts/registry/Registry.sol +3 -2
  202. package/contracts/test/TestDistribution.sol +21 -0
  203. package/contracts/test/TestPool.sol +5 -2
  204. package/contracts/test/TestProduct.sol +35 -7
  205. package/contracts/test/TestRoleId.sol +2 -2
  206. package/contracts/types/Fee.sol +8 -3
  207. package/contracts/types/ObjectType.sol +24 -8
  208. package/contracts/types/ReferralId.sol +48 -0
  209. package/contracts/types/RiskId.sol +43 -0
  210. package/contracts/types/RoleId.sol +12 -10
  211. package/package.json +1 -1
  212. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  213. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  214. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  215. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  216. package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
  217. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
@@ -37,36 +37,52 @@ function STAKE() pure returns (ObjectType) {
37
37
  return toObjectType(60);
38
38
  }
39
39
 
40
- function PRODUCT() pure returns (ObjectType) {
40
+ function COMPONENT() pure returns (ObjectType) {
41
41
  return toObjectType(100);
42
42
  }
43
43
 
44
- function DISTRIBUTOR() pure returns (ObjectType) {
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 ORACLE() pure returns (ObjectType) {
52
+ function DISTRIBUTION() pure returns (ObjectType) {
49
53
  return toObjectType(120);
50
54
  }
51
55
 
52
- function POOL() pure returns (ObjectType) {
56
+ function ORACLE() pure returns (ObjectType) {
53
57
  return toObjectType(130);
54
58
  }
55
59
 
56
- function POLICY() pure returns (ObjectType) {
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 BUNDLE() pure returns (ObjectType) {
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(201);
77
+ return toObjectType(214);
66
78
  }
67
79
 
68
80
  function PAYOUT() pure returns (ObjectType) {
69
- return toObjectType(202);
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 DISTRIBUTOR_OWNER_ROLE_NAME() pure returns (string memory) { return "DistributorOwnerRole"; }
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 DISTRIBUTOR_OWNER_ROLE() pure returns (RoleId) { return toRoleId("DistributorOwnerRole"); }
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
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@etherisc/gif-next",
3
- "version": "0.0.2-d3ee0cc-268",
3
+ "version": "0.0.2-d408403-475",
4
4
  "description": "This is the repository for the next version of the Generic Insurance Framework (GIF) smart contracts. ",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/a0be93f6846b412966dd52d34bc4f9b2.json"
4
- }
@@ -1,10 +0,0 @@
1
- {
2
- "_format": "hh-sol-artifact-1",
3
- "contractName": "CompensationModule",
4
- "sourceName": "contracts/instance/module/compensation/CompensationModule.sol",
5
- "abi": [],
6
- "bytecode": "0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea2646970667358221220e083bd536daa38f4ab2da87a47489460180ca9e737890e3707e2279d6bddbb1d64736f6c63430008140033",
7
- "deployedBytecode": "0x6080604052600080fdfea2646970667358221220e083bd536daa38f4ab2da87a47489460180ca9e737890e3707e2279d6bddbb1d64736f6c63430008140033",
8
- "linkReferences": {},
9
- "deployedLinkReferences": {}
10
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/a0be93f6846b412966dd52d34bc4f9b2.json"
4
- }
@@ -1,4 +0,0 @@
1
- {
2
- "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/a0be93f6846b412966dd52d34bc4f9b2.json"
4
- }
@@ -1,8 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- import {ICompensationModule} from "./ICompensation.sol";
5
-
6
- contract CompensationModule is ICompensationModule {
7
-
8
- }
@@ -1,10 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
3
-
4
- interface ICompensation {
5
-
6
- }
7
-
8
- interface ICompensationModule is ICompensation {
9
-
10
- }