@indigo-labs/indigo-sdk 0.2.42 → 0.3.1

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 (202) hide show
  1. package/.github/workflows/ci.yml +4 -2
  2. package/README.md +88 -15
  3. package/dist/index.d.mts +3012 -2194
  4. package/dist/index.d.ts +3012 -2194
  5. package/dist/index.js +9849 -6198
  6. package/dist/index.mjs +8733 -4933
  7. package/package.json +14 -3
  8. package/src/contracts/cdp/helpers.ts +68 -72
  9. package/src/contracts/cdp/scripts.ts +50 -13
  10. package/src/contracts/cdp/transactions.ts +841 -546
  11. package/src/contracts/cdp/types-new.ts +256 -0
  12. package/src/contracts/cdp/types.ts +26 -144
  13. package/src/contracts/cdp-creator/scripts.ts +15 -9
  14. package/src/contracts/cdp-creator/types-new.ts +50 -0
  15. package/src/contracts/cdp-creator/types.ts +5 -31
  16. package/src/contracts/collector/scripts.ts +1 -1
  17. package/src/contracts/collector/transactions.ts +23 -13
  18. package/src/contracts/collector/types-new.ts +17 -0
  19. package/src/contracts/execute/scripts.ts +19 -10
  20. package/src/contracts/execute/types-new.ts +44 -0
  21. package/src/contracts/execute/types.ts +5 -38
  22. package/src/contracts/gov/helpers.ts +187 -51
  23. package/src/contracts/gov/scripts.ts +17 -10
  24. package/src/contracts/gov/transactions.ts +599 -271
  25. package/src/contracts/gov/types-new.ts +253 -100
  26. package/src/contracts/gov/types.ts +4 -71
  27. package/src/contracts/iasset/helpers.ts +172 -0
  28. package/src/contracts/iasset/scripts.ts +38 -0
  29. package/src/contracts/iasset/types.ts +154 -0
  30. package/src/contracts/initialize/actions.ts +768 -0
  31. package/src/contracts/initialize/helpers.ts +611 -36
  32. package/src/contracts/initialize/types.ts +102 -28
  33. package/src/contracts/interest-collection/helpers.ts +19 -0
  34. package/src/contracts/interest-collection/scripts.ts +44 -0
  35. package/src/contracts/interest-collection/transactions.ts +436 -0
  36. package/src/contracts/interest-collection/types-new.ts +50 -0
  37. package/src/contracts/interest-collection/types.ts +26 -0
  38. package/src/contracts/interest-oracle/helpers.ts +2 -30
  39. package/src/contracts/interest-oracle/scripts.ts +1 -1
  40. package/src/contracts/interest-oracle/transactions.ts +21 -16
  41. package/src/contracts/interest-oracle/types-new.ts +32 -0
  42. package/src/contracts/interest-oracle/types.ts +1 -40
  43. package/src/contracts/one-shot/transactions.ts +1 -2
  44. package/src/contracts/poll/helpers.ts +5 -23
  45. package/src/contracts/poll/scripts.ts +12 -13
  46. package/src/contracts/poll/types-poll-manager.ts +1 -19
  47. package/src/contracts/poll/types-poll-new.ts +170 -0
  48. package/src/contracts/poll/types-poll-shard.ts +2 -24
  49. package/src/contracts/price-oracle/helpers.ts +1 -4
  50. package/src/contracts/price-oracle/scripts.ts +3 -8
  51. package/src/contracts/price-oracle/transactions.ts +32 -25
  52. package/src/contracts/price-oracle/types-new.ts +50 -0
  53. package/src/contracts/price-oracle/types.ts +2 -36
  54. package/src/contracts/pyth-feed/helpers.ts +58 -0
  55. package/src/contracts/pyth-feed/scripts.ts +15 -0
  56. package/src/contracts/pyth-feed/types.ts +181 -0
  57. package/src/contracts/rob/helpers.ts +405 -0
  58. package/src/contracts/rob/scripts.ts +35 -0
  59. package/src/contracts/rob/transactions.ts +410 -0
  60. package/src/contracts/rob/types-new.ts +128 -0
  61. package/src/contracts/rob/types.ts +16 -0
  62. package/src/contracts/rob-leverage/helpers.ts +424 -0
  63. package/src/contracts/{leverage → rob-leverage}/transactions.ts +68 -48
  64. package/src/contracts/stability-pool/helpers.ts +714 -230
  65. package/src/contracts/stability-pool/scripts.ts +20 -15
  66. package/src/contracts/stability-pool/transactions.ts +628 -496
  67. package/src/contracts/stability-pool/types-new.ts +247 -100
  68. package/src/contracts/stability-pool/types.ts +5 -22
  69. package/src/contracts/stableswap/helpers.ts +22 -0
  70. package/src/contracts/stableswap/scripts.ts +37 -0
  71. package/src/contracts/stableswap/transactions.ts +647 -0
  72. package/src/contracts/stableswap/types-new.ts +131 -0
  73. package/src/contracts/stableswap/types.ts +17 -0
  74. package/src/contracts/staking/helpers.ts +49 -34
  75. package/src/contracts/staking/scripts.ts +1 -1
  76. package/src/contracts/staking/transactions.ts +85 -130
  77. package/src/contracts/staking/types-new.ts +60 -28
  78. package/src/contracts/staking/types.ts +1 -28
  79. package/src/contracts/treasury/helpers.ts +21 -0
  80. package/src/contracts/treasury/scripts.ts +16 -26
  81. package/src/contracts/treasury/transactions.ts +256 -27
  82. package/src/contracts/treasury/types-new.ts +69 -0
  83. package/src/contracts/treasury/types.ts +2 -43
  84. package/src/contracts/version-registry/scripts.ts +2 -2
  85. package/src/contracts/version-registry/types-new.ts +6 -7
  86. package/src/index.ts +37 -20
  87. package/src/scripts/auth-token-policy.ts +3 -2
  88. package/src/scripts/iasset-policy.ts +3 -2
  89. package/src/types/evolution-schema-options.ts +3 -3
  90. package/src/types/generic.ts +17 -89
  91. package/src/types/multisig.ts +48 -0
  92. package/src/types/on-chain-decimal.ts +14 -7
  93. package/src/types/rational.ts +61 -0
  94. package/src/types/system-params.ts +237 -41
  95. package/src/utils/array-utils.ts +70 -1
  96. package/src/utils/bigint-utils.ts +12 -0
  97. package/src/utils/indigo-helpers.ts +8 -10
  98. package/src/utils/lucid-utils.ts +47 -40
  99. package/src/utils/oracle-helpers.ts +62 -0
  100. package/src/utils/pyth/decode.ts +223 -0
  101. package/src/utils/pyth/encode.ts +262 -0
  102. package/src/utils/pyth/index.ts +14 -0
  103. package/src/utils/pyth/types.ts +87 -0
  104. package/src/validators/always-succeed-validator.ts +6 -0
  105. package/src/validators/cdp-creator-validator.ts +2 -2
  106. package/src/validators/cdp-redeem-validator.ts +7 -0
  107. package/src/validators/cdp-validator.ts +2 -2
  108. package/src/validators/collector-validator.ts +2 -2
  109. package/src/validators/execute-validator.ts +2 -2
  110. package/src/validators/governance-validator.ts +2 -2
  111. package/src/validators/iasset-validator.ts +7 -0
  112. package/src/validators/interest-collection-validator.ts +7 -0
  113. package/src/validators/interest-oracle-validator.ts +2 -2
  114. package/src/validators/poll-manager-validator.ts +2 -2
  115. package/src/validators/poll-shard-validator.ts +2 -2
  116. package/src/validators/price-oracle-validator.ts +7 -0
  117. package/src/validators/pyth-feed-validator.ts +7 -0
  118. package/src/validators/rob-validator.ts +7 -0
  119. package/src/validators/stability-pool-validator.ts +2 -2
  120. package/src/validators/stableswap-validator.ts +7 -0
  121. package/src/validators/staking-validator.ts +2 -2
  122. package/src/validators/treasury-validator.ts +2 -2
  123. package/src/validators/version-record-policy.ts +2 -2
  124. package/src/validators/version-registry-validator.ts +2 -2
  125. package/tests/always-succeed/script.ts +7 -0
  126. package/tests/bigint-utils.test.ts +41 -0
  127. package/tests/cdp/actions.ts +610 -0
  128. package/tests/cdp/cdp-helpers.ts +55 -0
  129. package/tests/cdp/cdp-queries.ts +440 -0
  130. package/tests/cdp/cdp.test.ts +6087 -0
  131. package/tests/cdp/transactions-mutated.ts +1729 -0
  132. package/tests/data/system-params.json +177 -34
  133. package/tests/datums.test.ts +209 -210
  134. package/tests/endpoints/initialize.ts +68 -0
  135. package/tests/endpoints/interest-collector.ts +37 -0
  136. package/tests/endpoints/treasury.ts +70 -0
  137. package/tests/gov/actions.ts +406 -0
  138. package/tests/gov/gov.test.ts +4450 -0
  139. package/tests/{queries → gov}/governance-queries.ts +6 -3
  140. package/tests/hash-checks.test.ts +38 -11
  141. package/tests/indigo-test-helpers.ts +100 -0
  142. package/tests/initialize.test.ts +61 -9
  143. package/tests/interest-collection/interest-collection.test.ts +892 -0
  144. package/tests/interest-collection/interest-collector-queries.ts +49 -0
  145. package/tests/interest-collection/transactions-mutated.ts +260 -0
  146. package/tests/interest-oracle.test.ts +43 -35
  147. package/tests/mock/assets-mock.ts +234 -23
  148. package/tests/mock/protocol-params-mock.ts +21 -0
  149. package/tests/price-oracle/actions.ts +163 -0
  150. package/tests/price-oracle/price-oracle-queries.ts +12 -0
  151. package/tests/price-oracle/price-oracle.test.ts +240 -0
  152. package/tests/price-oracle/transactions-mutated.ts +62 -0
  153. package/tests/pyth/endpoints.ts +96 -0
  154. package/tests/pyth/helpers.ts +37 -0
  155. package/tests/pyth/pyth-encoding.test.ts +376 -0
  156. package/tests/pyth/pyth-indigo.test.ts +509 -0
  157. package/tests/pyth/pyth.test.ts +300 -0
  158. package/tests/queries/execute-queries.ts +6 -5
  159. package/tests/queries/iasset-queries.ts +175 -5
  160. package/tests/queries/interest-oracle-queries.ts +4 -2
  161. package/tests/queries/poll-queries.ts +8 -9
  162. package/tests/queries/stability-pool-queries.ts +95 -48
  163. package/tests/queries/staking-queries.ts +4 -2
  164. package/tests/queries/treasury-queries.ts +80 -5
  165. package/tests/rob/actions.ts +58 -0
  166. package/tests/{lrp-leverage.test.ts → rob/rob-leverage.test.ts} +393 -296
  167. package/tests/rob/rob-queries.ts +95 -0
  168. package/tests/rob/rob.test.ts +3762 -0
  169. package/tests/rob/transactions-mutated.ts +853 -0
  170. package/tests/script-size.test.ts +240 -0
  171. package/tests/setup.ts +135 -0
  172. package/tests/stability-pool/actions.ts +220 -0
  173. package/tests/stability-pool.test.ts +6121 -667
  174. package/tests/stableswap/stableswap-actions.ts +84 -0
  175. package/tests/stableswap/stableswap-queries.ts +89 -0
  176. package/tests/stableswap/stableswap.test.ts +3891 -0
  177. package/tests/stableswap/transactions-mutated.ts +348 -0
  178. package/tests/staking.test.ts +82 -99
  179. package/tests/test-helpers.ts +58 -11
  180. package/tests/treasury.test.ts +242 -0
  181. package/tests/utils/asserts.ts +74 -0
  182. package/tests/utils/benchmark-utils.ts +81 -0
  183. package/tests/utils/index.ts +122 -4
  184. package/tsconfig.json +9 -1
  185. package/vitest.config.ts +3 -1
  186. package/src/contracts/collector/types.ts +0 -16
  187. package/src/contracts/initialize/transactions.ts +0 -891
  188. package/src/contracts/leverage/helpers.ts +0 -424
  189. package/src/contracts/lrp/helpers.ts +0 -294
  190. package/src/contracts/lrp/scripts.ts +0 -27
  191. package/src/contracts/lrp/transactions.ts +0 -250
  192. package/src/contracts/lrp/types.ts +0 -131
  193. package/src/contracts/poll/types-poll.ts +0 -88
  194. package/src/contracts/vesting/helpers.ts +0 -218
  195. package/src/utils/value-helpers.ts +0 -37
  196. package/src/validators/lrp-validator.ts +0 -7
  197. package/tests/cdp.test.ts +0 -1528
  198. package/tests/gov.test.ts +0 -2011
  199. package/tests/lrp.test.ts +0 -673
  200. package/tests/queries/cdp-queries.ts +0 -220
  201. package/tests/queries/lrp-queries.ts +0 -76
  202. package/tests/queries/price-oracle-queries.ts +0 -10
