@indigo-labs/indigo-sdk 0.1.19 → 0.1.21

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 (135) hide show
  1. package/.github/workflows/ci.yml +8 -3
  2. package/dist/index.d.mts +1298 -677
  3. package/dist/index.d.ts +1298 -677
  4. package/dist/index.js +4650 -2217
  5. package/dist/index.mjs +4592 -2192
  6. package/eslint.config.mjs +7 -1
  7. package/package.json +9 -4
  8. package/src/contracts/cdp/helpers.ts +167 -0
  9. package/src/contracts/cdp/scripts.ts +33 -0
  10. package/src/contracts/cdp/transactions.ts +1310 -0
  11. package/src/contracts/cdp/types.ts +161 -0
  12. package/src/contracts/cdp-creator/scripts.ts +39 -0
  13. package/src/{types/indigo/cdp-creator.ts → contracts/cdp-creator/types.ts} +6 -4
  14. package/src/contracts/collector/scripts.ts +32 -0
  15. package/src/contracts/collector/transactions.ts +44 -0
  16. package/src/contracts/execute/scripts.ts +48 -0
  17. package/src/contracts/execute/types.ts +57 -0
  18. package/src/contracts/gov/helpers.ts +157 -0
  19. package/src/contracts/gov/scripts.ts +34 -0
  20. package/src/contracts/gov/transactions.ts +1224 -0
  21. package/src/contracts/gov/types-new.ts +115 -0
  22. package/src/contracts/gov/types.ts +89 -0
  23. package/src/{helpers/interest-oracle.ts → contracts/interest-oracle/helpers.ts} +37 -9
  24. package/src/contracts/interest-oracle/scripts.ts +18 -0
  25. package/src/contracts/interest-oracle/transactions.ts +149 -0
  26. package/src/{types/indigo/interest-oracle.ts → contracts/interest-oracle/types.ts} +1 -1
  27. package/src/contracts/lrp/scripts.ts +27 -0
  28. package/src/contracts/{lrp.ts → lrp/transactions.ts} +23 -23
  29. package/src/{types/indigo/lrp.ts → contracts/lrp/types.ts} +3 -3
  30. package/src/{scripts/one-shot-policy.ts → contracts/one-shot/scripts.ts} +1 -1
  31. package/src/contracts/{one-shot.ts → one-shot/transactions.ts} +3 -3
  32. package/src/contracts/poll/helpers.ts +55 -0
  33. package/src/contracts/poll/scripts.ts +72 -0
  34. package/src/contracts/poll/types-poll-manager.ts +38 -0
  35. package/src/contracts/poll/types-poll-shard.ts +38 -0
  36. package/src/contracts/poll/types-poll.ts +88 -0
  37. package/src/{scripts/price-oracle-validator.ts → contracts/price-oracle/scripts.ts} +1 -4
  38. package/src/contracts/price-oracle/transactions.ts +112 -0
  39. package/src/{types/indigo/price-oracle.ts → contracts/price-oracle/types.ts} +16 -4
  40. package/src/{helpers/stability-pool-helpers.ts → contracts/stability-pool/helpers.ts} +110 -6
  41. package/src/contracts/stability-pool/scripts.ts +46 -0
  42. package/src/contracts/stability-pool/transactions.ts +660 -0
  43. package/src/contracts/stability-pool/types-new.ts +208 -0
  44. package/src/contracts/stability-pool/types.ts +42 -0
  45. package/src/contracts/staking/helpers.ts +116 -0
  46. package/src/contracts/staking/scripts.ts +41 -0
  47. package/src/contracts/staking/transactions.ts +268 -0
  48. package/src/contracts/staking/types-new.ts +81 -0
  49. package/src/contracts/staking/types.ts +41 -0
  50. package/src/contracts/treasury/scripts.ts +37 -0
  51. package/src/contracts/treasury/transactions.ts +44 -0
  52. package/src/contracts/treasury/types.ts +55 -0
  53. package/src/contracts/version-registry/scripts.ts +29 -0
  54. package/src/contracts/version-registry/types-new.ts +19 -0
  55. package/src/{types/indigo/version-record.ts → contracts/version-registry/types.ts} +1 -1
  56. package/src/contracts/vesting/helpers.ts +267 -0
  57. package/src/index.ts +38 -33
  58. package/src/types/evolution-schema-options.ts +16 -0
  59. package/src/types/generic.ts +78 -60
  60. package/src/types/on-chain-decimal.ts +22 -0
  61. package/src/types/system-params.ts +22 -11
  62. package/src/utils/bigint-utils.ts +7 -0
  63. package/src/{helpers → utils}/helper-txs.ts +1 -0
  64. package/src/utils/time-helpers.ts +4 -0
  65. package/src/{helpers/helpers.ts → utils/utils.ts} +0 -10
  66. package/src/{helpers → utils}/value-helpers.ts +10 -0
  67. package/src/{scripts → validators}/cdp-creator-validator.ts +4 -50
  68. package/src/{scripts → validators}/cdp-validator.ts +3 -5
  69. package/src/{scripts → validators}/collector-validator.ts +2 -3
  70. package/src/{scripts/version-registry.ts → validators/execute-validator.ts} +3 -11
  71. package/src/{scripts/gov-validator.ts → validators/governance-validator.ts} +3 -40
  72. package/src/{scripts → validators}/interest-oracle-validator.ts +4 -20
  73. package/src/validators/lrp-validator.ts +7 -0
  74. package/src/validators/poll-manager-validator.ts +7 -0
  75. package/src/{scripts → validators}/poll-shard-validator.ts +3 -43
  76. package/src/{scripts → validators}/stability-pool-validator.ts +4 -57
  77. package/src/{scripts → validators}/staking-validator.ts +2 -3
  78. package/src/{scripts → validators}/treasury-validator.ts +2 -3
  79. package/src/{scripts → validators}/version-record-policy.ts +4 -23
  80. package/src/validators/version-registry-validator.ts +7 -0
  81. package/tests/cdp.test.ts +1565 -0
  82. package/tests/datums.test.ts +125 -108
  83. package/tests/endpoints/initialize.ts +240 -338
  84. package/tests/gov.test.ts +1874 -0
  85. package/tests/hash-checks.test.ts +26 -21
  86. package/tests/indigo-test-helpers.ts +1 -55
  87. package/tests/initialize.test.ts +10 -5
  88. package/tests/interest-calculations.test.ts +18 -18
  89. package/tests/interest-oracle.test.ts +20 -18
  90. package/tests/lrp.test.ts +180 -78
  91. package/tests/mock/assets-mock.ts +59 -0
  92. package/tests/queries/cdp-queries.ts +144 -0
  93. package/tests/queries/collector-queries.ts +26 -0
  94. package/tests/queries/execute-queries.ts +46 -0
  95. package/tests/queries/governance-queries.ts +19 -16
  96. package/tests/queries/iasset-queries.ts +46 -23
  97. package/tests/queries/interest-oracle-queries.ts +3 -6
  98. package/tests/queries/lrp-queries.ts +2 -2
  99. package/tests/queries/poll-queries.ts +97 -0
  100. package/tests/queries/price-oracle-queries.ts +5 -22
  101. package/tests/queries/stability-pool-queries.ts +10 -8
  102. package/tests/queries/staking-queries.ts +28 -19
  103. package/tests/queries/treasury-queries.ts +19 -0
  104. package/tests/stability-pool.test.ts +186 -71
  105. package/tests/staking.test.ts +30 -23
  106. package/tests/test-helpers.ts +11 -2
  107. package/tests/utils/asserts.ts +13 -0
  108. package/tests/utils/index.ts +50 -0
  109. package/tsconfig.json +3 -1
  110. package/vitest.config.ts +1 -1
  111. package/.github/workflows/test.yml +0 -44
  112. package/src/contracts/cdp.ts +0 -748
  113. package/src/contracts/collector.ts +0 -98
  114. package/src/contracts/gov.ts +0 -1
  115. package/src/contracts/interest-oracle.ts +0 -149
  116. package/src/contracts/stability-pool.ts +0 -692
  117. package/src/contracts/staking.ts +0 -348
  118. package/src/contracts/treasury.ts +0 -112
  119. package/src/helpers/asset-helpers.ts +0 -57
  120. package/src/helpers/staking-helpers.ts +0 -94
  121. package/src/helpers/time-helpers.ts +0 -4
  122. package/src/scripts/execute-validator.ts +0 -52
  123. package/src/scripts/lrp-validator.ts +0 -40
  124. package/src/scripts/poll-manager-validator.ts +0 -52
  125. package/src/types/indigo/cdp.ts +0 -88
  126. package/src/types/indigo/execute.ts +0 -21
  127. package/src/types/indigo/gov.ts +0 -51
  128. package/src/types/indigo/poll-manager.ts +0 -21
  129. package/src/types/indigo/poll-shard.ts +0 -16
  130. package/src/types/indigo/stability-pool.ts +0 -233
  131. package/src/types/indigo/staking.ts +0 -99
  132. /package/src/{types/one-shot.ts → contracts/one-shot/types.ts} +0 -0
  133. /package/src/{helpers/price-oracle-helpers.ts → contracts/price-oracle/helpers.ts} +0 -0
  134. /package/src/{helpers → utils}/indigo-helpers.ts +0 -0
  135. /package/src/{helpers → utils}/lucid-utils.ts +0 -0
