@indigo-labs/indigo-sdk 0.2.41 → 0.3.0

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 (201) hide show
  1. package/.github/workflows/ci.yml +4 -2
  2. package/dist/index.d.mts +3008 -2194
  3. package/dist/index.d.ts +3008 -2194
  4. package/dist/index.js +9827 -6194
  5. package/dist/index.mjs +8591 -4809
  6. package/package.json +14 -3
  7. package/src/contracts/cdp/helpers.ts +68 -72
  8. package/src/contracts/cdp/scripts.ts +50 -13
  9. package/src/contracts/cdp/transactions.ts +831 -545
  10. package/src/contracts/cdp/types-new.ts +256 -0
  11. package/src/contracts/cdp/types.ts +26 -144
  12. package/src/contracts/cdp-creator/scripts.ts +15 -9
  13. package/src/contracts/cdp-creator/types-new.ts +50 -0
  14. package/src/contracts/cdp-creator/types.ts +5 -31
  15. package/src/contracts/collector/scripts.ts +1 -1
  16. package/src/contracts/collector/transactions.ts +23 -13
  17. package/src/contracts/collector/types-new.ts +17 -0
  18. package/src/contracts/execute/scripts.ts +19 -10
  19. package/src/contracts/execute/types-new.ts +44 -0
  20. package/src/contracts/execute/types.ts +5 -38
  21. package/src/contracts/gov/helpers.ts +187 -51
  22. package/src/contracts/gov/scripts.ts +17 -10
  23. package/src/contracts/gov/transactions.ts +599 -271
  24. package/src/contracts/gov/types-new.ts +253 -100
  25. package/src/contracts/gov/types.ts +4 -71
  26. package/src/contracts/iasset/helpers.ts +172 -0
  27. package/src/contracts/iasset/scripts.ts +38 -0
  28. package/src/contracts/iasset/types.ts +154 -0
  29. package/src/contracts/initialize/actions.ts +768 -0
  30. package/src/contracts/initialize/helpers.ts +611 -36
  31. package/src/contracts/initialize/types.ts +102 -28
  32. package/src/contracts/interest-collection/helpers.ts +19 -0
  33. package/src/contracts/interest-collection/scripts.ts +44 -0
  34. package/src/contracts/interest-collection/transactions.ts +436 -0
  35. package/src/contracts/interest-collection/types-new.ts +50 -0
  36. package/src/contracts/interest-collection/types.ts +26 -0
  37. package/src/contracts/interest-oracle/helpers.ts +2 -30
  38. package/src/contracts/interest-oracle/scripts.ts +1 -1
  39. package/src/contracts/interest-oracle/transactions.ts +21 -16
  40. package/src/contracts/interest-oracle/types-new.ts +32 -0
  41. package/src/contracts/interest-oracle/types.ts +1 -40
  42. package/src/contracts/one-shot/transactions.ts +1 -2
  43. package/src/contracts/poll/helpers.ts +5 -23
  44. package/src/contracts/poll/scripts.ts +12 -13
  45. package/src/contracts/poll/types-poll-manager.ts +1 -19
  46. package/src/contracts/poll/types-poll-new.ts +170 -0
  47. package/src/contracts/poll/types-poll-shard.ts +2 -24
  48. package/src/contracts/price-oracle/helpers.ts +1 -4
  49. package/src/contracts/price-oracle/scripts.ts +3 -8
  50. package/src/contracts/price-oracle/transactions.ts +32 -25
  51. package/src/contracts/price-oracle/types-new.ts +50 -0
  52. package/src/contracts/price-oracle/types.ts +2 -36
  53. package/src/contracts/pyth-feed/helpers.ts +58 -0
  54. package/src/contracts/pyth-feed/scripts.ts +15 -0
  55. package/src/contracts/pyth-feed/types.ts +181 -0
  56. package/src/contracts/rob/helpers.ts +405 -0
  57. package/src/contracts/rob/scripts.ts +35 -0
  58. package/src/contracts/rob/transactions.ts +410 -0
  59. package/src/contracts/rob/types-new.ts +128 -0
  60. package/src/contracts/rob/types.ts +16 -0
  61. package/src/contracts/rob-leverage/helpers.ts +424 -0
  62. package/src/contracts/{leverage → rob-leverage}/transactions.ts +68 -48
  63. package/src/contracts/stability-pool/helpers.ts +714 -230
  64. package/src/contracts/stability-pool/scripts.ts +20 -15
  65. package/src/contracts/stability-pool/transactions.ts +625 -495
  66. package/src/contracts/stability-pool/types-new.ts +237 -100
  67. package/src/contracts/stability-pool/types.ts +5 -22
  68. package/src/contracts/stableswap/helpers.ts +22 -0
  69. package/src/contracts/stableswap/scripts.ts +37 -0
  70. package/src/contracts/stableswap/transactions.ts +647 -0
  71. package/src/contracts/stableswap/types-new.ts +131 -0
  72. package/src/contracts/stableswap/types.ts +17 -0
  73. package/src/contracts/staking/helpers.ts +49 -34
  74. package/src/contracts/staking/scripts.ts +1 -1
  75. package/src/contracts/staking/transactions.ts +85 -130
  76. package/src/contracts/staking/types-new.ts +60 -28
  77. package/src/contracts/staking/types.ts +1 -28
  78. package/src/contracts/treasury/helpers.ts +21 -0
  79. package/src/contracts/treasury/scripts.ts +16 -26
  80. package/src/contracts/treasury/transactions.ts +256 -27
  81. package/src/contracts/treasury/types-new.ts +69 -0
  82. package/src/contracts/treasury/types.ts +2 -43
  83. package/src/contracts/version-registry/scripts.ts +2 -2
  84. package/src/contracts/version-registry/types-new.ts +6 -7
  85. package/src/index.ts +37 -20
  86. package/src/scripts/auth-token-policy.ts +3 -2
  87. package/src/scripts/iasset-policy.ts +3 -2
  88. package/src/types/evolution-schema-options.ts +3 -3
  89. package/src/types/generic.ts +17 -89
  90. package/src/types/multisig.ts +48 -0
  91. package/src/types/on-chain-decimal.ts +14 -7
  92. package/src/types/rational.ts +61 -0
  93. package/src/types/system-params.ts +237 -41
  94. package/src/utils/array-utils.ts +70 -1
  95. package/src/utils/bigint-utils.ts +12 -0
  96. package/src/utils/indigo-helpers.ts +8 -10
  97. package/src/utils/lucid-utils.ts +47 -40
  98. package/src/utils/oracle-helpers.ts +62 -0
  99. package/src/utils/pyth/decode.ts +223 -0
  100. package/src/utils/pyth/encode.ts +262 -0
  101. package/src/utils/pyth/index.ts +14 -0
  102. package/src/utils/pyth/types.ts +87 -0
  103. package/src/validators/always-succeed-validator.ts +6 -0
  104. package/src/validators/cdp-creator-validator.ts +2 -2
  105. package/src/validators/cdp-redeem-validator.ts +7 -0
  106. package/src/validators/cdp-validator.ts +2 -2
  107. package/src/validators/collector-validator.ts +2 -2
  108. package/src/validators/execute-validator.ts +2 -2
  109. package/src/validators/governance-validator.ts +2 -2
  110. package/src/validators/iasset-validator.ts +7 -0
  111. package/src/validators/interest-collection-validator.ts +7 -0
  112. package/src/validators/interest-oracle-validator.ts +2 -2
  113. package/src/validators/poll-manager-validator.ts +2 -2
  114. package/src/validators/poll-shard-validator.ts +2 -2
  115. package/src/validators/price-oracle-validator.ts +7 -0
  116. package/src/validators/pyth-feed-validator.ts +7 -0
  117. package/src/validators/rob-validator.ts +7 -0
  118. package/src/validators/stability-pool-validator.ts +2 -2
  119. package/src/validators/stableswap-validator.ts +7 -0
  120. package/src/validators/staking-validator.ts +2 -2
  121. package/src/validators/treasury-validator.ts +2 -2
  122. package/src/validators/version-record-policy.ts +2 -2
  123. package/src/validators/version-registry-validator.ts +2 -2
  124. package/tests/always-succeed/script.ts +7 -0
  125. package/tests/bigint-utils.test.ts +41 -0
  126. package/tests/cdp/actions.ts +611 -0
  127. package/tests/cdp/cdp-helpers.ts +55 -0
  128. package/tests/cdp/cdp-queries.ts +440 -0
  129. package/tests/cdp/cdp.test.ts +6087 -0
  130. package/tests/cdp/transactions-mutated.ts +1729 -0
  131. package/tests/data/system-params.json +177 -34
  132. package/tests/datums.test.ts +209 -210
  133. package/tests/endpoints/initialize.ts +68 -0
  134. package/tests/endpoints/interest-collector.ts +37 -0
  135. package/tests/endpoints/treasury.ts +70 -0
  136. package/tests/gov/actions.ts +406 -0
  137. package/tests/gov/gov.test.ts +4450 -0
  138. package/tests/{queries → gov}/governance-queries.ts +6 -3
  139. package/tests/hash-checks.test.ts +38 -11
  140. package/tests/indigo-test-helpers.ts +100 -0
  141. package/tests/initialize.test.ts +61 -9
  142. package/tests/interest-collection/interest-collection.test.ts +892 -0
  143. package/tests/interest-collection/interest-collector-queries.ts +49 -0
  144. package/tests/interest-collection/transactions-mutated.ts +260 -0
  145. package/tests/interest-oracle.test.ts +43 -35
  146. package/tests/mock/assets-mock.ts +234 -23
  147. package/tests/mock/protocol-params-mock.ts +21 -0
  148. package/tests/price-oracle/actions.ts +163 -0
  149. package/tests/price-oracle/price-oracle-queries.ts +12 -0
  150. package/tests/price-oracle/price-oracle.test.ts +240 -0
  151. package/tests/price-oracle/transactions-mutated.ts +62 -0
  152. package/tests/pyth/endpoints.ts +96 -0
  153. package/tests/pyth/helpers.ts +37 -0
  154. package/tests/pyth/pyth-encoding.test.ts +376 -0
  155. package/tests/pyth/pyth-indigo.test.ts +509 -0
  156. package/tests/pyth/pyth.test.ts +300 -0
  157. package/tests/queries/execute-queries.ts +6 -5
  158. package/tests/queries/iasset-queries.ts +175 -5
  159. package/tests/queries/interest-oracle-queries.ts +4 -2
  160. package/tests/queries/poll-queries.ts +8 -9
  161. package/tests/queries/stability-pool-queries.ts +95 -48
  162. package/tests/queries/staking-queries.ts +4 -2
  163. package/tests/queries/treasury-queries.ts +80 -5
  164. package/tests/rob/actions.ts +58 -0
  165. package/tests/{lrp-leverage.test.ts → rob/rob-leverage.test.ts} +393 -296
  166. package/tests/rob/rob-queries.ts +95 -0
  167. package/tests/rob/rob.test.ts +3762 -0
  168. package/tests/rob/transactions-mutated.ts +853 -0
  169. package/tests/script-size.test.ts +240 -0
  170. package/tests/setup.ts +135 -0
  171. package/tests/stability-pool/actions.ts +210 -0
  172. package/tests/stability-pool.test.ts +5469 -666
  173. package/tests/stableswap/stableswap-actions.ts +84 -0
  174. package/tests/stableswap/stableswap-queries.ts +89 -0
  175. package/tests/stableswap/stableswap.test.ts +3891 -0
  176. package/tests/stableswap/transactions-mutated.ts +348 -0
  177. package/tests/staking.test.ts +82 -99
  178. package/tests/test-helpers.ts +58 -11
  179. package/tests/treasury.test.ts +242 -0
  180. package/tests/utils/asserts.ts +74 -0
  181. package/tests/utils/benchmark-utils.ts +81 -0
  182. package/tests/utils/index.ts +122 -4
  183. package/tsconfig.json +9 -1
  184. package/vitest.config.ts +3 -1
  185. package/src/contracts/collector/types.ts +0 -16
  186. package/src/contracts/initialize/transactions.ts +0 -891
  187. package/src/contracts/leverage/helpers.ts +0 -424
  188. package/src/contracts/lrp/helpers.ts +0 -294
  189. package/src/contracts/lrp/scripts.ts +0 -27
  190. package/src/contracts/lrp/transactions.ts +0 -250
  191. package/src/contracts/lrp/types.ts +0 -131
  192. package/src/contracts/poll/types-poll.ts +0 -88
  193. package/src/contracts/vesting/helpers.ts +0 -218
  194. package/src/utils/value-helpers.ts +0 -37
  195. package/src/validators/lrp-validator.ts +0 -7
  196. package/tests/cdp.test.ts +0 -1528
  197. package/tests/gov.test.ts +0 -2011
  198. package/tests/lrp.test.ts +0 -673
  199. package/tests/queries/cdp-queries.ts +0 -220
  200. package/tests/queries/lrp-queries.ts +0 -76
  201. 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
- }