@@ -1,891 +0,0 @@
1
- import {
2
- Constr,
3
- credentialToAddress,
4
- Data,
5
- fromHex,
6
- fromText,
7
- LucidEvolution,
8
- mintingPolicyToId,
9
- PolicyId,
10
- SpendingValidator,
11
- validatorToScriptHash,
12
- } from '@lucid-evolution/lucid';
13
- import { AssetClass } from '../../types/generic';
14
- import {
15
- CDPCreatorParamsSP,
16
- CdpParamsSP,
17
- CollectorParamsSP,
18
- ExecuteParamsSP,
19
- GovParamsSP,
20
- Input,
21
- LrpParamsSP,
22
- PollManagerParamsSP,
23
- PollShardParamsSP,
24
- StabilityPoolParamsSP,
25
- StakingParamsSP,
26
- SystemParams,
27
- toSystemParamsAsset,
28
- TreasuryParamsSP,
29
- VersionRecordParams,
30
- } from '../../types/system-params';
31
- import { addrDetails, createScriptAddress } from '../../utils/lucid-utils';
32
- import { runOneShotMintTx } from '../one-shot/transactions';
33
- import { startInterestOracle } from '../interest-oracle/transactions';
34
- import { startPriceOracleTx } from '../price-oracle/transactions';
35
- import { PriceOracleParams } from '../price-oracle/types';
36
- import { mkAuthTokenPolicy } from '../../scripts/auth-token-policy';
37
- import { mkIAssetTokenPolicy } from '../../scripts/iasset-policy';
38
- import {
39
- mkVersionRecordTokenPolicy,
40
- mkVersionRegistryValidator,
41
- } from '../version-registry/scripts';
42
- import { mkGovValidatorFromSP } from '../gov/scripts';
43
- import { mkStabilityPoolValidatorFromSP } from '../stability-pool/scripts';
44
- import { mkStakingValidatorFromSP } from '../staking/scripts';
45
- import { serialiseStakingDatum } from '../staking/types-new';
46
- import {
47
- initEpochToScaleToSumMap,
48
- initSpSnapshot,
49
- } from '../stability-pool/helpers';
50
- import {
51
- serialiseStabilityPoolDatum,
52
- StabilityPoolContent,
53
- } from '../stability-pool/types-new';
54
- import { mkCdpValidatorFromSP } from '../cdp/scripts';
55
- import { IAssetContent, serialiseIAssetDatum } from '../cdp/types';
56
- import { GovDatum, serialiseGovDatum } from '../gov/types';
57
- import { mkCollectorValidatorFromSP } from '../collector/scripts';
58
- import { mkCDPCreatorValidatorFromSP } from '../cdp-creator/scripts';
59
- import { mkExecuteValidatorFromSP } from '../execute/scripts';
60
- import { mkLrpValidatorFromSP } from '../lrp/scripts';
61
- import {
62
- mkPollManagerValidatorFromSP,
63
- mkPollShardValidatorFromSP,
64
- } from '../poll/scripts';
65
- import { mkTreasuryValidatorFromSP } from '../treasury/scripts';
66
- import { InitialAsset, AssetInfo } from './types';
67
-
68
- export type { AssetInfo, InitialAsset } from './types';
69
- import {
70
- ACCOUNT_TOKEN_NAME,
71
- ALWAYS_FAIL_VALIDATOR_HASH,
72
- CDP_CREATOR_TOKEN_NAME,
73
- CDP_TOKEN_NAME,
74
- GOV_NFT_TOKEN_NAME,
75
- IASSET_TOKEN_NAME,
76
- INDY_TOKEN_NAME,
77
- DAO_TOKEN_NAME,
78
- NUM_CDP_CREATORS,
79
- NUM_COLLECTORS,
80
- POLL_MANAGER_TOKEN_NAME,
81
- STABILITY_POOL_TOKEN_NAME,
82
- STAKING_MANAGER_TOKEN_NAME,
83
- STAKING_TOKEN_NAME,
84
- SNAPSHOT_EPOCH_TO_SCALE_TO_SUM_TOKEN_NAME,
85
- submitAndAwaitTx,
86
- TOTAL_INDY_SUPPLY,
87
- TREASURY_INDY_AMOUNT,
88
- UPGRADE_TOKEN_NAME,
89
- VERSION_RECORD_TOKEN_NAME,
90
- } from './helpers';
91
-
92
- async function mintOneTimeToken(
93
- lucid: LucidEvolution,
94
- tokenName: string,
95
- amount: bigint,
96
- ): Promise<PolicyId> {
97
- const utxos = await lucid.wallet().getUtxos();
98
- return await runOneShotMintTx(lucid, {
99
- referenceOutRef: {
100
- txHash: utxos[0].txHash,
101
- outputIdx: BigInt(utxos[0].outputIndex),
102
- },
103
- mintAmounts: [{ tokenName: tokenName, amount: amount }],
104
- });
105
- }
106
-
107
- async function initScriptRef(
108
- lucid: LucidEvolution,
109
- validator: SpendingValidator,
110
- ): Promise<Input> {
111
- const tx = lucid.newTx().pay.ToContract(
112
- credentialToAddress(lucid.config().network!, {
113
- hash: ALWAYS_FAIL_VALIDATOR_HASH,
114
- type: 'Script',
115
- }),
116
- undefined,
117
- undefined,
118
- validator,
119
- );
120
-
121
- const txHash = await submitAndAwaitTx(lucid, tx);
122
- return { transactionId: txHash, index: 0 };
123
- }
124
-
125
- async function initCollector(
126
- lucid: LucidEvolution,
127
- collectorParams: CollectorParamsSP,
128
- ): Promise<void> {
129
- const tx = lucid.newTx();
130
-
131
- for (let i = 0; i < Number(NUM_COLLECTORS); i++) {
132
- tx.pay.ToContract(
133
- createScriptAddress(
134
- lucid.config().network!,
135
- validatorToScriptHash(mkCollectorValidatorFromSP(collectorParams)),
136
- ),
137
- {
138
- kind: 'inline',
139
- value: Data.to(new Constr(0, [])),
140
- },
141
- );
142
- }
143
-
144
- await submitAndAwaitTx(lucid, tx);
145
- }
146
-
147
- async function initCDPCreator(
148
- lucid: LucidEvolution,
149
- cdpCreatorParams: CDPCreatorParamsSP,
150
- ): Promise<void> {
151
- const tx = lucid.newTx();
152
-
153
- for (let i = 0; i < Number(NUM_CDP_CREATORS); i++) {
154
- tx.pay.ToContract(
155
- credentialToAddress(lucid.config().network!, {
156
- hash: validatorToScriptHash(
157
- mkCDPCreatorValidatorFromSP(cdpCreatorParams),
158
- ),
159
- type: 'Script',
160
- }),
161
- { kind: 'inline', value: Data.to(new Constr(0, [])) },
162
- {
163
- [cdpCreatorParams.cdpCreatorNft[0].unCurrencySymbol +
164
- fromText(cdpCreatorParams.cdpCreatorNft[1].unTokenName)]: 1n,
165
- },
166
- );
167
- }
168
-
169
- await submitAndAwaitTx(lucid, tx);
170
- }
171
-
172
- async function initTreasury(
173
- lucid: LucidEvolution,
174
- treasuryParams: TreasuryParamsSP,
175
- daoAsset: AssetClass,
176
- indyAsset: AssetClass,
177
- treasuryIndyAmount: bigint,
178
- ): Promise<void> {
179
- const tx = lucid.newTx().pay.ToContract(
180
- credentialToAddress(lucid.config().network!, {
181
- hash: validatorToScriptHash(mkTreasuryValidatorFromSP(treasuryParams)),
182
- type: 'Script',
183
- }),
184
- { kind: 'inline', value: Data.to(new Constr(0, [])) },
185
- {
186
- [daoAsset.currencySymbol + daoAsset.tokenName]: 1n,
187
- [indyAsset.currencySymbol + indyAsset.tokenName]: treasuryIndyAmount,
188
- },
189
- );
190
-
191
- await submitAndAwaitTx(lucid, tx);
192
- }
193
-
194
- async function initStakingManager(
195
- lucid: LucidEvolution,
196
- stakingParams: StakingParamsSP,
197
- ): Promise<void> {
198
- const tx = lucid.newTx().pay.ToContract(
199
- createScriptAddress(
200
- lucid.config().network!,
201
- validatorToScriptHash(mkStakingValidatorFromSP(stakingParams)),
202
- ),
203
- {
204
- kind: 'inline',
205
- value: serialiseStakingDatum({
206
- totalStake: 0n,
207
- managerSnapshot: { snapshotAda: 0n },
208
- }),
209
- },
210
- {
211
- lovelace: 5_000_000n,
212
- [stakingParams.stakingManagerNFT[0].unCurrencySymbol +
213
- fromText(stakingParams.stakingManagerNFT[1].unTokenName)]: 1n,
214
- },
215
- );
216
-
217
- await submitAndAwaitTx(lucid, tx);
218
- }
219
-
220
- async function initializeAsset(
221
- lucid: LucidEvolution,
222
- cdpParams: CdpParamsSP,
223
- iassetToken: AssetClass,
224
- stabilityPoolParams: StabilityPoolParamsSP,
225
- stabilityPoolToken: AssetClass,
226
- asset: InitialAsset,
227
- now: number = Date.now(),
228
- ): Promise<AssetInfo> {
229
- const [pkh] = await addrDetails(lucid);
230
- const priceOracleParams: PriceOracleParams = {
231
- owner: pkh.hash,
232
- biasTime: asset.priceOracle.params.biasTime,
233
- expiration: asset.priceOracle.params.expirationTime,
234
- };
235
-
236
- const [priceOracleStartTx, priceOracleNft] = await startPriceOracleTx(
237
- lucid,
238
- asset.name + '_ORACLE',
239
- {
240
- getOnChainInt: asset.priceOracle.startPrice,
241
- },
242
- priceOracleParams,
243
- now,
244
- );
245
- await submitAndAwaitTx(lucid, priceOracleStartTx);
246
-
247
- const interestOracleTokenName = asset.name + '_ORACLE';
248
- const [startInterestOracleTx, interestOracleNft] = await startInterestOracle(
249
- 0n,
250
- asset.interestOracle.initialInterestRate,
251
- 0n,
252
- {
253
- owner: pkh.hash,
254
- biasTime: asset.priceOracle.params.biasTime,
255
- },
256
- lucid,
257
- interestOracleTokenName,
258
- );
259
- await submitAndAwaitTx(lucid, startInterestOracleTx);
260
-
261
- const iassetDatum: IAssetContent = {
262
- assetName: fromText(asset.name),
263
- price: {
264
- Oracle: {
265
- content: priceOracleNft,
266
- },
267
- },
268
- interestOracleNft: interestOracleNft,
269
- redemptionRatio: { getOnChainInt: asset.redemptionRatioPercentage },
270
- maintenanceRatio: { getOnChainInt: asset.maintenanceRatioPercentage },
271
- liquidationRatio: { getOnChainInt: asset.liquidationRatioPercentage },
272
- debtMintingFeePercentage: { getOnChainInt: asset.debtMintingFeePercentage },
273
- liquidationProcessingFeePercentage: {
274
- getOnChainInt: asset.liquidationProcessingFeePercentage,
275
- },
276
- stabilityPoolWithdrawalFeePercentage: {
277
- getOnChainInt: asset.stabilityPoolWithdrawalFeePercentage,
278
- },
279
- redemptionReimbursementPercentage: {
280
- getOnChainInt: asset.redemptionReimbursementPercentage,
281
- },
282
- redemptionProcessingFeePercentage: {
283
- getOnChainInt: asset.redemptionProcessingFeePercentage,
284
- },
285
- interestCollectorPortionPercentage: {
286
- getOnChainInt: asset.interestCollectorPortionPercentage,
287
- },
288
- firstIAsset: true,
289
- nextIAsset: asset.nextAsset ? fromText(asset.nextAsset) : null,
290
- };
291
-
292
- const assetTx = lucid
293
- .newTx()
294
- .pay.ToContract(
295
- createScriptAddress(
296
- lucid.config().network!,
297
- validatorToScriptHash(mkCdpValidatorFromSP(cdpParams)),
298
- ),
299
- { kind: 'inline', value: serialiseIAssetDatum(iassetDatum) },
300
- { [iassetToken.currencySymbol + iassetToken.tokenName]: 1n },
301
- );
302
-
303
- await submitAndAwaitTx(lucid, assetTx);
304
-
305
- const stabilityPoolDatum: StabilityPoolContent = {
306
- asset: fromHex(fromText(asset.name)),
307
- poolSnapshot: initSpSnapshot,
308
- epochToScaleToSum: initEpochToScaleToSumMap(),
309
- };
310
-
311
- const spTx = lucid.newTx().pay.ToContract(
312
- credentialToAddress(lucid.config().network!, {
313
- hash: validatorToScriptHash(
314
- mkStabilityPoolValidatorFromSP(stabilityPoolParams),
315
- ),
316
- type: 'Script',
317
- }),
318
- {
319
- kind: 'inline',
320
- value: serialiseStabilityPoolDatum({ StabilityPool: stabilityPoolDatum }),
321
- },
322
- {
323
- [stabilityPoolToken.currencySymbol + stabilityPoolToken.tokenName]: 1n,
324
- },
325
- );
326
-
327
- await submitAndAwaitTx(lucid, spTx);
328
-
329
- return { iassetTokenNameAscii: asset.name, oracleParams: priceOracleParams };
330
- }
331
-
332
- async function initGovernance(
333
- lucid: LucidEvolution,
334
- governanceParams: GovParamsSP,
335
- govToken: AssetClass,
336
- initialAssets: InitialAsset[],
337
- ): Promise<void> {
338
- const datum: GovDatum = {
339
- currentProposal: 0n,
340
- currentVersion: 0n,
341
- protocolParams: {
342
- effectiveDelay: 1_000n,
343
- expirationPeriod: 180_000n,
344
- proposalDeposit: 1_000n,
345
- proposingPeriod: 100_000n,
346
- collateralFeePercentage: {
347
- getOnChainInt: 1_500_000n,
348
- },
349
- votingPeriod: 1000_000n,
350
- totalShards: 4n,
351
- minimumQuorum: 100_000n,
352
- maxTreasuryLovelaceSpend: 10_000_000n,
353
- maxTreasuryIndySpend: 10_000_000n,
354
- },
355
- activeProposals: 0n,
356
- treasuryIndyWithdrawnAmt: 0n,
357
- iassetsCount: BigInt(initialAssets.length),
358
- };
359
- const tx = lucid.newTx().pay.ToContract(
360
- credentialToAddress(lucid.config().network!, {
361
- hash: validatorToScriptHash(mkGovValidatorFromSP(governanceParams)),
362
- type: 'Script',
363
- }),
364
- { kind: 'inline', value: serialiseGovDatum(datum) },
365
- {
366
- [govToken.currencySymbol + govToken.tokenName]: 1n,
367
- },
368
- );
369
-
370
- await submitAndAwaitTx(lucid, tx);
371
- }
372
-
373
- async function mintAuthTokenDirect(
374
- lucid: LucidEvolution,
375
- asset: AssetClass,
376
- tokenName: string,
377
- amount: bigint,
378
- ): Promise<void> {
379
- const script = mkAuthTokenPolicy(asset, fromText(tokenName));
380
- const policyId = mintingPolicyToId(script);
381
- const address = await lucid.wallet().address();
382
- const utxos = await lucid.utxosAtWithUnit(
383
- address,
384
- asset.currencySymbol + asset.tokenName,
385
- );
386
- if (utxos.length === 0) {
387
- throw new Error('No utxos found');
388
- }
389
-
390
- const tx = lucid
391
- .newTx()
392
- .attach.MintingPolicy(script)
393
- .collectFrom(utxos)
394
- .mintAssets(
395
- {
396
- [policyId + fromText(tokenName)]: amount,
397
- },
398
- Data.to(new Constr(0, [])),
399
- );
400
-
401
- await submitAndAwaitTx(lucid, tx);
402
- }
403
-
404
- export async function init(
405
- lucid: LucidEvolution,
406
- initialAssets: InitialAsset[],
407
- now: number = Date.now(),
408
- ): Promise<[SystemParams, AssetInfo[]]> {
409
- const indyAsset: AssetClass = {
410
- currencySymbol: await mintOneTimeToken(
411
- lucid,
412
- fromText(INDY_TOKEN_NAME),
413
- TOTAL_INDY_SUPPLY,
414
- ),
415
- tokenName: fromText(INDY_TOKEN_NAME),
416
- };
417
-
418
- const daoAsset: AssetClass = {
419
- currencySymbol: await mintOneTimeToken(lucid, fromText(DAO_TOKEN_NAME), 1n),
420
- tokenName: fromText(DAO_TOKEN_NAME),
421
- };
422
-
423
- const govNftAsset: AssetClass = {
424
- currencySymbol: await mintOneTimeToken(
425
- lucid,
426
- fromText(GOV_NFT_TOKEN_NAME),
427
- 1n,
428
- ),
429
- tokenName: fromText(GOV_NFT_TOKEN_NAME),
430
- };
431
-
432
- const pollTokenPolicy = mkAuthTokenPolicy(
433
- govNftAsset,
434
- fromText(POLL_MANAGER_TOKEN_NAME),
435
- );
436
- const pollToken: AssetClass = {
437
- currencySymbol: mintingPolicyToId(pollTokenPolicy),
438
- tokenName: fromText(POLL_MANAGER_TOKEN_NAME),
439
- };
440
-
441
- const upgradeTokenPolicy = mkAuthTokenPolicy(
442
- pollToken,
443
- fromText(UPGRADE_TOKEN_NAME),
444
- );
445
- const upgradeToken: AssetClass = {
446
- currencySymbol: mintingPolicyToId(upgradeTokenPolicy),
447
- tokenName: fromText(UPGRADE_TOKEN_NAME),
448
- };
449
-
450
- const iassetTokenPolicy = mkAuthTokenPolicy(
451
- upgradeToken,
452
- fromText(IASSET_TOKEN_NAME),
453
- );
454
- const iassetToken: AssetClass = {
455
- currencySymbol: mintingPolicyToId(iassetTokenPolicy),
456
- tokenName: fromText(IASSET_TOKEN_NAME),
457
- };
458
-
459
- const stabilityPoolTokenPolicy = mkAuthTokenPolicy(
460
- upgradeToken,
461
- fromText(STABILITY_POOL_TOKEN_NAME),
462
- );
463
- const stabilityPoolToken: AssetClass = {
464
- currencySymbol: mintingPolicyToId(stabilityPoolTokenPolicy),
465
- tokenName: fromText(STABILITY_POOL_TOKEN_NAME),
466
- };
467
- const versionRecordParams: VersionRecordParams = {
468
- upgradeToken: toSystemParamsAsset(upgradeToken),
469
- };
470
- const versionRecordTokenPolicy = mkVersionRecordTokenPolicy({
471
- upgradeToken,
472
- });
473
- const versionRecordToken: AssetClass = {
474
- currencySymbol: mintingPolicyToId(versionRecordTokenPolicy),
475
- tokenName: fromText(VERSION_RECORD_TOKEN_NAME),
476
- };
477
-
478
- const versionRegistryValidator = mkVersionRegistryValidator();
479
- const versionRegistryValHash = validatorToScriptHash(
480
- versionRegistryValidator,
481
- );
482
-
483
- const cdpCreatorAsset: AssetClass = {
484
- currencySymbol: await mintOneTimeToken(
485
- lucid,
486
- fromText(CDP_CREATOR_TOKEN_NAME),
487
- NUM_CDP_CREATORS,
488
- ),
489
- tokenName: fromText(CDP_CREATOR_TOKEN_NAME),
490
- };
491
-
492
- const cdpTokenPolicy = mkAuthTokenPolicy(
493
- cdpCreatorAsset,
494
- fromText(CDP_TOKEN_NAME),
495
- );
496
- const cdpToken: AssetClass = {
497
- currencySymbol: mintingPolicyToId(cdpTokenPolicy),
498
- tokenName: fromText(CDP_TOKEN_NAME),
499
- };
500
-
501
- const stakingManagerAsset: AssetClass = {
502
- currencySymbol: await mintOneTimeToken(
503
- lucid,
504
- fromText(STAKING_MANAGER_TOKEN_NAME),
505
- 1n,
506
- ),
507
- tokenName: fromText(STAKING_MANAGER_TOKEN_NAME),
508
- };
509
-
510
- const stakingTokenPolicy = mkAuthTokenPolicy(
511
- stakingManagerAsset,
512
- fromText(STAKING_TOKEN_NAME),
513
- );
514
- const stakingToken: AssetClass = {
515
- currencySymbol: mintingPolicyToId(stakingTokenPolicy),
516
- tokenName: fromText(STAKING_TOKEN_NAME),
517
- };
518
-
519
- const collectorParams: CollectorParamsSP = {
520
- stakingManagerNFT: toSystemParamsAsset(stakingManagerAsset),
521
- stakingToken: toSystemParamsAsset(stakingToken),
522
- versionRecordToken: toSystemParamsAsset(versionRecordToken),
523
- };
524
- const collectorValidator = mkCollectorValidatorFromSP(collectorParams);
525
- const collectorValHash = validatorToScriptHash(collectorValidator);
526
-
527
- const stakingParams: StakingParamsSP = {
528
- stakingManagerNFT: toSystemParamsAsset(stakingManagerAsset),
529
- stakingToken: toSystemParamsAsset(stakingToken),
530
- versionRecordToken: toSystemParamsAsset(versionRecordToken),
531
- pollToken: toSystemParamsAsset(pollToken),
532
- indyToken: toSystemParamsAsset(indyAsset),
533
- collectorValHash: collectorValHash,
534
- };
535
- const stakingValHash = validatorToScriptHash(
536
- mkStakingValidatorFromSP(stakingParams),
537
- );
538
-
539
- await initStakingManager(lucid, stakingParams);
540
-
541
- const assetSymbolPolicy = mkIAssetTokenPolicy(cdpToken);
542
- const assetSymbol = mintingPolicyToId(assetSymbolPolicy);
543
-
544
- const snapshotEpochToScaleToSumTokenPolicy = mkAuthTokenPolicy(
545
- stabilityPoolToken,
546
- fromText(SNAPSHOT_EPOCH_TO_SCALE_TO_SUM_TOKEN_NAME),
547
- );
548
- const snapshotEpochToScaleToSumToken: AssetClass = {
549
- currencySymbol: mintingPolicyToId(snapshotEpochToScaleToSumTokenPolicy),
550
- tokenName: fromText(SNAPSHOT_EPOCH_TO_SCALE_TO_SUM_TOKEN_NAME),
551
- };
552
-
553
- const accountTokenPolicy = mkAuthTokenPolicy(
554
- stabilityPoolToken,
555
- fromText(ACCOUNT_TOKEN_NAME),
556
- );
557
- const accountToken: AssetClass = {
558
- currencySymbol: mintingPolicyToId(accountTokenPolicy),
559
- tokenName: fromText(ACCOUNT_TOKEN_NAME),
560
- };
561
-
562
- const stabilityPoolParams: StabilityPoolParamsSP = {
563
- assetSymbol: { unCurrencySymbol: assetSymbol },
564
- stabilityPoolToken: toSystemParamsAsset(stabilityPoolToken),
565
- snapshotEpochToScaleToSumToken: toSystemParamsAsset(
566
- snapshotEpochToScaleToSumToken,
567
- ),
568
- accountToken: toSystemParamsAsset(accountToken),
569
- cdpToken: toSystemParamsAsset(cdpToken),
570
- iAssetAuthToken: toSystemParamsAsset(iassetToken),
571
- versionRecordToken: toSystemParamsAsset(versionRecordToken),
572
- collectorValHash: collectorValHash,
573
- govNFT: toSystemParamsAsset(govNftAsset),
574
- accountCreateFeeLovelaces: 5_000_000,
575
- accountAdjustmentFeeLovelaces: 5_000_000,
576
- requestCollateralLovelaces: 5_000_000,
577
- };
578
- const stabilityPoolValidator =
579
- mkStabilityPoolValidatorFromSP(stabilityPoolParams);
580
- const stabilityPoolValHash = validatorToScriptHash(stabilityPoolValidator);
581
-
582
- const treasuryParams: TreasuryParamsSP = {
583
- upgradeToken: toSystemParamsAsset(upgradeToken),
584
- versionRecordToken: toSystemParamsAsset(versionRecordToken),
585
- treasuryUtxosStakeCredential: undefined,
586
- };
587
-
588
- const treasuryValidator = mkTreasuryValidatorFromSP(treasuryParams);
589
- const treasuryValHash = validatorToScriptHash(treasuryValidator);
590
-
591
- await initTreasury(
592
- lucid,
593
- treasuryParams,
594
- daoAsset,
595
- indyAsset,
596
- TREASURY_INDY_AMOUNT,
597
- );
598
-
599
- const cdpParams: CdpParamsSP = {
600
- cdpAuthToken: toSystemParamsAsset(cdpToken),
601
- cdpAssetSymbol: { unCurrencySymbol: assetSymbol },
602
- iAssetAuthToken: toSystemParamsAsset(iassetToken),
603
- stabilityPoolAuthToken: toSystemParamsAsset(stabilityPoolToken),
604
- versionRecordToken: toSystemParamsAsset(versionRecordToken),
605
- upgradeToken: toSystemParamsAsset(upgradeToken),
606
- collectorValHash: collectorValHash,
607
- spValHash: stabilityPoolValHash,
608
- govNFT: toSystemParamsAsset(govNftAsset),
609
- minCollateralInLovelace: 10_000_000,
610
- partialRedemptionExtraFeeLovelace: 10_000_000,
611
- biasTime: 180_000,
612
- treasuryValHash: treasuryValHash,
613
- };
614
- const cdpValHash = validatorToScriptHash(mkCdpValidatorFromSP(cdpParams));
615
-
616
- const cdpCreatorParams: CDPCreatorParamsSP = {
617
- cdpCreatorNft: toSystemParamsAsset(cdpCreatorAsset),
618
- cdpAssetCs: { unCurrencySymbol: assetSymbol },
619
- cdpAuthTk: toSystemParamsAsset(cdpToken),
620
- iAssetAuthTk: toSystemParamsAsset(iassetToken),
621
- versionRecordToken: toSystemParamsAsset(versionRecordToken),
622
- cdpScriptHash: cdpValHash,
623
- collectorValHash: collectorValHash,
624
- minCollateralInLovelace: 10_000_000,
625
- biasTime: 180_000n,
626
- };
627
- const cdpCreatorValidator = mkCDPCreatorValidatorFromSP(cdpCreatorParams);
628
- const cdpCreatorValHash = validatorToScriptHash(cdpCreatorValidator);
629
-
630
- await initCDPCreator(lucid, cdpCreatorParams);
631
- await initCollector(lucid, collectorParams);
632
-
633
- const assetInfos: AssetInfo[] = [];
634
- if (initialAssets.length > 0) {
635
- await mintAuthTokenDirect(lucid, govNftAsset, POLL_MANAGER_TOKEN_NAME, 1n);
636
- await mintAuthTokenDirect(lucid, pollToken, UPGRADE_TOKEN_NAME, 1n);
637
-
638
- for (const asset of initialAssets) {
639
- await mintAuthTokenDirect(lucid, upgradeToken, IASSET_TOKEN_NAME, 1n);
640
- await mintAuthTokenDirect(
641
- lucid,
642
- upgradeToken,
643
- STABILITY_POOL_TOKEN_NAME,
644
- 1n,
645
- );
646
-
647
- const assetInfo = await initializeAsset(
648
- lucid,
649
- cdpParams,
650
- iassetToken,
651
- stabilityPoolParams,
652
- stabilityPoolToken,
653
- asset,
654
- now,
655
- );
656
-
657
- assetInfos.push(assetInfo);
658
- }
659
-
660
- await mintAuthTokenDirect(lucid, pollToken, UPGRADE_TOKEN_NAME, -1n);
661
- await mintAuthTokenDirect(lucid, govNftAsset, POLL_MANAGER_TOKEN_NAME, -1n);
662
- }
663
-
664
- const executeParams: ExecuteParamsSP = {
665
- govNFT: toSystemParamsAsset(govNftAsset),
666
- upgradeToken: toSystemParamsAsset(upgradeToken),
667
- iAssetToken: toSystemParamsAsset(iassetToken),
668
- stabilityPoolToken: toSystemParamsAsset(stabilityPoolToken),
669
- versionRecordToken: toSystemParamsAsset(versionRecordToken),
670
- cdpValHash: cdpValHash,
671
- sPoolValHash: stabilityPoolValHash,
672
- versionRegistryValHash: versionRegistryValHash,
673
- treasuryValHash: treasuryValHash,
674
- indyAsset: toSystemParamsAsset(indyAsset),
675
- };
676
- const executeValidator = mkExecuteValidatorFromSP(executeParams);
677
- const executeValHash = validatorToScriptHash(executeValidator);
678
-
679
- const pollShardParams: PollShardParamsSP = {
680
- pollToken: toSystemParamsAsset(pollToken),
681
- stakingToken: toSystemParamsAsset(stakingToken),
682
- indyAsset: toSystemParamsAsset(indyAsset),
683
- stakingValHash: stakingValHash,
684
- };
685
- const pollShardValidator = mkPollShardValidatorFromSP(pollShardParams);
686
- const pollShardValHash = validatorToScriptHash(pollShardValidator);
687
-
688
- const pollManagerParams: PollManagerParamsSP = {
689
- govNFT: toSystemParamsAsset(govNftAsset),
690
- pollToken: toSystemParamsAsset(pollToken),
691
- upgradeToken: toSystemParamsAsset(upgradeToken),
692
- indyAsset: toSystemParamsAsset(indyAsset),
693
- govExecuteValHash: executeValHash,
694
- pBiasTime: 120_000n,
695
- shardsValHash: pollShardValHash,
696
- treasuryValHash: treasuryValHash,
697
- initialIndyDistribution: 1_575_000_000_000n,
698
- };
699
- const pollManagerValidator = mkPollManagerValidatorFromSP(pollManagerParams);
700
- const pollManagerValHash = validatorToScriptHash(pollManagerValidator);
701
-
702
- const govParams: GovParamsSP = {
703
- gBiasTime: 120_000n,
704
- govNFT: toSystemParamsAsset(govNftAsset),
705
- pollToken: toSystemParamsAsset(pollToken),
706
- upgradeToken: toSystemParamsAsset(upgradeToken),
707
- indyAsset: toSystemParamsAsset(indyAsset),
708
- versionRecordToken: toSystemParamsAsset(versionRecordToken),
709
- pollManagerValHash: pollManagerValHash,
710
- daoIdentityToken: toSystemParamsAsset(daoAsset),
711
- iAssetAuthToken: toSystemParamsAsset(iassetToken),
712
- };
713
- const govValidator = mkGovValidatorFromSP(govParams);
714
- const govValHash = validatorToScriptHash(govValidator);
715
-
716
- await initGovernance(lucid, govParams, govNftAsset, initialAssets);
717
-
718
- const lrpParams: LrpParamsSP = {
719
- iassetNft: cdpParams.iAssetAuthToken,
720
- iassetPolicyId: cdpParams.cdpAssetSymbol,
721
- minRedemptionLovelacesAmt: 10_000_000n,
722
- versionRecordToken: cdpParams.versionRecordToken,
723
- };
724
-
725
- const lrpValidator = mkLrpValidatorFromSP(lrpParams);
726
- const lrpValHash = validatorToScriptHash(lrpValidator);
727
-
728
- // Script ref txs must run sequentially: each spends wallet UTxOs, so the next
729
- // must wait for the previous to confirm and update the wallet's UTxO set.
730
- const scriptRefCalls = [
731
- () => initScriptRef(lucid, lrpValidator),
732
- () => initScriptRef(lucid, cdpCreatorValidator),
733
- () => initScriptRef(lucid, mkCdpValidatorFromSP(cdpParams)),
734
- () => initScriptRef(lucid, collectorValidator),
735
- () => initScriptRef(lucid, executeValidator),
736
- () => initScriptRef(lucid, govValidator),
737
- () => initScriptRef(lucid, pollShardValidator),
738
- () => initScriptRef(lucid, pollManagerValidator),
739
- () =>
740
- initScriptRef(lucid, assetSymbolPolicy as unknown as SpendingValidator),
741
- () => initScriptRef(lucid, mkStakingValidatorFromSP(stakingParams)),
742
- () => initScriptRef(lucid, stabilityPoolValidator),
743
- () => initScriptRef(lucid, treasuryValidator),
744
- () => initScriptRef(lucid, govValidator),
745
- () => initScriptRef(lucid, versionRegistryValidator),
746
- () =>
747
- initScriptRef(
748
- lucid,
749
- versionRecordTokenPolicy as unknown as SpendingValidator,
750
- ),
751
- () => initScriptRef(lucid, cdpTokenPolicy as unknown as SpendingValidator),
752
- () =>
753
- initScriptRef(lucid, iassetTokenPolicy as unknown as SpendingValidator),
754
- () =>
755
- initScriptRef(lucid, accountTokenPolicy as unknown as SpendingValidator),
756
- () =>
757
- initScriptRef(
758
- lucid,
759
- stabilityPoolTokenPolicy as unknown as SpendingValidator,
760
- ),
761
- () => initScriptRef(lucid, pollTokenPolicy as unknown as SpendingValidator),
762
- () =>
763
- initScriptRef(lucid, stakingTokenPolicy as unknown as SpendingValidator),
764
- () =>
765
- initScriptRef(
766
- lucid,
767
- versionRecordTokenPolicy as unknown as SpendingValidator,
768
- ),
769
- () =>
770
- initScriptRef(lucid, assetSymbolPolicy as unknown as SpendingValidator),
771
- () =>
772
- initScriptRef(lucid, upgradeTokenPolicy as unknown as SpendingValidator),
773
- () =>
774
- initScriptRef(
775
- lucid,
776
- stabilityPoolTokenPolicy as unknown as SpendingValidator,
777
- ),
778
- () =>
779
- initScriptRef(
780
- lucid,
781
- snapshotEpochToScaleToSumTokenPolicy as unknown as SpendingValidator,
782
- ),
783
- ];
784
- const scriptRefInputs: Input[] = [];
785
- for (const fn of scriptRefCalls) {
786
- scriptRefInputs.push(await fn());
787
- }
788
-
789
- const [
790
- lrpValidatorRef,
791
- cdpCreatorValidatorRef,
792
- cdpValidatorRef,
793
- collectorValidatorRef,
794
- executeValidatorRef,
795
- govValidatorRef,
796
- pollShardValidatorRef,
797
- pollManagerValidatorRef,
798
- iAssetTokenPolicyRef,
799
- stakingValidatorRef,
800
- stabilityPoolValidatorRef,
801
- treasuryValidatorRef,
802
- governanceValidatorRef,
803
- versionRegistryValidatorRef,
804
- versionRecordTokenPolicyRef,
805
- cdpAuthTokenRef,
806
- iAssetAuthTokenRef,
807
- accountTokenRef,
808
- stabilityPoolAuthTokenRef,
809
- pollManagerTokenRef,
810
- stakingTokenRef,
811
- versionRecordTokenRef,
812
- iAssetTokenRef,
813
- upgradeTokenRef,
814
- stabilityPoolTokenRef,
815
- snapshotEpochToScaleToSumTokenRef,
816
- ] = scriptRefInputs;
817
-
818
- return [
819
- {
820
- cdpParams: cdpParams,
821
- cdpCreatorParams: cdpCreatorParams,
822
- collectorParams: collectorParams,
823
- executeParams: executeParams,
824
- govParams: govParams,
825
- stakingParams: stakingParams,
826
- stabilityPoolParams: stabilityPoolParams,
827
- treasuryParams: treasuryParams,
828
- pollShardParams: pollShardParams,
829
- pollManagerParams: pollManagerParams,
830
- indyToken: toSystemParamsAsset(indyAsset),
831
- distributionParams: {
832
- treasuryIndyAmount: 1_575_000_000_000,
833
- totalINDYSupply: 35_000_000_000_000,
834
- initialIndyDistribution: 1_575_000_000_000,
835
- },
836
- lrpParams: lrpParams,
837
- versionRecordParams: versionRecordParams,
838
- startTime: {
839
- slot: 0,
840
- blockHeader: '',
841
- },
842
- scriptReferences: {
843
- lrpValidatorRef: { input: lrpValidatorRef },
844
- cdpCreatorValidatorRef: { input: cdpCreatorValidatorRef },
845
- cdpValidatorRef: { input: cdpValidatorRef },
846
- collectorValidatorRef: { input: collectorValidatorRef },
847
- executeValidatorRef: { input: executeValidatorRef },
848
- govValidatorRef: { input: govValidatorRef },
849
- pollShardValidatorRef: { input: pollShardValidatorRef },
850
- pollManagerValidatorRef: { input: pollManagerValidatorRef },
851
- iAssetTokenPolicyRef: { input: iAssetTokenPolicyRef },
852
- stakingValidatorRef: { input: stakingValidatorRef },
853
- stabilityPoolValidatorRef: { input: stabilityPoolValidatorRef },
854
- treasuryValidatorRef: { input: treasuryValidatorRef },
855
- governanceValidatorRef: { input: governanceValidatorRef },
856
- versionRegistryValidatorRef: { input: versionRegistryValidatorRef },
857
- versionRecordTokenPolicyRef: { input: versionRecordTokenPolicyRef },
858
- authTokenPolicies: {
859
- cdpAuthTokenRef: { input: cdpAuthTokenRef },
860
- iAssetAuthTokenRef: { input: iAssetAuthTokenRef },
861
- accountTokenRef: { input: accountTokenRef },
862
- stabilityPoolAuthTokenRef: { input: stabilityPoolAuthTokenRef },
863
- pollManagerTokenRef: { input: pollManagerTokenRef },
864
- stakingTokenRef: { input: stakingTokenRef },
865
- versionRecordTokenRef: { input: versionRecordTokenRef },
866
- iAssetTokenRef: { input: iAssetTokenRef },
867
- upgradeTokenRef: { input: upgradeTokenRef },
868
- stabilityPoolTokenRef: { input: stabilityPoolTokenRef },
869
- snapshotEpochToScaleToSumTokenRef: {
870
- input: snapshotEpochToScaleToSumTokenRef,
871
- },
872
- },
873
- },
874
- validatorHashes: {
875
- cdpCreatorHash: cdpCreatorValHash,
876
- cdpHash: cdpValHash,
877
- executeHash: executeValHash,
878
- govHash: govValHash,
879
- pollShardHash: pollShardValHash,
880
- pollManagerHash: pollManagerValHash,
881
- treasuryHash: treasuryValHash,
882
- stabilityPoolHash: stabilityPoolValHash,
883
- stakingHash: stakingValHash,
884
- collectorHash: collectorValHash,
885
- versionRegistryHash: versionRegistryValHash,
886
- lrpHash: lrpValHash,
887
- },
888
- } as SystemParams,
889
- assetInfos,
890
- ];
891
- }