@@ -2,27 +2,34 @@ import { describe, expect, it } from 'vitest';
2
2
  import {
3
3
  CDPContent,
4
4
  IAssetContent,
5
- parseCDPDatum,
6
- parseIAssetDatum,
5
+ parseIAssetDatumOrThrow,
7
6
  parseInterestOracleDatum,
8
7
  parsePriceOracleDatum,
9
- parseStabilityPoolDatum,
10
- serialiseCDPDatum,
11
8
  serialiseFeedInterestOracleRedeemer,
12
9
  serialiseIAssetDatum,
13
10
  serialiseInterestOracleDatum,
14
11
  serialisePriceOracleDatum,
15
- serialiseStabilityPoolDatum,
16
- StabilityPoolContent,
12
+ serialiseCdpDatum,
13
+ parseCdpDatum,
17
14
  } from '../src/index';
15
+ import { fromHex, fromText } from '@lucid-evolution/lucid';
18
16
  import {
19
17
  parseStakingManagerDatum,
20
- parseStakingPositionDatum,
18
+ parseStakingPositionOrThrow,
21
19
  serialiseStakingDatum,
22
- StakingManagerContent,
23
- StakingPositionContent,
24
- } from '../src/types/indigo/staking';
25
- import { fromText } from '@lucid-evolution/lucid';
20
+ StakingManager,
21
+ StakingPosition,
22
+ } from '../src/contracts/staking/types-new';
23
+ import {
24
+ AccountContent,
25
+ parseAccountDatum,
26
+ parseSnapshotEpochToScaleToSumDatum,
27
+ parseStabilityPoolDatum,
28
+ serialiseStabilityPoolDatum,
29
+ SnapshotEpochToScaleToSumContent,
30
+ StabilityPoolContent,
31
+ } from '../src/contracts/stability-pool/types-new';
32
+ import { option as O } from 'fp-ts';
26
33
 
27
34
  describe('Datum checks', () => {
28
35
  it('Price Oracle', () => {
@@ -83,8 +90,8 @@ describe('Datum checks', () => {
83
90
  },
84
91
  },
85
92
  };
86
- expect(serialiseCDPDatum(activeCDPObject)).toEqual(activeCDPDatum);
87
- expect(parseCDPDatum(activeCDPDatum)).toEqual(activeCDPObject);
93
+ expect(serialiseCdpDatum(activeCDPObject)).toEqual(activeCDPDatum);
94
+ expect(parseCdpDatum(activeCDPDatum)).toEqual(O.some(activeCDPObject));
88
95
 
89
96
  // Frozen CDP
90
97
  const frozenCDPDatum =
@@ -100,8 +107,8 @@ describe('Datum checks', () => {
100
107
  },
101
108
  },
102
109
  };
103
- expect(parseCDPDatum(frozenCDPDatum)).toEqual(frozenCDPObject);
104
- expect(serialiseCDPDatum(frozenCDPObject)).toEqual(frozenCDPDatum);
110
+ expect(parseCdpDatum(frozenCDPDatum)).toEqual(O.some(frozenCDPObject));
111
+ expect(serialiseCdpDatum(frozenCDPObject)).toEqual(frozenCDPDatum);
105
112
  });
106
113
 
107
114
  it('iAsset', () => {
@@ -111,8 +118,8 @@ describe('Datum checks', () => {
111
118
  assetName: fromText('iETH'),
112
119
  price: {
113
120
  Oracle: {
114
- oracleNft: {
115
- asset: {
121
+ content: {
122
+ oracleNft: {
116
123
  currencySymbol:
117
124
  '6c9497ffd7e8baf86c3c0d6fcd43c524daa49ad5fceba26d715468e9',
118
125
  tokenName: fromText('iETH20221219191302'),
@@ -138,13 +145,13 @@ describe('Datum checks', () => {
138
145
  nextIAsset: fromText('iSOL'),
139
146
  };
140
147
  expect(serialiseIAssetDatum(assetObject)).toEqual(assetDatum);
141
- expect(parseIAssetDatum(assetDatum)).toEqual(assetObject);
148
+ expect(parseIAssetDatumOrThrow(assetDatum)).toEqual(assetObject);
142
149
  });
143
150
 
144
151
  it('Staking Manager', () => {
145
152
  const stakingManagerDatum =
146
153
  'd8799fd8799f1b000009c04704429ed8799f1b000001402802fec1ffffff';
147
- const stakingManagerObject: StakingManagerContent = {
154
+ const stakingManagerObject: StakingManager = {
148
155
  totalStake: 10721429832350n,
149
156
  managerSnapshot: {
150
157
  snapshotAda: 1375060819649n,
@@ -154,40 +161,40 @@ describe('Datum checks', () => {
154
161
  expect(parseStakingManagerDatum(stakingManagerDatum)).toEqual(
155
162
  stakingManagerObject,
156
163
  );
157
- expect(
158
- serialiseStakingDatum({
159
- StakingManager: { content: stakingManagerObject },
160
- }),
161
- ).toEqual(stakingManagerDatum);
164
+ expect(serialiseStakingDatum(stakingManagerObject)).toEqual(
165
+ stakingManagerDatum,
166
+ );
162
167
  });
163
168
 
164
169
  it('Staking Position', () => {
165
170
  const stakingPositionDatum =
166
- 'd87a9fd8799f581cd45527a088a92fd31f42b5777fe39c40f810e0f79d13c6d77eeb7f43bf1853d8799f1a5c8c1cfb1b0000019616971410ffffd8799f1b0000013a7ed5b0fdffffff';
167
- const stakingPositionObject: StakingPositionContent = {
168
- owner: 'd45527a088a92fd31f42b5777fe39c40f810e0f79d13c6d77eeb7f43',
169
- lockedAmount: new Map([[83n, [1552686331n, 1744135722000n]]]),
171
+ 'd87a9fd8799f581cd45527a088a92fd31f42b5777fe39c40f810e0f79d13c6d77eeb7f43a11853d8799f1a5c8c1cfb1b0000019616971410ffd8799f1b0000013a7ed5b0fdffffff';
172
+ const stakingPositionObject: StakingPosition = {
173
+ owner: fromHex(
174
+ 'd45527a088a92fd31f42b5777fe39c40f810e0f79d13c6d77eeb7f43',
175
+ ),
176
+ lockedAmount: new Map([
177
+ [83n, { voteAmt: 1552686331n, votingEnd: 1744135722000n }],
178
+ ]),
170
179
  positionSnapshot: {
171
180
  snapshotAda: 1350747664637n,
172
181
  },
173
182
  };
174
183
 
175
- expect(parseStakingPositionDatum(stakingPositionDatum)).toEqual(
184
+ expect(parseStakingPositionOrThrow(stakingPositionDatum)).toEqual(
176
185
  stakingPositionObject,
177
186
  );
178
- expect(
179
- serialiseStakingDatum({
180
- StakingPosition: { content: stakingPositionObject },
181
- }),
182
- ).toEqual(stakingPositionDatum);
187
+ expect(serialiseStakingDatum(stakingPositionObject)).toEqual(
188
+ stakingPositionDatum,
189
+ );
183
190
  });
184
191
 
185
192
  it('Stability Pool', () => {
186
193
  const stabilityPoolDatum =
187
194
  'd8799fd8799f4469555344d8799fd8799f1b0a37ad5c452ffb2affd8799fc24d1f94ac680ce6b48ea21bb122baffd8799f1b0fde3bba456cd5deff0100ffa2d8799f0000ffd8799f1b084494e2d23b2b7effd8799f0100ffd8799f1b0fde3bba456cd5deffffff';
188
195
  const stabilityPoolObject: StabilityPoolContent = {
189
- asset: fromText('iUSD'),
190
- snapshot: {
196
+ asset: fromHex(fromText('iUSD')),
197
+ poolSnapshot: {
191
198
  productVal: { value: 736247675907734314n },
192
199
  depositVal: { value: 2502085246000826468068228145850n },
193
200
  sumVal: { value: 1143417026613401054n },
@@ -203,84 +210,94 @@ describe('Datum checks', () => {
203
210
  stabilityPoolObject,
204
211
  );
205
212
  expect(
206
- serialiseStabilityPoolDatum({
207
- StabilityPool: { content: stabilityPoolObject },
208
- }),
213
+ serialiseStabilityPoolDatum({ StabilityPool: stabilityPoolObject }),
209
214
  ).toEqual(stabilityPoolDatum);
210
215
  });
211
216
 
212
- // it('Stability Pool Account', () => {
213
- // const stabilityPoolDatum =
214
- // 'd87a9fd8799f581c12c646d4c6d7a35c14788d15f0f6142f6148975d8932592fbd625f674469555344d8799fd8799f1b0a37ad5c452ffb2affd8799fc24c39fa2838b1f7dd38267f0a6dffd8799f1b0fde3b75c28ab489ff0100ffd87a80ffff';
215
- // const stabilityPoolObject: AccountContent = {
216
- // owner: '12c646d4c6d7a35c14788d15f0f6142f6148975d8932592fbd625f67',
217
- // asset: fromText('iUSD'),
218
- // snapshot: {
219
- // productVal: { value: 736247675907734314n },
220
- // depositVal: { value: 17943066955221270821727046253n },
221
- // sumVal: { value: 1143416732359767177n },
222
- // epoch: 1n,
223
- // scale: 0n,
224
- // },
225
- // request: null,
226
- // };
217
+ it('Stability Pool Account', () => {
218
+ const stabilityPoolDatum =
219
+ 'd87a9fd8799f581c12c646d4c6d7a35c14788d15f0f6142f6148975d8932592fbd625f674469555344d8799fd8799f1b0a37ad5c452ffb2affd8799fc24c39fa2838b1f7dd38267f0a6dffd8799f1b0fde3b75c28ab489ff0100ffd87a80ffff';
220
+ const stabilityPoolObject: AccountContent = {
221
+ owner: fromHex(
222
+ '12c646d4c6d7a35c14788d15f0f6142f6148975d8932592fbd625f67',
223
+ ),
224
+ asset: fromHex(fromText('iUSD')),
225
+ accountSnapshot: {
226
+ productVal: { value: 736247675907734314n },
227
+ depositVal: { value: 17943066955221270821727046253n },
228
+ sumVal: { value: 1143416732359767177n },
229
+ epoch: 1n,
230
+ scale: 0n,
231
+ },
232
+ request: null,
233
+ };
227
234
 
228
- // expect(parseAccountDatum(stabilityPoolDatum)).toEqual(stabilityPoolObject);
229
- // expect(
230
- // serialiseStabilityPoolDatum({ Account: { content: stabilityPoolObject } }),
231
- // ).toEqual(stabilityPoolDatum);
232
- // });
235
+ expect(parseAccountDatum(stabilityPoolDatum)).toEqual(stabilityPoolObject);
236
+ expect(
237
+ serialiseStabilityPoolDatum({ Account: stabilityPoolObject }),
238
+ ).toEqual(stabilityPoolDatum);
239
+ });
233
240
 
234
- // it('Stability Pool Account w/ Adjust Request', () => {
235
- // const stabilityPoolDatum =
236
- // 'd87a9fd8799f581c90e40129516ee738fa6aa9183cf57b45c46946496e1590d34ca1b15c4469555344d8799fd8799f1b0a374472be304a62ffd8799fc24b01aef07f96e5ce00f80000ffd8799f1b0f88aa07a1048079ff0100ffd8799fd87a9f3a0007c359d8799fd8799f581c90e40129516ee738fa6aa9183cf57b45c46946496e1590d34ca1b15cffd8799fd8799fd8799f581c75a4f9204b9308a92a09b0e22b94125e56f24b73bb85e2795f176c6affffffffffffffff';
237
- // const stabilityPoolObject: AccountContent = {
238
- // owner: '90e40129516ee738fa6aa9183cf57b45c46946496e1590d34ca1b15c',
239
- // asset: fromText('iUSD'),
240
- // snapshot: {
241
- // productVal: { value: 736132323706161762n },
242
- // depositVal: { value: 2035054000000000000000000n },
243
- // sumVal: { value: 1119331457144488057n },
244
- // epoch: 1n,
245
- // scale: 0n,
246
- // },
247
- // request: {
248
- // Adjust: {
249
- // amount: -508762n,
250
- // outputAddress: {
251
- // paymentCredential: {
252
- // PublicKeyCredential: ['90e40129516ee738fa6aa9183cf57b45c46946496e1590d34ca1b15c'],
253
- // },
254
- // stakeCredential: {
255
- // Inline: [{PublicKeyCredential: ['75a4f9204b9308a92a09b0e22b94125e56f24b73bb85e2795f176c6a']}],
256
- // },
257
- // },
258
- // },
259
- // },
260
- // };
241
+ it('Stability Pool Account w/ Adjust Request', () => {
242
+ const stabilityPoolDatum =
243
+ 'd87a9fd8799f581c90e40129516ee738fa6aa9183cf57b45c46946496e1590d34ca1b15c4469555344d8799fd8799f1b0a374472be304a62ffd8799fc24b01aef07f96e5ce00f80000ffd8799f1b0f88aa07a1048079ff0100ffd8799fd87a9f3a0007c359d8799fd8799f581c90e40129516ee738fa6aa9183cf57b45c46946496e1590d34ca1b15cffd8799fd8799fd8799f581c75a4f9204b9308a92a09b0e22b94125e56f24b73bb85e2795f176c6affffffffffffffff';
244
+ const stabilityPoolObject: AccountContent = {
245
+ owner: fromHex(
246
+ '90e40129516ee738fa6aa9183cf57b45c46946496e1590d34ca1b15c',
247
+ ),
248
+ asset: fromHex(fromText('iUSD')),
249
+ accountSnapshot: {
250
+ productVal: { value: 736132323706161762n },
251
+ depositVal: { value: 2035054000000000000000000n },
252
+ sumVal: { value: 1119331457144488057n },
253
+ epoch: 1n,
254
+ scale: 0n,
255
+ },
256
+ request: {
257
+ Adjust: {
258
+ amount: -508762n,
259
+ outputAddress: {
260
+ paymentCredential: {
261
+ PublicKeyCredential: fromHex(
262
+ '90e40129516ee738fa6aa9183cf57b45c46946496e1590d34ca1b15c',
263
+ ),
264
+ },
265
+ stakeCredential: {
266
+ Inline: {
267
+ PublicKeyCredential: fromHex(
268
+ '75a4f9204b9308a92a09b0e22b94125e56f24b73bb85e2795f176c6a',
269
+ ),
270
+ },
271
+ },
272
+ },
273
+ },
274
+ },
275
+ };
261
276
 
262
- // expect(parseAccountDatum(stabilityPoolDatum)).toEqual(stabilityPoolObject);
263
- // expect(
264
- // serialiseStabilityPoolDatum({ Account: { content: stabilityPoolObject } }),
265
- // ).toEqual(stabilityPoolDatum);
266
- // });
277
+ expect(parseAccountDatum(stabilityPoolDatum)).toEqual(stabilityPoolObject);
278
+ expect(
279
+ serialiseStabilityPoolDatum({ Account: stabilityPoolObject }),
280
+ ).toEqual(stabilityPoolDatum);
281
+ });
267
282
 
268
- // it('Stability Pool SnapshotEpochToScaleToSum', () => {
269
- // const stabilityPoolDatum =
270
- // 'd87b9fd8799f4469555344bfd8799f0000ffd8799f1b084494e2d23b2b7effd8799f0100ffd8799f1b0fde3bba456cd5deffffffff';
271
- // const stabilityPoolObject: SnapshotEpochToScaleToSumContent = {
272
- // asset: fromText('iUSD'),
273
- // snapshot: new Map([
274
- // [{ epoch: 0n, scale: 0n }, { sum: 595764752630360958n }],
275
- // [{ epoch: 1n, scale: 0n }, { sum: 1143417026613401054n }],
276
- // ]),
277
- // };
283
+ it('Stability Pool SnapshotEpochToScaleToSum', () => {
284
+ const stabilityPoolDatum =
285
+ 'd87b9fd8799fa2d8799f0000ffd8799f1b084494e2d23b2b7effd8799f0100ffd8799f1b0fde3bba456cd5deff4469555344ffff';
286
+ const stabilityPoolObject: SnapshotEpochToScaleToSumContent = {
287
+ asset: fromHex(fromText('iUSD')),
288
+ snapshot: new Map([
289
+ [{ epoch: 0n, scale: 0n }, { value: 595764752630360958n }],
290
+ [{ epoch: 1n, scale: 0n }, { value: 1143417026613401054n }],
291
+ ]),
292
+ };
278
293
 
279
- // expect(parseSnapshotEpochToScaleToSumDatum(stabilityPoolDatum)).toEqual(stabilityPoolObject);
280
- // expect(
281
- // serialiseStabilityPoolDatum({
282
- // SnapshotEpochToScaleToSum: { content: stabilityPoolObject },
283
- // }),
284
- // ).toEqual(stabilityPoolDatum);
285
- // });
294
+ expect(parseSnapshotEpochToScaleToSumDatum(stabilityPoolDatum)).toEqual(
295
+ stabilityPoolObject,
296
+ );
297
+ expect(
298
+ serialiseStabilityPoolDatum({
299
+ SnapshotEpochToScaleToSum: stabilityPoolObject,
300
+ }),
301
+ ).toEqual(stabilityPoolDatum);
302
+ });
286
303
  });