@chainlink/ccip-sdk 1.3.0 → 1.4.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 (93) hide show
  1. package/dist/api/index.d.ts +17 -6
  2. package/dist/api/index.d.ts.map +1 -1
  3. package/dist/api/index.js +17 -6
  4. package/dist/api/index.js.map +1 -1
  5. package/dist/aptos/index.d.ts +7 -1
  6. package/dist/aptos/index.d.ts.map +1 -1
  7. package/dist/aptos/index.js +20 -0
  8. package/dist/aptos/index.js.map +1 -1
  9. package/dist/chain.d.ts +64 -6
  10. package/dist/chain.d.ts.map +1 -1
  11. package/dist/chain.js +37 -2
  12. package/dist/chain.js.map +1 -1
  13. package/dist/errors/recovery.js +1 -1
  14. package/dist/errors/specialized.d.ts +17 -3
  15. package/dist/errors/specialized.d.ts.map +1 -1
  16. package/dist/errors/specialized.js +17 -3
  17. package/dist/errors/specialized.js.map +1 -1
  18. package/dist/evm/const.d.ts.map +1 -1
  19. package/dist/evm/const.js +3 -0
  20. package/dist/evm/const.js.map +1 -1
  21. package/dist/evm/errors.d.ts.map +1 -1
  22. package/dist/evm/errors.js +20 -5
  23. package/dist/evm/errors.js.map +1 -1
  24. package/dist/evm/index.d.ts +11 -2
  25. package/dist/evm/index.d.ts.map +1 -1
  26. package/dist/evm/index.js +65 -14
  27. package/dist/evm/index.js.map +1 -1
  28. package/dist/gas.d.ts +2 -1
  29. package/dist/gas.d.ts.map +1 -1
  30. package/dist/gas.js +2 -1
  31. package/dist/gas.js.map +1 -1
  32. package/dist/index.d.ts +1 -1
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js.map +1 -1
  35. package/dist/offchain.d.ts +1 -0
  36. package/dist/offchain.d.ts.map +1 -1
  37. package/dist/offchain.js +1 -0
  38. package/dist/offchain.js.map +1 -1
  39. package/dist/requests.d.ts +6 -5
  40. package/dist/requests.d.ts.map +1 -1
  41. package/dist/requests.js +6 -5
  42. package/dist/requests.js.map +1 -1
  43. package/dist/solana/idl/1.6.0/FEE_QUOTER.d.ts +1719 -0
  44. package/dist/solana/idl/1.6.0/FEE_QUOTER.d.ts.map +1 -0
  45. package/dist/solana/idl/1.6.0/FEE_QUOTER.js +1719 -0
  46. package/dist/solana/idl/1.6.0/FEE_QUOTER.js.map +1 -0
  47. package/dist/solana/index.d.ts +17 -1
  48. package/dist/solana/index.d.ts.map +1 -1
  49. package/dist/solana/index.js +37 -9
  50. package/dist/solana/index.js.map +1 -1
  51. package/dist/solana/utils.d.ts +6 -3
  52. package/dist/solana/utils.d.ts.map +1 -1
  53. package/dist/solana/utils.js +17 -16
  54. package/dist/solana/utils.js.map +1 -1
  55. package/dist/sui/index.d.ts +1 -1
  56. package/dist/sui/index.d.ts.map +1 -1
  57. package/dist/sui/index.js +1 -1
  58. package/dist/sui/index.js.map +1 -1
  59. package/dist/ton/index.d.ts +11 -9
  60. package/dist/ton/index.d.ts.map +1 -1
  61. package/dist/ton/index.js +11 -9
  62. package/dist/ton/index.js.map +1 -1
  63. package/dist/ton/send.d.ts +7 -0
  64. package/dist/ton/send.d.ts.map +1 -1
  65. package/dist/ton/send.js +7 -0
  66. package/dist/ton/send.js.map +1 -1
  67. package/dist/types.d.ts +1 -1
  68. package/dist/types.d.ts.map +1 -1
  69. package/dist/utils.d.ts +9 -2
  70. package/dist/utils.d.ts.map +1 -1
  71. package/dist/utils.js +16 -5
  72. package/dist/utils.js.map +1 -1
  73. package/package.json +7 -7
  74. package/src/api/index.ts +17 -6
  75. package/src/aptos/index.ts +31 -0
  76. package/src/chain.ts +67 -7
  77. package/src/errors/recovery.ts +1 -1
  78. package/src/errors/specialized.ts +17 -3
  79. package/src/evm/const.ts +3 -0
  80. package/src/evm/errors.ts +22 -5
  81. package/src/evm/index.ts +102 -13
  82. package/src/gas.ts +2 -1
  83. package/src/index.ts +1 -0
  84. package/src/offchain.ts +1 -0
  85. package/src/requests.ts +6 -5
  86. package/src/solana/idl/1.6.0/FEE_QUOTER.ts +3440 -0
  87. package/src/solana/index.ts +55 -10
  88. package/src/solana/utils.ts +29 -19
  89. package/src/sui/index.ts +1 -1
  90. package/src/ton/index.ts +11 -9
  91. package/src/ton/send.ts +7 -0
  92. package/src/types.ts +1 -1
  93. package/src/utils.ts +19 -6
@@ -0,0 +1,3440 @@
1
+ // generate:
2
+ // fetch('https://github.com/smartcontractkit/chainlink-ccip/raw/refs/heads/main/chains/solana/contracts/target/types/fee_quoter.ts')
3
+ // .then((res) => res.text())
4
+ // .then((text) => text.trim().split('\n'))
5
+ export type FeeQuoter = {
6
+ version: '1.6.1'
7
+ name: 'fee_quoter'
8
+ instructions: [
9
+ {
10
+ name: 'initialize'
11
+ docs: [
12
+ 'Initializes the Fee Quoter.',
13
+ '',
14
+ 'The initialization is responsibility of Admin, nothing more than calling this method should be done first.',
15
+ '',
16
+ '# Arguments',
17
+ '',
18
+ '* `ctx` - The context containing the accounts required for initialization.',
19
+ '* `max_fee_juels_per_msg` - The maximum fee in juels that can be charged per message.',
20
+ '* `onramp` - The public key of the onramp.',
21
+ '',
22
+ 'The function also uses the link_token_mint account from the context.',
23
+ ]
24
+ accounts: [
25
+ {
26
+ name: 'config'
27
+ isMut: true
28
+ isSigner: false
29
+ },
30
+ {
31
+ name: 'linkTokenMint'
32
+ isMut: false
33
+ isSigner: false
34
+ },
35
+ {
36
+ name: 'authority'
37
+ isMut: true
38
+ isSigner: true
39
+ },
40
+ {
41
+ name: 'systemProgram'
42
+ isMut: false
43
+ isSigner: false
44
+ },
45
+ {
46
+ name: 'program'
47
+ isMut: false
48
+ isSigner: false
49
+ },
50
+ {
51
+ name: 'programData'
52
+ isMut: false
53
+ isSigner: false
54
+ },
55
+ ]
56
+ args: [
57
+ {
58
+ name: 'maxFeeJuelsPerMsg'
59
+ type: 'u128'
60
+ },
61
+ {
62
+ name: 'onramp'
63
+ type: 'publicKey'
64
+ },
65
+ ]
66
+ },
67
+ {
68
+ name: 'typeVersion'
69
+ docs: [
70
+ 'Returns the program type (name) and version.',
71
+ 'Used by offchain code to easily determine which program & version is being interacted with.',
72
+ '',
73
+ '# Arguments',
74
+ '* `ctx` - The context',
75
+ ]
76
+ accounts: [
77
+ {
78
+ name: 'clock'
79
+ isMut: false
80
+ isSigner: false
81
+ },
82
+ ]
83
+ args: []
84
+ returns: 'string'
85
+ },
86
+ {
87
+ name: 'transferOwnership'
88
+ docs: [
89
+ 'Transfers the ownership of the fee quoter to a new proposed owner.',
90
+ '',
91
+ 'Shared func signature with other programs',
92
+ '',
93
+ '# Arguments',
94
+ '',
95
+ '* `ctx` - The context containing the accounts required for the transfer.',
96
+ '* `proposed_owner` - The public key of the new proposed owner.',
97
+ ]
98
+ accounts: [
99
+ {
100
+ name: 'config'
101
+ isMut: true
102
+ isSigner: false
103
+ },
104
+ {
105
+ name: 'authority'
106
+ isMut: false
107
+ isSigner: true
108
+ },
109
+ ]
110
+ args: [
111
+ {
112
+ name: 'newOwner'
113
+ type: 'publicKey'
114
+ },
115
+ ]
116
+ },
117
+ {
118
+ name: 'acceptOwnership'
119
+ docs: [
120
+ 'Accepts the ownership of the fee quoter by the proposed owner.',
121
+ '',
122
+ 'Shared func signature with other programs',
123
+ '',
124
+ '# Arguments',
125
+ '',
126
+ '* `ctx` - The context containing the accounts required for accepting ownership.',
127
+ 'The new owner must be a signer of the transaction.',
128
+ ]
129
+ accounts: [
130
+ {
131
+ name: 'config'
132
+ isMut: true
133
+ isSigner: false
134
+ },
135
+ {
136
+ name: 'authority'
137
+ isMut: false
138
+ isSigner: true
139
+ },
140
+ ]
141
+ args: []
142
+ },
143
+ {
144
+ name: 'setDefaultCodeVersion'
145
+ docs: [
146
+ 'Sets the default code version to be used. This is then used by the slim routing layer to determine',
147
+ 'which version of the versioned business logic module (`instructions`) to use. Only the admin may set this.',
148
+ '',
149
+ 'Shared func signature with other programs',
150
+ '',
151
+ '# Arguments',
152
+ '',
153
+ '* `ctx` - The context containing the accounts required for updating the configuration.',
154
+ '* `code_version` - The new code version to be set as default.',
155
+ ]
156
+ accounts: [
157
+ {
158
+ name: 'config'
159
+ isMut: true
160
+ isSigner: false
161
+ },
162
+ {
163
+ name: 'authority'
164
+ isMut: false
165
+ isSigner: true
166
+ },
167
+ ]
168
+ args: [
169
+ {
170
+ name: 'codeVersion'
171
+ type: {
172
+ defined: 'CodeVersion'
173
+ }
174
+ },
175
+ ]
176
+ },
177
+ {
178
+ name: 'setMaxFeeJuelsPerMsg'
179
+ docs: [
180
+ 'Sets the max_fee_juels_per_msg, which is an upper bound on how much can be billed for any message.',
181
+ '(1 juels = 1e-18 LINK)',
182
+ '',
183
+ 'Only the admin may set this.',
184
+ '',
185
+ '# Arguments',
186
+ '',
187
+ '* `ctx` - The context containing the accounts required for updating the configuration.',
188
+ '* `max_fee_juels_per_msg` - The new value for the max_feel_juels_per_msg config.',
189
+ ]
190
+ accounts: [
191
+ {
192
+ name: 'config'
193
+ isMut: true
194
+ isSigner: false
195
+ },
196
+ {
197
+ name: 'authority'
198
+ isMut: false
199
+ isSigner: true
200
+ },
201
+ ]
202
+ args: [
203
+ {
204
+ name: 'maxFeeJuelsPerMsg'
205
+ type: 'u128'
206
+ },
207
+ ]
208
+ },
209
+ {
210
+ name: 'setLinkTokenMint'
211
+ docs: [
212
+ 'Sets the link_token_mint and updates the link_token_local_decimals.',
213
+ '',
214
+ 'Only the admin may set this.',
215
+ '',
216
+ '# Arguments',
217
+ '',
218
+ '* `ctx` - The context containing the accounts required for updating the configuration.',
219
+ ]
220
+ accounts: [
221
+ {
222
+ name: 'config'
223
+ isMut: true
224
+ isSigner: false
225
+ },
226
+ {
227
+ name: 'linkTokenMint'
228
+ isMut: false
229
+ isSigner: false
230
+ },
231
+ {
232
+ name: 'authority'
233
+ isMut: false
234
+ isSigner: true
235
+ },
236
+ ]
237
+ args: []
238
+ },
239
+ {
240
+ name: 'addBillingTokenConfig'
241
+ docs: [
242
+ 'Adds a billing token configuration.',
243
+ 'Only CCIP Admin can add a billing token configuration.',
244
+ '',
245
+ '# Arguments',
246
+ '',
247
+ '* `ctx` - The context containing the accounts required for adding the billing token configuration.',
248
+ '* `config` - The billing token configuration to be added.',
249
+ ]
250
+ accounts: [
251
+ {
252
+ name: 'config'
253
+ isMut: false
254
+ isSigner: false
255
+ },
256
+ {
257
+ name: 'billingTokenConfig'
258
+ isMut: true
259
+ isSigner: false
260
+ },
261
+ {
262
+ name: 'tokenProgram'
263
+ isMut: false
264
+ isSigner: false
265
+ },
266
+ {
267
+ name: 'feeTokenMint'
268
+ isMut: false
269
+ isSigner: false
270
+ },
271
+ {
272
+ name: 'feeTokenReceiver'
273
+ isMut: true
274
+ isSigner: false
275
+ },
276
+ {
277
+ name: 'authority'
278
+ isMut: true
279
+ isSigner: true
280
+ },
281
+ {
282
+ name: 'feeBillingSigner'
283
+ isMut: false
284
+ isSigner: false
285
+ },
286
+ {
287
+ name: 'associatedTokenProgram'
288
+ isMut: false
289
+ isSigner: false
290
+ },
291
+ {
292
+ name: 'systemProgram'
293
+ isMut: false
294
+ isSigner: false
295
+ },
296
+ ]
297
+ args: [
298
+ {
299
+ name: 'config'
300
+ type: {
301
+ defined: 'BillingTokenConfig'
302
+ }
303
+ },
304
+ ]
305
+ },
306
+ {
307
+ name: 'updateBillingTokenConfig'
308
+ docs: [
309
+ 'Updates the billing token configuration.',
310
+ 'Only CCIP Admin can update a billing token configuration.',
311
+ '',
312
+ '# Arguments',
313
+ '',
314
+ '* `ctx` - The context containing the accounts required for updating the billing token configuration.',
315
+ '* `config` - The new billing token configuration.',
316
+ ]
317
+ accounts: [
318
+ {
319
+ name: 'config'
320
+ isMut: false
321
+ isSigner: false
322
+ },
323
+ {
324
+ name: 'billingTokenConfig'
325
+ isMut: true
326
+ isSigner: false
327
+ },
328
+ {
329
+ name: 'authority'
330
+ isMut: false
331
+ isSigner: true
332
+ },
333
+ ]
334
+ args: [
335
+ {
336
+ name: 'config'
337
+ type: {
338
+ defined: 'BillingTokenConfig'
339
+ }
340
+ },
341
+ ]
342
+ },
343
+ {
344
+ name: 'addDestChain'
345
+ docs: [
346
+ 'Adds a new destination chain selector to the fee quoter.',
347
+ '',
348
+ 'The Admin needs to add any new chain supported.',
349
+ "When adding a new chain, the Admin needs to specify if it's enabled or not.",
350
+ '',
351
+ '# Arguments',
352
+ '',
353
+ '* `ctx` - The context containing the accounts required for adding the chain selector.',
354
+ '* `chain_selector` - The new chain selector to be added.',
355
+ '* `dest_chain_config` - The configuration for the chain as destination.',
356
+ ]
357
+ accounts: [
358
+ {
359
+ name: 'config'
360
+ isMut: false
361
+ isSigner: false
362
+ },
363
+ {
364
+ name: 'destChain'
365
+ isMut: true
366
+ isSigner: false
367
+ },
368
+ {
369
+ name: 'authority'
370
+ isMut: true
371
+ isSigner: true
372
+ },
373
+ {
374
+ name: 'systemProgram'
375
+ isMut: false
376
+ isSigner: false
377
+ },
378
+ ]
379
+ args: [
380
+ {
381
+ name: 'chainSelector'
382
+ type: 'u64'
383
+ },
384
+ {
385
+ name: 'destChainConfig'
386
+ type: {
387
+ defined: 'DestChainConfig'
388
+ }
389
+ },
390
+ ]
391
+ },
392
+ {
393
+ name: 'disableDestChain'
394
+ docs: [
395
+ 'Disables the destination chain selector.',
396
+ '',
397
+ 'The Admin is the only one able to disable the chain selector as destination. This method is thought of as an emergency kill-switch.',
398
+ '',
399
+ '# Arguments',
400
+ '',
401
+ '* `ctx` - The context containing the accounts required for disabling the chain selector.',
402
+ '* `chain_selector` - The destination chain selector to be disabled.',
403
+ ]
404
+ accounts: [
405
+ {
406
+ name: 'config'
407
+ isMut: false
408
+ isSigner: false
409
+ },
410
+ {
411
+ name: 'destChain'
412
+ isMut: true
413
+ isSigner: false
414
+ },
415
+ {
416
+ name: 'authority'
417
+ isMut: true
418
+ isSigner: true
419
+ },
420
+ ]
421
+ args: [
422
+ {
423
+ name: 'chainSelector'
424
+ type: 'u64'
425
+ },
426
+ ]
427
+ },
428
+ {
429
+ name: 'updateDestChainConfig'
430
+ docs: [
431
+ 'Updates the configuration of the destination chain selector.',
432
+ '',
433
+ 'The Admin is the only one able to update the destination chain config.',
434
+ '',
435
+ '# Arguments',
436
+ '',
437
+ '* `ctx` - The context containing the accounts required for updating the chain selector.',
438
+ '* `chain_selector` - The destination chain selector to be updated.',
439
+ '* `dest_chain_config` - The new configuration for the destination chain.',
440
+ ]
441
+ accounts: [
442
+ {
443
+ name: 'config'
444
+ isMut: false
445
+ isSigner: false
446
+ },
447
+ {
448
+ name: 'destChain'
449
+ isMut: true
450
+ isSigner: false
451
+ },
452
+ {
453
+ name: 'authority'
454
+ isMut: true
455
+ isSigner: true
456
+ },
457
+ ]
458
+ args: [
459
+ {
460
+ name: 'chainSelector'
461
+ type: 'u64'
462
+ },
463
+ {
464
+ name: 'destChainConfig'
465
+ type: {
466
+ defined: 'DestChainConfig'
467
+ }
468
+ },
469
+ ]
470
+ },
471
+ {
472
+ name: 'setTokenTransferFeeConfig'
473
+ docs: [
474
+ "Sets the token transfer fee configuration for a particular token when it's transferred to a particular dest chain.",
475
+ "It is an upsert, initializing the per-chain-per-token config account if it doesn't exist",
476
+ 'and overwriting it if it does.',
477
+ '',
478
+ 'Only the Admin can perform this operation.',
479
+ '',
480
+ '# Arguments',
481
+ '',
482
+ '* `ctx` - The context containing the accounts required for setting the token billing configuration.',
483
+ '* `chain_selector` - The chain selector.',
484
+ '* `mint` - The public key of the token mint.',
485
+ '* `cfg` - The token transfer fee configuration.',
486
+ ]
487
+ accounts: [
488
+ {
489
+ name: 'config'
490
+ isMut: false
491
+ isSigner: false
492
+ },
493
+ {
494
+ name: 'perChainPerTokenConfig'
495
+ isMut: true
496
+ isSigner: false
497
+ },
498
+ {
499
+ name: 'authority'
500
+ isMut: true
501
+ isSigner: true
502
+ },
503
+ {
504
+ name: 'systemProgram'
505
+ isMut: false
506
+ isSigner: false
507
+ },
508
+ ]
509
+ args: [
510
+ {
511
+ name: 'chainSelector'
512
+ type: 'u64'
513
+ },
514
+ {
515
+ name: 'mint'
516
+ type: 'publicKey'
517
+ },
518
+ {
519
+ name: 'cfg'
520
+ type: {
521
+ defined: 'TokenTransferFeeConfig'
522
+ }
523
+ },
524
+ ]
525
+ },
526
+ {
527
+ name: 'addPriceUpdater'
528
+ docs: [
529
+ 'Add a price updater address to the list of allowed price updaters.',
530
+ 'On price updates, the fee quoter will check the that caller is allowed.',
531
+ '',
532
+ '# Arguments',
533
+ '',
534
+ '* `ctx` - The context containing the accounts required for this operation.',
535
+ '* `price_updater` - The price updater address.',
536
+ ]
537
+ accounts: [
538
+ {
539
+ name: 'allowedPriceUpdater'
540
+ isMut: true
541
+ isSigner: false
542
+ },
543
+ {
544
+ name: 'config'
545
+ isMut: false
546
+ isSigner: false
547
+ },
548
+ {
549
+ name: 'authority'
550
+ isMut: true
551
+ isSigner: true
552
+ },
553
+ {
554
+ name: 'systemProgram'
555
+ isMut: false
556
+ isSigner: false
557
+ },
558
+ ]
559
+ args: [
560
+ {
561
+ name: 'priceUpdater'
562
+ type: 'publicKey'
563
+ },
564
+ ]
565
+ },
566
+ {
567
+ name: 'removePriceUpdater'
568
+ docs: [
569
+ 'Remove a price updater address from the list of allowed price updaters.',
570
+ '',
571
+ '# Arguments',
572
+ '',
573
+ '* `ctx` - The context containing the accounts required for this operation.',
574
+ '* `price_updater` - The price updater address.',
575
+ ]
576
+ accounts: [
577
+ {
578
+ name: 'allowedPriceUpdater'
579
+ isMut: true
580
+ isSigner: false
581
+ },
582
+ {
583
+ name: 'config'
584
+ isMut: false
585
+ isSigner: false
586
+ },
587
+ {
588
+ name: 'authority'
589
+ isMut: true
590
+ isSigner: true
591
+ },
592
+ {
593
+ name: 'systemProgram'
594
+ isMut: false
595
+ isSigner: false
596
+ },
597
+ ]
598
+ args: [
599
+ {
600
+ name: 'priceUpdater'
601
+ type: 'publicKey'
602
+ },
603
+ ]
604
+ },
605
+ {
606
+ name: 'getFee'
607
+ docs: [
608
+ 'Calculates the fee for sending a message to the destination chain.',
609
+ '',
610
+ '# Arguments',
611
+ '',
612
+ '* `ctx` - The context containing the accounts required for the fee calculation.',
613
+ '* `dest_chain_selector` - The chain selector for the destination chain.',
614
+ '* `message` - The message to be sent.',
615
+ '',
616
+ '# Additional accounts',
617
+ '',
618
+ 'In addition to the fixed amount of accounts defined in the `GetFee` context,',
619
+ 'the following accounts must be provided:',
620
+ '',
621
+ '* First, the billing token config accounts for each token sent with the message, sequentially.',
622
+ 'For each token with no billing config account (i.e. tokens that cannot be possibly used as fee',
623
+ 'tokens, which also have no BPS fees enabled) the ZERO address must be provided instead.',
624
+ '* Then, the per chain / per token config of every token sent with the message, sequentially',
625
+ 'in the same order.',
626
+ '',
627
+ '# Returns',
628
+ '',
629
+ 'GetFeeResult struct with:',
630
+ '- the fee token mint address,',
631
+ '- the fee amount of said token,',
632
+ '- the fee value in juels,',
633
+ '- additional data required when performing the cross-chain transfer of tokens in that message',
634
+ '- deserialized and processed extra args',
635
+ ]
636
+ accounts: [
637
+ {
638
+ name: 'config'
639
+ isMut: false
640
+ isSigner: false
641
+ },
642
+ {
643
+ name: 'destChain'
644
+ isMut: false
645
+ isSigner: false
646
+ },
647
+ {
648
+ name: 'billingTokenConfig'
649
+ isMut: false
650
+ isSigner: false
651
+ },
652
+ {
653
+ name: 'linkTokenConfig'
654
+ isMut: false
655
+ isSigner: false
656
+ },
657
+ ]
658
+ args: [
659
+ {
660
+ name: 'destChainSelector'
661
+ type: 'u64'
662
+ },
663
+ {
664
+ name: 'message'
665
+ type: {
666
+ defined: 'SVM2AnyMessage'
667
+ }
668
+ },
669
+ ]
670
+ returns: {
671
+ defined: 'GetFeeResult'
672
+ }
673
+ },
674
+ {
675
+ name: 'updatePrices'
676
+ docs: [
677
+ 'Updates prices for tokens and gas. This method may only be called by an allowed price updater.',
678
+ '',
679
+ '# Arguments',
680
+ '',
681
+ '* `ctx` - The context containing the accounts always required for the price updates',
682
+ '* `token_updates` - Vector of token price updates',
683
+ '* `gas_updates` - Vector of gas price updates',
684
+ '',
685
+ '# Additional accounts',
686
+ '',
687
+ 'In addition to the fixed amount of accounts defined in the `UpdatePrices` context,',
688
+ 'the following accounts must be provided:',
689
+ '',
690
+ '* First, the billing token config accounts for each token whose price is being updated, in the same order',
691
+ 'as the token_updates vector.',
692
+ '* Then, the dest chain accounts of every chain whose gas price is being updated, in the same order as the',
693
+ 'gas_updates vector.',
694
+ ]
695
+ accounts: [
696
+ {
697
+ name: 'authority'
698
+ isMut: false
699
+ isSigner: true
700
+ },
701
+ {
702
+ name: 'allowedPriceUpdater'
703
+ isMut: false
704
+ isSigner: false
705
+ docs: [
706
+ 'was added by the owner as an allowed price updater. The constraints enforced guarantee that it is the right PDA',
707
+ 'and that it was initialized.',
708
+ ]
709
+ },
710
+ {
711
+ name: 'config'
712
+ isMut: false
713
+ isSigner: false
714
+ },
715
+ ]
716
+ args: [
717
+ {
718
+ name: 'tokenUpdates'
719
+ type: {
720
+ vec: {
721
+ defined: 'TokenPriceUpdate'
722
+ }
723
+ }
724
+ },
725
+ {
726
+ name: 'gasUpdates'
727
+ type: {
728
+ vec: {
729
+ defined: 'GasPriceUpdate'
730
+ }
731
+ }
732
+ },
733
+ ]
734
+ },
735
+ ]
736
+ accounts: [
737
+ {
738
+ name: 'config'
739
+ type: {
740
+ kind: 'struct'
741
+ fields: [
742
+ {
743
+ name: 'version'
744
+ type: 'u8'
745
+ },
746
+ {
747
+ name: 'owner'
748
+ type: 'publicKey'
749
+ },
750
+ {
751
+ name: 'proposedOwner'
752
+ type: 'publicKey'
753
+ },
754
+ {
755
+ name: 'maxFeeJuelsPerMsg'
756
+ type: 'u128'
757
+ },
758
+ {
759
+ name: 'linkTokenMint'
760
+ type: 'publicKey'
761
+ },
762
+ {
763
+ name: 'linkTokenLocalDecimals'
764
+ type: 'u8'
765
+ },
766
+ {
767
+ name: 'onramp'
768
+ type: 'publicKey'
769
+ },
770
+ {
771
+ name: 'defaultCodeVersion'
772
+ type: {
773
+ defined: 'CodeVersion'
774
+ }
775
+ },
776
+ ]
777
+ }
778
+ },
779
+ {
780
+ name: 'destChain'
781
+ type: {
782
+ kind: 'struct'
783
+ fields: [
784
+ {
785
+ name: 'version'
786
+ type: 'u8'
787
+ },
788
+ {
789
+ name: 'chainSelector'
790
+ type: 'u64'
791
+ },
792
+ {
793
+ name: 'state'
794
+ type: {
795
+ defined: 'DestChainState'
796
+ }
797
+ },
798
+ {
799
+ name: 'config'
800
+ type: {
801
+ defined: 'DestChainConfig'
802
+ }
803
+ },
804
+ ]
805
+ }
806
+ },
807
+ {
808
+ name: 'billingTokenConfigWrapper'
809
+ type: {
810
+ kind: 'struct'
811
+ fields: [
812
+ {
813
+ name: 'version'
814
+ type: 'u8'
815
+ },
816
+ {
817
+ name: 'config'
818
+ type: {
819
+ defined: 'BillingTokenConfig'
820
+ }
821
+ },
822
+ ]
823
+ }
824
+ },
825
+ {
826
+ name: 'perChainPerTokenConfig'
827
+ type: {
828
+ kind: 'struct'
829
+ fields: [
830
+ {
831
+ name: 'version'
832
+ type: 'u8'
833
+ },
834
+ {
835
+ name: 'chainSelector'
836
+ type: 'u64'
837
+ },
838
+ {
839
+ name: 'mint'
840
+ type: 'publicKey'
841
+ },
842
+ {
843
+ name: 'tokenTransferConfig'
844
+ type: {
845
+ defined: 'TokenTransferFeeConfig'
846
+ }
847
+ },
848
+ ]
849
+ }
850
+ },
851
+ {
852
+ name: 'allowedPriceUpdater'
853
+ type: {
854
+ kind: 'struct'
855
+ fields: []
856
+ }
857
+ },
858
+ ]
859
+ types: [
860
+ {
861
+ name: 'TokenPriceUpdate'
862
+ type: {
863
+ kind: 'struct'
864
+ fields: [
865
+ {
866
+ name: 'sourceToken'
867
+ type: 'publicKey'
868
+ },
869
+ {
870
+ name: 'usdPerToken'
871
+ type: {
872
+ array: ['u8', 28]
873
+ }
874
+ },
875
+ ]
876
+ }
877
+ },
878
+ {
879
+ name: 'GasPriceUpdate'
880
+ docs: ['Gas price for a given chain in USD; its value may contain tightly packed fields.']
881
+ type: {
882
+ kind: 'struct'
883
+ fields: [
884
+ {
885
+ name: 'destChainSelector'
886
+ type: 'u64'
887
+ },
888
+ {
889
+ name: 'usdPerUnitGas'
890
+ type: {
891
+ array: ['u8', 28]
892
+ }
893
+ },
894
+ ]
895
+ }
896
+ },
897
+ {
898
+ name: 'GenericExtraArgsV2'
899
+ type: {
900
+ kind: 'struct'
901
+ fields: [
902
+ {
903
+ name: 'gasLimit'
904
+ type: 'u128'
905
+ },
906
+ {
907
+ name: 'allowOutOfOrderExecution'
908
+ type: 'bool'
909
+ },
910
+ ]
911
+ }
912
+ },
913
+ {
914
+ name: 'SVMExtraArgsV1'
915
+ type: {
916
+ kind: 'struct'
917
+ fields: [
918
+ {
919
+ name: 'computeUnits'
920
+ type: 'u32'
921
+ },
922
+ {
923
+ name: 'accountIsWritableBitmap'
924
+ type: 'u64'
925
+ },
926
+ {
927
+ name: 'allowOutOfOrderExecution'
928
+ type: 'bool'
929
+ },
930
+ {
931
+ name: 'tokenReceiver'
932
+ type: {
933
+ array: ['u8', 32]
934
+ }
935
+ },
936
+ {
937
+ name: 'accounts'
938
+ type: {
939
+ vec: {
940
+ array: ['u8', 32]
941
+ }
942
+ }
943
+ },
944
+ ]
945
+ }
946
+ },
947
+ {
948
+ name: 'SVM2AnyMessage'
949
+ type: {
950
+ kind: 'struct'
951
+ fields: [
952
+ {
953
+ name: 'receiver'
954
+ type: 'bytes'
955
+ },
956
+ {
957
+ name: 'data'
958
+ type: 'bytes'
959
+ },
960
+ {
961
+ name: 'tokenAmounts'
962
+ type: {
963
+ vec: {
964
+ defined: 'SVMTokenAmount'
965
+ }
966
+ }
967
+ },
968
+ {
969
+ name: 'feeToken'
970
+ type: 'publicKey'
971
+ },
972
+ {
973
+ name: 'extraArgs'
974
+ type: 'bytes'
975
+ },
976
+ ]
977
+ }
978
+ },
979
+ {
980
+ name: 'SVMTokenAmount'
981
+ type: {
982
+ kind: 'struct'
983
+ fields: [
984
+ {
985
+ name: 'token'
986
+ type: 'publicKey'
987
+ },
988
+ {
989
+ name: 'amount'
990
+ type: 'u64'
991
+ },
992
+ ]
993
+ }
994
+ },
995
+ {
996
+ name: 'TokenTransferAdditionalData'
997
+ type: {
998
+ kind: 'struct'
999
+ fields: [
1000
+ {
1001
+ name: 'destBytesOverhead'
1002
+ type: 'u32'
1003
+ },
1004
+ {
1005
+ name: 'destGasOverhead'
1006
+ type: 'u32'
1007
+ },
1008
+ ]
1009
+ }
1010
+ },
1011
+ {
1012
+ name: 'GetFeeResult'
1013
+ type: {
1014
+ kind: 'struct'
1015
+ fields: [
1016
+ {
1017
+ name: 'token'
1018
+ type: 'publicKey'
1019
+ },
1020
+ {
1021
+ name: 'amount'
1022
+ type: 'u64'
1023
+ },
1024
+ {
1025
+ name: 'juels'
1026
+ type: 'u128'
1027
+ },
1028
+ {
1029
+ name: 'tokenTransferAdditionalData'
1030
+ type: {
1031
+ vec: {
1032
+ defined: 'TokenTransferAdditionalData'
1033
+ }
1034
+ }
1035
+ },
1036
+ {
1037
+ name: 'processedExtraArgs'
1038
+ type: {
1039
+ defined: 'ProcessedExtraArgs'
1040
+ }
1041
+ },
1042
+ ]
1043
+ }
1044
+ },
1045
+ {
1046
+ name: 'ProcessedExtraArgs'
1047
+ type: {
1048
+ kind: 'struct'
1049
+ fields: [
1050
+ {
1051
+ name: 'bytes'
1052
+ type: 'bytes'
1053
+ },
1054
+ {
1055
+ name: 'gasLimit'
1056
+ type: 'u128'
1057
+ },
1058
+ {
1059
+ name: 'allowOutOfOrderExecution'
1060
+ type: 'bool'
1061
+ },
1062
+ {
1063
+ name: 'tokenReceiver'
1064
+ type: {
1065
+ option: 'bytes'
1066
+ }
1067
+ },
1068
+ ]
1069
+ }
1070
+ },
1071
+ {
1072
+ name: 'DestChainConfig'
1073
+ type: {
1074
+ kind: 'struct'
1075
+ fields: [
1076
+ {
1077
+ name: 'isEnabled'
1078
+ type: 'bool'
1079
+ },
1080
+ {
1081
+ name: 'laneCodeVersion'
1082
+ type: {
1083
+ defined: 'CodeVersion'
1084
+ }
1085
+ },
1086
+ {
1087
+ name: 'maxNumberOfTokensPerMsg'
1088
+ type: 'u16'
1089
+ },
1090
+ {
1091
+ name: 'maxDataBytes'
1092
+ type: 'u32'
1093
+ },
1094
+ {
1095
+ name: 'maxPerMsgGasLimit'
1096
+ type: 'u32'
1097
+ },
1098
+ {
1099
+ name: 'destGasOverhead'
1100
+ type: 'u32'
1101
+ },
1102
+ {
1103
+ name: 'destGasPerPayloadByteBase'
1104
+ type: 'u32'
1105
+ },
1106
+ {
1107
+ name: 'destGasPerPayloadByteHigh'
1108
+ type: 'u32'
1109
+ },
1110
+ {
1111
+ name: 'destGasPerPayloadByteThreshold'
1112
+ type: 'u32'
1113
+ },
1114
+ {
1115
+ name: 'destDataAvailabilityOverheadGas'
1116
+ type: 'u32'
1117
+ },
1118
+ {
1119
+ name: 'destGasPerDataAvailabilityByte'
1120
+ type: 'u16'
1121
+ },
1122
+ {
1123
+ name: 'destDataAvailabilityMultiplierBps'
1124
+ type: 'u16'
1125
+ },
1126
+ {
1127
+ name: 'defaultTokenFeeUsdcents'
1128
+ type: 'u16'
1129
+ },
1130
+ {
1131
+ name: 'defaultTokenDestGasOverhead'
1132
+ type: 'u32'
1133
+ },
1134
+ {
1135
+ name: 'defaultTxGasLimit'
1136
+ type: 'u32'
1137
+ },
1138
+ {
1139
+ name: 'gasMultiplierWeiPerEth'
1140
+ type: 'u64'
1141
+ },
1142
+ {
1143
+ name: 'networkFeeUsdcents'
1144
+ type: 'u32'
1145
+ },
1146
+ {
1147
+ name: 'gasPriceStalenessThreshold'
1148
+ type: 'u32'
1149
+ },
1150
+ {
1151
+ name: 'enforceOutOfOrder'
1152
+ type: 'bool'
1153
+ },
1154
+ {
1155
+ name: 'chainFamilySelector'
1156
+ type: {
1157
+ array: ['u8', 4]
1158
+ }
1159
+ },
1160
+ ]
1161
+ }
1162
+ },
1163
+ {
1164
+ name: 'DestChainState'
1165
+ type: {
1166
+ kind: 'struct'
1167
+ fields: [
1168
+ {
1169
+ name: 'usdPerUnitGas'
1170
+ type: {
1171
+ defined: 'TimestampedPackedU224'
1172
+ }
1173
+ },
1174
+ ]
1175
+ }
1176
+ },
1177
+ {
1178
+ name: 'TimestampedPackedU224'
1179
+ type: {
1180
+ kind: 'struct'
1181
+ fields: [
1182
+ {
1183
+ name: 'value'
1184
+ type: {
1185
+ array: ['u8', 28]
1186
+ }
1187
+ },
1188
+ {
1189
+ name: 'timestamp'
1190
+ type: 'i64'
1191
+ },
1192
+ ]
1193
+ }
1194
+ },
1195
+ {
1196
+ name: 'BillingTokenConfig'
1197
+ type: {
1198
+ kind: 'struct'
1199
+ fields: [
1200
+ {
1201
+ name: 'enabled'
1202
+ type: 'bool'
1203
+ },
1204
+ {
1205
+ name: 'mint'
1206
+ type: 'publicKey'
1207
+ },
1208
+ {
1209
+ name: 'usdPerToken'
1210
+ type: {
1211
+ defined: 'TimestampedPackedU224'
1212
+ }
1213
+ },
1214
+ {
1215
+ name: 'premiumMultiplierWeiPerEth'
1216
+ type: 'u64'
1217
+ },
1218
+ ]
1219
+ }
1220
+ },
1221
+ {
1222
+ name: 'TokenTransferFeeConfig'
1223
+ type: {
1224
+ kind: 'struct'
1225
+ fields: [
1226
+ {
1227
+ name: 'minFeeUsdcents'
1228
+ type: 'u32'
1229
+ },
1230
+ {
1231
+ name: 'maxFeeUsdcents'
1232
+ type: 'u32'
1233
+ },
1234
+ {
1235
+ name: 'deciBps'
1236
+ type: 'u16'
1237
+ },
1238
+ {
1239
+ name: 'destGasOverhead'
1240
+ type: 'u32'
1241
+ },
1242
+ {
1243
+ name: 'destBytesOverhead'
1244
+ type: 'u32'
1245
+ },
1246
+ {
1247
+ name: 'isEnabled'
1248
+ type: 'bool'
1249
+ },
1250
+ ]
1251
+ }
1252
+ },
1253
+ {
1254
+ name: 'CodeVersion'
1255
+ type: {
1256
+ kind: 'enum'
1257
+ variants: [
1258
+ {
1259
+ name: 'Default'
1260
+ },
1261
+ {
1262
+ name: 'V1'
1263
+ },
1264
+ ]
1265
+ }
1266
+ },
1267
+ ]
1268
+ events: [
1269
+ {
1270
+ name: 'ConfigSet'
1271
+ fields: [
1272
+ {
1273
+ name: 'maxFeeJuelsPerMsg'
1274
+ type: 'u128'
1275
+ index: false
1276
+ },
1277
+ {
1278
+ name: 'linkTokenMint'
1279
+ type: 'publicKey'
1280
+ index: false
1281
+ },
1282
+ {
1283
+ name: 'linkTokenLocalDecimals'
1284
+ type: 'u8'
1285
+ index: false
1286
+ },
1287
+ {
1288
+ name: 'onramp'
1289
+ type: 'publicKey'
1290
+ index: false
1291
+ },
1292
+ {
1293
+ name: 'defaultCodeVersion'
1294
+ type: {
1295
+ defined: 'CodeVersion'
1296
+ }
1297
+ index: false
1298
+ },
1299
+ ]
1300
+ },
1301
+ {
1302
+ name: 'FeeTokenAdded'
1303
+ fields: [
1304
+ {
1305
+ name: 'feeToken'
1306
+ type: 'publicKey'
1307
+ index: false
1308
+ },
1309
+ {
1310
+ name: 'enabled'
1311
+ type: 'bool'
1312
+ index: false
1313
+ },
1314
+ ]
1315
+ },
1316
+ {
1317
+ name: 'FeeTokenEnabled'
1318
+ fields: [
1319
+ {
1320
+ name: 'feeToken'
1321
+ type: 'publicKey'
1322
+ index: false
1323
+ },
1324
+ ]
1325
+ },
1326
+ {
1327
+ name: 'FeeTokenDisabled'
1328
+ fields: [
1329
+ {
1330
+ name: 'feeToken'
1331
+ type: 'publicKey'
1332
+ index: false
1333
+ },
1334
+ ]
1335
+ },
1336
+ {
1337
+ name: 'FeeTokenRemoved'
1338
+ fields: [
1339
+ {
1340
+ name: 'feeToken'
1341
+ type: 'publicKey'
1342
+ index: false
1343
+ },
1344
+ ]
1345
+ },
1346
+ {
1347
+ name: 'DestChainAdded'
1348
+ fields: [
1349
+ {
1350
+ name: 'destChainSelector'
1351
+ type: 'u64'
1352
+ index: false
1353
+ },
1354
+ {
1355
+ name: 'destChainConfig'
1356
+ type: {
1357
+ defined: 'DestChainConfig'
1358
+ }
1359
+ index: false
1360
+ },
1361
+ ]
1362
+ },
1363
+ {
1364
+ name: 'DestChainConfigUpdated'
1365
+ fields: [
1366
+ {
1367
+ name: 'destChainSelector'
1368
+ type: 'u64'
1369
+ index: false
1370
+ },
1371
+ {
1372
+ name: 'destChainConfig'
1373
+ type: {
1374
+ defined: 'DestChainConfig'
1375
+ }
1376
+ index: false
1377
+ },
1378
+ ]
1379
+ },
1380
+ {
1381
+ name: 'OwnershipTransferRequested'
1382
+ fields: [
1383
+ {
1384
+ name: 'from'
1385
+ type: 'publicKey'
1386
+ index: false
1387
+ },
1388
+ {
1389
+ name: 'to'
1390
+ type: 'publicKey'
1391
+ index: false
1392
+ },
1393
+ ]
1394
+ },
1395
+ {
1396
+ name: 'OwnershipTransferred'
1397
+ fields: [
1398
+ {
1399
+ name: 'from'
1400
+ type: 'publicKey'
1401
+ index: false
1402
+ },
1403
+ {
1404
+ name: 'to'
1405
+ type: 'publicKey'
1406
+ index: false
1407
+ },
1408
+ ]
1409
+ },
1410
+ {
1411
+ name: 'UsdPerUnitGasUpdated'
1412
+ fields: [
1413
+ {
1414
+ name: 'destChain'
1415
+ type: 'u64'
1416
+ index: false
1417
+ },
1418
+ {
1419
+ name: 'value'
1420
+ type: {
1421
+ array: ['u8', 28]
1422
+ }
1423
+ index: false
1424
+ },
1425
+ {
1426
+ name: 'timestamp'
1427
+ type: 'i64'
1428
+ index: false
1429
+ },
1430
+ ]
1431
+ },
1432
+ {
1433
+ name: 'UsdPerTokenUpdated'
1434
+ fields: [
1435
+ {
1436
+ name: 'token'
1437
+ type: 'publicKey'
1438
+ index: false
1439
+ },
1440
+ {
1441
+ name: 'value'
1442
+ type: {
1443
+ array: ['u8', 28]
1444
+ }
1445
+ index: false
1446
+ },
1447
+ {
1448
+ name: 'timestamp'
1449
+ type: 'i64'
1450
+ index: false
1451
+ },
1452
+ ]
1453
+ },
1454
+ {
1455
+ name: 'TokenPriceUpdateIgnored'
1456
+ fields: [
1457
+ {
1458
+ name: 'token'
1459
+ type: 'publicKey'
1460
+ index: false
1461
+ },
1462
+ {
1463
+ name: 'value'
1464
+ type: {
1465
+ array: ['u8', 28]
1466
+ }
1467
+ index: false
1468
+ },
1469
+ ]
1470
+ },
1471
+ {
1472
+ name: 'TokenTransferFeeConfigUpdated'
1473
+ fields: [
1474
+ {
1475
+ name: 'destChainSelector'
1476
+ type: 'u64'
1477
+ index: false
1478
+ },
1479
+ {
1480
+ name: 'token'
1481
+ type: 'publicKey'
1482
+ index: false
1483
+ },
1484
+ {
1485
+ name: 'tokenTransferFeeConfig'
1486
+ type: {
1487
+ defined: 'TokenTransferFeeConfig'
1488
+ }
1489
+ index: false
1490
+ },
1491
+ ]
1492
+ },
1493
+ {
1494
+ name: 'PremiumMultiplierWeiPerEthUpdated'
1495
+ fields: [
1496
+ {
1497
+ name: 'token'
1498
+ type: 'publicKey'
1499
+ index: false
1500
+ },
1501
+ {
1502
+ name: 'premiumMultiplierWeiPerEth'
1503
+ type: 'u64'
1504
+ index: false
1505
+ },
1506
+ ]
1507
+ },
1508
+ {
1509
+ name: 'PriceUpdaterAdded'
1510
+ fields: [
1511
+ {
1512
+ name: 'priceUpdater'
1513
+ type: 'publicKey'
1514
+ index: false
1515
+ },
1516
+ ]
1517
+ },
1518
+ {
1519
+ name: 'PriceUpdaterRemoved'
1520
+ fields: [
1521
+ {
1522
+ name: 'priceUpdater'
1523
+ type: 'publicKey'
1524
+ index: false
1525
+ },
1526
+ ]
1527
+ },
1528
+ ]
1529
+ errors: [
1530
+ {
1531
+ code: 8000
1532
+ name: 'Unauthorized'
1533
+ msg: 'The signer is unauthorized'
1534
+ },
1535
+ {
1536
+ code: 8001
1537
+ name: 'InvalidInputs'
1538
+ msg: 'Invalid inputs'
1539
+ },
1540
+ {
1541
+ code: 8002
1542
+ name: 'ZeroGasLimit'
1543
+ msg: 'Gas limit is zero'
1544
+ },
1545
+ {
1546
+ code: 8003
1547
+ name: 'DefaultGasLimitExceedsMaximum'
1548
+ msg: 'Default gas limit exceeds the maximum'
1549
+ },
1550
+ {
1551
+ code: 8004
1552
+ name: 'InvalidVersion'
1553
+ msg: 'Invalid version of the onchain state'
1554
+ },
1555
+ {
1556
+ code: 8005
1557
+ name: 'RedundantOwnerProposal'
1558
+ msg: 'Proposed owner is the current owner'
1559
+ },
1560
+ {
1561
+ code: 8006
1562
+ name: 'InvalidInputsMissingWritable'
1563
+ msg: 'Account should be writable'
1564
+ },
1565
+ {
1566
+ code: 8007
1567
+ name: 'InvalidInputsChainSelector'
1568
+ msg: 'Chain selector is invalid'
1569
+ },
1570
+ {
1571
+ code: 8008
1572
+ name: 'InvalidInputsMint'
1573
+ msg: 'Mint account input is invalid'
1574
+ },
1575
+ {
1576
+ code: 8009
1577
+ name: 'InvalidInputsMintOwner'
1578
+ msg: 'Mint account input has an invalid owner'
1579
+ },
1580
+ {
1581
+ code: 8010
1582
+ name: 'InvalidInputsTokenConfigAccount'
1583
+ msg: 'Token config account is invalid'
1584
+ },
1585
+ {
1586
+ code: 8011
1587
+ name: 'InvalidInputsMissingExtraArgs'
1588
+ msg: 'Missing extra args in message to SVM receiver'
1589
+ },
1590
+ {
1591
+ code: 8012
1592
+ name: 'InvalidInputsMissingDataAfterExtraArgs'
1593
+ msg: 'Missing data after extra args tag'
1594
+ },
1595
+ {
1596
+ code: 8013
1597
+ name: 'InvalidInputsDestChainStateAccount'
1598
+ msg: 'Destination chain state account is invalid'
1599
+ },
1600
+ {
1601
+ code: 8014
1602
+ name: 'InvalidInputsPerChainPerTokenConfig'
1603
+ msg: 'Per chain per token config account is invalid'
1604
+ },
1605
+ {
1606
+ code: 8015
1607
+ name: 'InvalidInputsBillingTokenConfig'
1608
+ msg: 'Billing token config account is invalid'
1609
+ },
1610
+ {
1611
+ code: 8016
1612
+ name: 'InvalidInputsAccountCount'
1613
+ msg: 'Number of accounts provided is incorrect'
1614
+ },
1615
+ {
1616
+ code: 8017
1617
+ name: 'InvalidInputsNoUpdates'
1618
+ msg: 'No price or gas update provided'
1619
+ },
1620
+ {
1621
+ code: 8018
1622
+ name: 'InvalidInputsTokenAccounts'
1623
+ msg: 'Invalid token accounts'
1624
+ },
1625
+ {
1626
+ code: 8019
1627
+ name: 'DestinationChainDisabled'
1628
+ msg: 'Destination chain disabled'
1629
+ },
1630
+ {
1631
+ code: 8020
1632
+ name: 'FeeTokenDisabled'
1633
+ msg: 'Fee token disabled'
1634
+ },
1635
+ {
1636
+ code: 8021
1637
+ name: 'MessageTooLarge'
1638
+ msg: 'Message exceeds maximum data size'
1639
+ },
1640
+ {
1641
+ code: 8022
1642
+ name: 'UnsupportedNumberOfTokens'
1643
+ msg: 'Message contains an unsupported number of tokens'
1644
+ },
1645
+ {
1646
+ code: 8023
1647
+ name: 'InvalidTokenPrice'
1648
+ msg: 'Invalid token price'
1649
+ },
1650
+ {
1651
+ code: 8024
1652
+ name: 'StaleGasPrice'
1653
+ msg: 'Stale gas price'
1654
+ },
1655
+ {
1656
+ code: 8025
1657
+ name: 'InvalidInputsMissingTokenConfig'
1658
+ msg: 'Inputs are missing token configuration'
1659
+ },
1660
+ {
1661
+ code: 8026
1662
+ name: 'MessageFeeTooHigh'
1663
+ msg: 'Message fee is too high'
1664
+ },
1665
+ {
1666
+ code: 8027
1667
+ name: 'MessageGasLimitTooHigh'
1668
+ msg: 'Message gas limit too high'
1669
+ },
1670
+ {
1671
+ code: 8028
1672
+ name: 'ExtraArgOutOfOrderExecutionMustBeTrue'
1673
+ msg: 'Extra arg out of order execution must be true'
1674
+ },
1675
+ {
1676
+ code: 8029
1677
+ name: 'InvalidExtraArgsTag'
1678
+ msg: 'Invalid extra args tag'
1679
+ },
1680
+ {
1681
+ code: 8030
1682
+ name: 'InvalidExtraArgsAccounts'
1683
+ msg: 'Invalid amount of accounts in extra args'
1684
+ },
1685
+ {
1686
+ code: 8031
1687
+ name: 'InvalidExtraArgsWritabilityBitmap'
1688
+ msg: 'Invalid writability bitmap in extra args'
1689
+ },
1690
+ {
1691
+ code: 8032
1692
+ name: 'InvalidTokenReceiver'
1693
+ msg: 'Invalid token receiver'
1694
+ },
1695
+ {
1696
+ code: 8033
1697
+ name: 'UnauthorizedPriceUpdater'
1698
+ msg: 'The caller is not an authorized price updater'
1699
+ },
1700
+ {
1701
+ code: 8034
1702
+ name: 'InvalidTokenTransferFeeMaxMin'
1703
+ msg: 'Minimum token transfer fee exceeds maximum'
1704
+ },
1705
+ {
1706
+ code: 8035
1707
+ name: 'InvalidTokenTransferFeeDestBytesOverhead'
1708
+ msg: 'Insufficient dest bytes overhead on transfer fee config'
1709
+ },
1710
+ {
1711
+ code: 8036
1712
+ name: 'InvalidCodeVersion'
1713
+ msg: 'Invalid code version'
1714
+ },
1715
+ {
1716
+ code: 8037
1717
+ name: 'DefaultOwnerProposal'
1718
+ msg: 'Proposed owner is the default pubkey'
1719
+ },
1720
+ ]
1721
+ }
1722
+
1723
+ export const IDL: FeeQuoter = {
1724
+ version: '1.6.1',
1725
+ name: 'fee_quoter',
1726
+ instructions: [
1727
+ {
1728
+ name: 'initialize',
1729
+ docs: [
1730
+ 'Initializes the Fee Quoter.',
1731
+ '',
1732
+ 'The initialization is responsibility of Admin, nothing more than calling this method should be done first.',
1733
+ '',
1734
+ '# Arguments',
1735
+ '',
1736
+ '* `ctx` - The context containing the accounts required for initialization.',
1737
+ '* `max_fee_juels_per_msg` - The maximum fee in juels that can be charged per message.',
1738
+ '* `onramp` - The public key of the onramp.',
1739
+ '',
1740
+ 'The function also uses the link_token_mint account from the context.',
1741
+ ],
1742
+ accounts: [
1743
+ {
1744
+ name: 'config',
1745
+ isMut: true,
1746
+ isSigner: false,
1747
+ },
1748
+ {
1749
+ name: 'linkTokenMint',
1750
+ isMut: false,
1751
+ isSigner: false,
1752
+ },
1753
+ {
1754
+ name: 'authority',
1755
+ isMut: true,
1756
+ isSigner: true,
1757
+ },
1758
+ {
1759
+ name: 'systemProgram',
1760
+ isMut: false,
1761
+ isSigner: false,
1762
+ },
1763
+ {
1764
+ name: 'program',
1765
+ isMut: false,
1766
+ isSigner: false,
1767
+ },
1768
+ {
1769
+ name: 'programData',
1770
+ isMut: false,
1771
+ isSigner: false,
1772
+ },
1773
+ ],
1774
+ args: [
1775
+ {
1776
+ name: 'maxFeeJuelsPerMsg',
1777
+ type: 'u128',
1778
+ },
1779
+ {
1780
+ name: 'onramp',
1781
+ type: 'publicKey',
1782
+ },
1783
+ ],
1784
+ },
1785
+ {
1786
+ name: 'typeVersion',
1787
+ docs: [
1788
+ 'Returns the program type (name) and version.',
1789
+ 'Used by offchain code to easily determine which program & version is being interacted with.',
1790
+ '',
1791
+ '# Arguments',
1792
+ '* `ctx` - The context',
1793
+ ],
1794
+ accounts: [
1795
+ {
1796
+ name: 'clock',
1797
+ isMut: false,
1798
+ isSigner: false,
1799
+ },
1800
+ ],
1801
+ args: [],
1802
+ returns: 'string',
1803
+ },
1804
+ {
1805
+ name: 'transferOwnership',
1806
+ docs: [
1807
+ 'Transfers the ownership of the fee quoter to a new proposed owner.',
1808
+ '',
1809
+ 'Shared func signature with other programs',
1810
+ '',
1811
+ '# Arguments',
1812
+ '',
1813
+ '* `ctx` - The context containing the accounts required for the transfer.',
1814
+ '* `proposed_owner` - The public key of the new proposed owner.',
1815
+ ],
1816
+ accounts: [
1817
+ {
1818
+ name: 'config',
1819
+ isMut: true,
1820
+ isSigner: false,
1821
+ },
1822
+ {
1823
+ name: 'authority',
1824
+ isMut: false,
1825
+ isSigner: true,
1826
+ },
1827
+ ],
1828
+ args: [
1829
+ {
1830
+ name: 'newOwner',
1831
+ type: 'publicKey',
1832
+ },
1833
+ ],
1834
+ },
1835
+ {
1836
+ name: 'acceptOwnership',
1837
+ docs: [
1838
+ 'Accepts the ownership of the fee quoter by the proposed owner.',
1839
+ '',
1840
+ 'Shared func signature with other programs',
1841
+ '',
1842
+ '# Arguments',
1843
+ '',
1844
+ '* `ctx` - The context containing the accounts required for accepting ownership.',
1845
+ 'The new owner must be a signer of the transaction.',
1846
+ ],
1847
+ accounts: [
1848
+ {
1849
+ name: 'config',
1850
+ isMut: true,
1851
+ isSigner: false,
1852
+ },
1853
+ {
1854
+ name: 'authority',
1855
+ isMut: false,
1856
+ isSigner: true,
1857
+ },
1858
+ ],
1859
+ args: [],
1860
+ },
1861
+ {
1862
+ name: 'setDefaultCodeVersion',
1863
+ docs: [
1864
+ 'Sets the default code version to be used. This is then used by the slim routing layer to determine',
1865
+ 'which version of the versioned business logic module (`instructions`) to use. Only the admin may set this.',
1866
+ '',
1867
+ 'Shared func signature with other programs',
1868
+ '',
1869
+ '# Arguments',
1870
+ '',
1871
+ '* `ctx` - The context containing the accounts required for updating the configuration.',
1872
+ '* `code_version` - The new code version to be set as default.',
1873
+ ],
1874
+ accounts: [
1875
+ {
1876
+ name: 'config',
1877
+ isMut: true,
1878
+ isSigner: false,
1879
+ },
1880
+ {
1881
+ name: 'authority',
1882
+ isMut: false,
1883
+ isSigner: true,
1884
+ },
1885
+ ],
1886
+ args: [
1887
+ {
1888
+ name: 'codeVersion',
1889
+ type: {
1890
+ defined: 'CodeVersion',
1891
+ },
1892
+ },
1893
+ ],
1894
+ },
1895
+ {
1896
+ name: 'setMaxFeeJuelsPerMsg',
1897
+ docs: [
1898
+ 'Sets the max_fee_juels_per_msg, which is an upper bound on how much can be billed for any message.',
1899
+ '(1 juels = 1e-18 LINK)',
1900
+ '',
1901
+ 'Only the admin may set this.',
1902
+ '',
1903
+ '# Arguments',
1904
+ '',
1905
+ '* `ctx` - The context containing the accounts required for updating the configuration.',
1906
+ '* `max_fee_juels_per_msg` - The new value for the max_feel_juels_per_msg config.',
1907
+ ],
1908
+ accounts: [
1909
+ {
1910
+ name: 'config',
1911
+ isMut: true,
1912
+ isSigner: false,
1913
+ },
1914
+ {
1915
+ name: 'authority',
1916
+ isMut: false,
1917
+ isSigner: true,
1918
+ },
1919
+ ],
1920
+ args: [
1921
+ {
1922
+ name: 'maxFeeJuelsPerMsg',
1923
+ type: 'u128',
1924
+ },
1925
+ ],
1926
+ },
1927
+ {
1928
+ name: 'setLinkTokenMint',
1929
+ docs: [
1930
+ 'Sets the link_token_mint and updates the link_token_local_decimals.',
1931
+ '',
1932
+ 'Only the admin may set this.',
1933
+ '',
1934
+ '# Arguments',
1935
+ '',
1936
+ '* `ctx` - The context containing the accounts required for updating the configuration.',
1937
+ ],
1938
+ accounts: [
1939
+ {
1940
+ name: 'config',
1941
+ isMut: true,
1942
+ isSigner: false,
1943
+ },
1944
+ {
1945
+ name: 'linkTokenMint',
1946
+ isMut: false,
1947
+ isSigner: false,
1948
+ },
1949
+ {
1950
+ name: 'authority',
1951
+ isMut: false,
1952
+ isSigner: true,
1953
+ },
1954
+ ],
1955
+ args: [],
1956
+ },
1957
+ {
1958
+ name: 'addBillingTokenConfig',
1959
+ docs: [
1960
+ 'Adds a billing token configuration.',
1961
+ 'Only CCIP Admin can add a billing token configuration.',
1962
+ '',
1963
+ '# Arguments',
1964
+ '',
1965
+ '* `ctx` - The context containing the accounts required for adding the billing token configuration.',
1966
+ '* `config` - The billing token configuration to be added.',
1967
+ ],
1968
+ accounts: [
1969
+ {
1970
+ name: 'config',
1971
+ isMut: false,
1972
+ isSigner: false,
1973
+ },
1974
+ {
1975
+ name: 'billingTokenConfig',
1976
+ isMut: true,
1977
+ isSigner: false,
1978
+ },
1979
+ {
1980
+ name: 'tokenProgram',
1981
+ isMut: false,
1982
+ isSigner: false,
1983
+ },
1984
+ {
1985
+ name: 'feeTokenMint',
1986
+ isMut: false,
1987
+ isSigner: false,
1988
+ },
1989
+ {
1990
+ name: 'feeTokenReceiver',
1991
+ isMut: true,
1992
+ isSigner: false,
1993
+ },
1994
+ {
1995
+ name: 'authority',
1996
+ isMut: true,
1997
+ isSigner: true,
1998
+ },
1999
+ {
2000
+ name: 'feeBillingSigner',
2001
+ isMut: false,
2002
+ isSigner: false,
2003
+ },
2004
+ {
2005
+ name: 'associatedTokenProgram',
2006
+ isMut: false,
2007
+ isSigner: false,
2008
+ },
2009
+ {
2010
+ name: 'systemProgram',
2011
+ isMut: false,
2012
+ isSigner: false,
2013
+ },
2014
+ ],
2015
+ args: [
2016
+ {
2017
+ name: 'config',
2018
+ type: {
2019
+ defined: 'BillingTokenConfig',
2020
+ },
2021
+ },
2022
+ ],
2023
+ },
2024
+ {
2025
+ name: 'updateBillingTokenConfig',
2026
+ docs: [
2027
+ 'Updates the billing token configuration.',
2028
+ 'Only CCIP Admin can update a billing token configuration.',
2029
+ '',
2030
+ '# Arguments',
2031
+ '',
2032
+ '* `ctx` - The context containing the accounts required for updating the billing token configuration.',
2033
+ '* `config` - The new billing token configuration.',
2034
+ ],
2035
+ accounts: [
2036
+ {
2037
+ name: 'config',
2038
+ isMut: false,
2039
+ isSigner: false,
2040
+ },
2041
+ {
2042
+ name: 'billingTokenConfig',
2043
+ isMut: true,
2044
+ isSigner: false,
2045
+ },
2046
+ {
2047
+ name: 'authority',
2048
+ isMut: false,
2049
+ isSigner: true,
2050
+ },
2051
+ ],
2052
+ args: [
2053
+ {
2054
+ name: 'config',
2055
+ type: {
2056
+ defined: 'BillingTokenConfig',
2057
+ },
2058
+ },
2059
+ ],
2060
+ },
2061
+ {
2062
+ name: 'addDestChain',
2063
+ docs: [
2064
+ 'Adds a new destination chain selector to the fee quoter.',
2065
+ '',
2066
+ 'The Admin needs to add any new chain supported.',
2067
+ "When adding a new chain, the Admin needs to specify if it's enabled or not.",
2068
+ '',
2069
+ '# Arguments',
2070
+ '',
2071
+ '* `ctx` - The context containing the accounts required for adding the chain selector.',
2072
+ '* `chain_selector` - The new chain selector to be added.',
2073
+ '* `dest_chain_config` - The configuration for the chain as destination.',
2074
+ ],
2075
+ accounts: [
2076
+ {
2077
+ name: 'config',
2078
+ isMut: false,
2079
+ isSigner: false,
2080
+ },
2081
+ {
2082
+ name: 'destChain',
2083
+ isMut: true,
2084
+ isSigner: false,
2085
+ },
2086
+ {
2087
+ name: 'authority',
2088
+ isMut: true,
2089
+ isSigner: true,
2090
+ },
2091
+ {
2092
+ name: 'systemProgram',
2093
+ isMut: false,
2094
+ isSigner: false,
2095
+ },
2096
+ ],
2097
+ args: [
2098
+ {
2099
+ name: 'chainSelector',
2100
+ type: 'u64',
2101
+ },
2102
+ {
2103
+ name: 'destChainConfig',
2104
+ type: {
2105
+ defined: 'DestChainConfig',
2106
+ },
2107
+ },
2108
+ ],
2109
+ },
2110
+ {
2111
+ name: 'disableDestChain',
2112
+ docs: [
2113
+ 'Disables the destination chain selector.',
2114
+ '',
2115
+ 'The Admin is the only one able to disable the chain selector as destination. This method is thought of as an emergency kill-switch.',
2116
+ '',
2117
+ '# Arguments',
2118
+ '',
2119
+ '* `ctx` - The context containing the accounts required for disabling the chain selector.',
2120
+ '* `chain_selector` - The destination chain selector to be disabled.',
2121
+ ],
2122
+ accounts: [
2123
+ {
2124
+ name: 'config',
2125
+ isMut: false,
2126
+ isSigner: false,
2127
+ },
2128
+ {
2129
+ name: 'destChain',
2130
+ isMut: true,
2131
+ isSigner: false,
2132
+ },
2133
+ {
2134
+ name: 'authority',
2135
+ isMut: true,
2136
+ isSigner: true,
2137
+ },
2138
+ ],
2139
+ args: [
2140
+ {
2141
+ name: 'chainSelector',
2142
+ type: 'u64',
2143
+ },
2144
+ ],
2145
+ },
2146
+ {
2147
+ name: 'updateDestChainConfig',
2148
+ docs: [
2149
+ 'Updates the configuration of the destination chain selector.',
2150
+ '',
2151
+ 'The Admin is the only one able to update the destination chain config.',
2152
+ '',
2153
+ '# Arguments',
2154
+ '',
2155
+ '* `ctx` - The context containing the accounts required for updating the chain selector.',
2156
+ '* `chain_selector` - The destination chain selector to be updated.',
2157
+ '* `dest_chain_config` - The new configuration for the destination chain.',
2158
+ ],
2159
+ accounts: [
2160
+ {
2161
+ name: 'config',
2162
+ isMut: false,
2163
+ isSigner: false,
2164
+ },
2165
+ {
2166
+ name: 'destChain',
2167
+ isMut: true,
2168
+ isSigner: false,
2169
+ },
2170
+ {
2171
+ name: 'authority',
2172
+ isMut: true,
2173
+ isSigner: true,
2174
+ },
2175
+ ],
2176
+ args: [
2177
+ {
2178
+ name: 'chainSelector',
2179
+ type: 'u64',
2180
+ },
2181
+ {
2182
+ name: 'destChainConfig',
2183
+ type: {
2184
+ defined: 'DestChainConfig',
2185
+ },
2186
+ },
2187
+ ],
2188
+ },
2189
+ {
2190
+ name: 'setTokenTransferFeeConfig',
2191
+ docs: [
2192
+ "Sets the token transfer fee configuration for a particular token when it's transferred to a particular dest chain.",
2193
+ "It is an upsert, initializing the per-chain-per-token config account if it doesn't exist",
2194
+ 'and overwriting it if it does.',
2195
+ '',
2196
+ 'Only the Admin can perform this operation.',
2197
+ '',
2198
+ '# Arguments',
2199
+ '',
2200
+ '* `ctx` - The context containing the accounts required for setting the token billing configuration.',
2201
+ '* `chain_selector` - The chain selector.',
2202
+ '* `mint` - The public key of the token mint.',
2203
+ '* `cfg` - The token transfer fee configuration.',
2204
+ ],
2205
+ accounts: [
2206
+ {
2207
+ name: 'config',
2208
+ isMut: false,
2209
+ isSigner: false,
2210
+ },
2211
+ {
2212
+ name: 'perChainPerTokenConfig',
2213
+ isMut: true,
2214
+ isSigner: false,
2215
+ },
2216
+ {
2217
+ name: 'authority',
2218
+ isMut: true,
2219
+ isSigner: true,
2220
+ },
2221
+ {
2222
+ name: 'systemProgram',
2223
+ isMut: false,
2224
+ isSigner: false,
2225
+ },
2226
+ ],
2227
+ args: [
2228
+ {
2229
+ name: 'chainSelector',
2230
+ type: 'u64',
2231
+ },
2232
+ {
2233
+ name: 'mint',
2234
+ type: 'publicKey',
2235
+ },
2236
+ {
2237
+ name: 'cfg',
2238
+ type: {
2239
+ defined: 'TokenTransferFeeConfig',
2240
+ },
2241
+ },
2242
+ ],
2243
+ },
2244
+ {
2245
+ name: 'addPriceUpdater',
2246
+ docs: [
2247
+ 'Add a price updater address to the list of allowed price updaters.',
2248
+ 'On price updates, the fee quoter will check the that caller is allowed.',
2249
+ '',
2250
+ '# Arguments',
2251
+ '',
2252
+ '* `ctx` - The context containing the accounts required for this operation.',
2253
+ '* `price_updater` - The price updater address.',
2254
+ ],
2255
+ accounts: [
2256
+ {
2257
+ name: 'allowedPriceUpdater',
2258
+ isMut: true,
2259
+ isSigner: false,
2260
+ },
2261
+ {
2262
+ name: 'config',
2263
+ isMut: false,
2264
+ isSigner: false,
2265
+ },
2266
+ {
2267
+ name: 'authority',
2268
+ isMut: true,
2269
+ isSigner: true,
2270
+ },
2271
+ {
2272
+ name: 'systemProgram',
2273
+ isMut: false,
2274
+ isSigner: false,
2275
+ },
2276
+ ],
2277
+ args: [
2278
+ {
2279
+ name: 'priceUpdater',
2280
+ type: 'publicKey',
2281
+ },
2282
+ ],
2283
+ },
2284
+ {
2285
+ name: 'removePriceUpdater',
2286
+ docs: [
2287
+ 'Remove a price updater address from the list of allowed price updaters.',
2288
+ '',
2289
+ '# Arguments',
2290
+ '',
2291
+ '* `ctx` - The context containing the accounts required for this operation.',
2292
+ '* `price_updater` - The price updater address.',
2293
+ ],
2294
+ accounts: [
2295
+ {
2296
+ name: 'allowedPriceUpdater',
2297
+ isMut: true,
2298
+ isSigner: false,
2299
+ },
2300
+ {
2301
+ name: 'config',
2302
+ isMut: false,
2303
+ isSigner: false,
2304
+ },
2305
+ {
2306
+ name: 'authority',
2307
+ isMut: true,
2308
+ isSigner: true,
2309
+ },
2310
+ {
2311
+ name: 'systemProgram',
2312
+ isMut: false,
2313
+ isSigner: false,
2314
+ },
2315
+ ],
2316
+ args: [
2317
+ {
2318
+ name: 'priceUpdater',
2319
+ type: 'publicKey',
2320
+ },
2321
+ ],
2322
+ },
2323
+ {
2324
+ name: 'getFee',
2325
+ docs: [
2326
+ 'Calculates the fee for sending a message to the destination chain.',
2327
+ '',
2328
+ '# Arguments',
2329
+ '',
2330
+ '* `ctx` - The context containing the accounts required for the fee calculation.',
2331
+ '* `dest_chain_selector` - The chain selector for the destination chain.',
2332
+ '* `message` - The message to be sent.',
2333
+ '',
2334
+ '# Additional accounts',
2335
+ '',
2336
+ 'In addition to the fixed amount of accounts defined in the `GetFee` context,',
2337
+ 'the following accounts must be provided:',
2338
+ '',
2339
+ '* First, the billing token config accounts for each token sent with the message, sequentially.',
2340
+ 'For each token with no billing config account (i.e. tokens that cannot be possibly used as fee',
2341
+ 'tokens, which also have no BPS fees enabled) the ZERO address must be provided instead.',
2342
+ '* Then, the per chain / per token config of every token sent with the message, sequentially',
2343
+ 'in the same order.',
2344
+ '',
2345
+ '# Returns',
2346
+ '',
2347
+ 'GetFeeResult struct with:',
2348
+ '- the fee token mint address,',
2349
+ '- the fee amount of said token,',
2350
+ '- the fee value in juels,',
2351
+ '- additional data required when performing the cross-chain transfer of tokens in that message',
2352
+ '- deserialized and processed extra args',
2353
+ ],
2354
+ accounts: [
2355
+ {
2356
+ name: 'config',
2357
+ isMut: false,
2358
+ isSigner: false,
2359
+ },
2360
+ {
2361
+ name: 'destChain',
2362
+ isMut: false,
2363
+ isSigner: false,
2364
+ },
2365
+ {
2366
+ name: 'billingTokenConfig',
2367
+ isMut: false,
2368
+ isSigner: false,
2369
+ },
2370
+ {
2371
+ name: 'linkTokenConfig',
2372
+ isMut: false,
2373
+ isSigner: false,
2374
+ },
2375
+ ],
2376
+ args: [
2377
+ {
2378
+ name: 'destChainSelector',
2379
+ type: 'u64',
2380
+ },
2381
+ {
2382
+ name: 'message',
2383
+ type: {
2384
+ defined: 'SVM2AnyMessage',
2385
+ },
2386
+ },
2387
+ ],
2388
+ returns: {
2389
+ defined: 'GetFeeResult',
2390
+ },
2391
+ },
2392
+ {
2393
+ name: 'updatePrices',
2394
+ docs: [
2395
+ 'Updates prices for tokens and gas. This method may only be called by an allowed price updater.',
2396
+ '',
2397
+ '# Arguments',
2398
+ '',
2399
+ '* `ctx` - The context containing the accounts always required for the price updates',
2400
+ '* `token_updates` - Vector of token price updates',
2401
+ '* `gas_updates` - Vector of gas price updates',
2402
+ '',
2403
+ '# Additional accounts',
2404
+ '',
2405
+ 'In addition to the fixed amount of accounts defined in the `UpdatePrices` context,',
2406
+ 'the following accounts must be provided:',
2407
+ '',
2408
+ '* First, the billing token config accounts for each token whose price is being updated, in the same order',
2409
+ 'as the token_updates vector.',
2410
+ '* Then, the dest chain accounts of every chain whose gas price is being updated, in the same order as the',
2411
+ 'gas_updates vector.',
2412
+ ],
2413
+ accounts: [
2414
+ {
2415
+ name: 'authority',
2416
+ isMut: false,
2417
+ isSigner: true,
2418
+ },
2419
+ {
2420
+ name: 'allowedPriceUpdater',
2421
+ isMut: false,
2422
+ isSigner: false,
2423
+ docs: [
2424
+ 'was added by the owner as an allowed price updater. The constraints enforced guarantee that it is the right PDA',
2425
+ 'and that it was initialized.',
2426
+ ],
2427
+ },
2428
+ {
2429
+ name: 'config',
2430
+ isMut: false,
2431
+ isSigner: false,
2432
+ },
2433
+ ],
2434
+ args: [
2435
+ {
2436
+ name: 'tokenUpdates',
2437
+ type: {
2438
+ vec: {
2439
+ defined: 'TokenPriceUpdate',
2440
+ },
2441
+ },
2442
+ },
2443
+ {
2444
+ name: 'gasUpdates',
2445
+ type: {
2446
+ vec: {
2447
+ defined: 'GasPriceUpdate',
2448
+ },
2449
+ },
2450
+ },
2451
+ ],
2452
+ },
2453
+ ],
2454
+ accounts: [
2455
+ {
2456
+ name: 'config',
2457
+ type: {
2458
+ kind: 'struct',
2459
+ fields: [
2460
+ {
2461
+ name: 'version',
2462
+ type: 'u8',
2463
+ },
2464
+ {
2465
+ name: 'owner',
2466
+ type: 'publicKey',
2467
+ },
2468
+ {
2469
+ name: 'proposedOwner',
2470
+ type: 'publicKey',
2471
+ },
2472
+ {
2473
+ name: 'maxFeeJuelsPerMsg',
2474
+ type: 'u128',
2475
+ },
2476
+ {
2477
+ name: 'linkTokenMint',
2478
+ type: 'publicKey',
2479
+ },
2480
+ {
2481
+ name: 'linkTokenLocalDecimals',
2482
+ type: 'u8',
2483
+ },
2484
+ {
2485
+ name: 'onramp',
2486
+ type: 'publicKey',
2487
+ },
2488
+ {
2489
+ name: 'defaultCodeVersion',
2490
+ type: {
2491
+ defined: 'CodeVersion',
2492
+ },
2493
+ },
2494
+ ],
2495
+ },
2496
+ },
2497
+ {
2498
+ name: 'destChain',
2499
+ type: {
2500
+ kind: 'struct',
2501
+ fields: [
2502
+ {
2503
+ name: 'version',
2504
+ type: 'u8',
2505
+ },
2506
+ {
2507
+ name: 'chainSelector',
2508
+ type: 'u64',
2509
+ },
2510
+ {
2511
+ name: 'state',
2512
+ type: {
2513
+ defined: 'DestChainState',
2514
+ },
2515
+ },
2516
+ {
2517
+ name: 'config',
2518
+ type: {
2519
+ defined: 'DestChainConfig',
2520
+ },
2521
+ },
2522
+ ],
2523
+ },
2524
+ },
2525
+ {
2526
+ name: 'billingTokenConfigWrapper',
2527
+ type: {
2528
+ kind: 'struct',
2529
+ fields: [
2530
+ {
2531
+ name: 'version',
2532
+ type: 'u8',
2533
+ },
2534
+ {
2535
+ name: 'config',
2536
+ type: {
2537
+ defined: 'BillingTokenConfig',
2538
+ },
2539
+ },
2540
+ ],
2541
+ },
2542
+ },
2543
+ {
2544
+ name: 'perChainPerTokenConfig',
2545
+ type: {
2546
+ kind: 'struct',
2547
+ fields: [
2548
+ {
2549
+ name: 'version',
2550
+ type: 'u8',
2551
+ },
2552
+ {
2553
+ name: 'chainSelector',
2554
+ type: 'u64',
2555
+ },
2556
+ {
2557
+ name: 'mint',
2558
+ type: 'publicKey',
2559
+ },
2560
+ {
2561
+ name: 'tokenTransferConfig',
2562
+ type: {
2563
+ defined: 'TokenTransferFeeConfig',
2564
+ },
2565
+ },
2566
+ ],
2567
+ },
2568
+ },
2569
+ {
2570
+ name: 'allowedPriceUpdater',
2571
+ type: {
2572
+ kind: 'struct',
2573
+ fields: [],
2574
+ },
2575
+ },
2576
+ ],
2577
+ types: [
2578
+ {
2579
+ name: 'TokenPriceUpdate',
2580
+ type: {
2581
+ kind: 'struct',
2582
+ fields: [
2583
+ {
2584
+ name: 'sourceToken',
2585
+ type: 'publicKey',
2586
+ },
2587
+ {
2588
+ name: 'usdPerToken',
2589
+ type: {
2590
+ array: ['u8', 28],
2591
+ },
2592
+ },
2593
+ ],
2594
+ },
2595
+ },
2596
+ {
2597
+ name: 'GasPriceUpdate',
2598
+ docs: ['Gas price for a given chain in USD; its value may contain tightly packed fields.'],
2599
+ type: {
2600
+ kind: 'struct',
2601
+ fields: [
2602
+ {
2603
+ name: 'destChainSelector',
2604
+ type: 'u64',
2605
+ },
2606
+ {
2607
+ name: 'usdPerUnitGas',
2608
+ type: {
2609
+ array: ['u8', 28],
2610
+ },
2611
+ },
2612
+ ],
2613
+ },
2614
+ },
2615
+ {
2616
+ name: 'GenericExtraArgsV2',
2617
+ type: {
2618
+ kind: 'struct',
2619
+ fields: [
2620
+ {
2621
+ name: 'gasLimit',
2622
+ type: 'u128',
2623
+ },
2624
+ {
2625
+ name: 'allowOutOfOrderExecution',
2626
+ type: 'bool',
2627
+ },
2628
+ ],
2629
+ },
2630
+ },
2631
+ {
2632
+ name: 'SVMExtraArgsV1',
2633
+ type: {
2634
+ kind: 'struct',
2635
+ fields: [
2636
+ {
2637
+ name: 'computeUnits',
2638
+ type: 'u32',
2639
+ },
2640
+ {
2641
+ name: 'accountIsWritableBitmap',
2642
+ type: 'u64',
2643
+ },
2644
+ {
2645
+ name: 'allowOutOfOrderExecution',
2646
+ type: 'bool',
2647
+ },
2648
+ {
2649
+ name: 'tokenReceiver',
2650
+ type: {
2651
+ array: ['u8', 32],
2652
+ },
2653
+ },
2654
+ {
2655
+ name: 'accounts',
2656
+ type: {
2657
+ vec: {
2658
+ array: ['u8', 32],
2659
+ },
2660
+ },
2661
+ },
2662
+ ],
2663
+ },
2664
+ },
2665
+ {
2666
+ name: 'SVM2AnyMessage',
2667
+ type: {
2668
+ kind: 'struct',
2669
+ fields: [
2670
+ {
2671
+ name: 'receiver',
2672
+ type: 'bytes',
2673
+ },
2674
+ {
2675
+ name: 'data',
2676
+ type: 'bytes',
2677
+ },
2678
+ {
2679
+ name: 'tokenAmounts',
2680
+ type: {
2681
+ vec: {
2682
+ defined: 'SVMTokenAmount',
2683
+ },
2684
+ },
2685
+ },
2686
+ {
2687
+ name: 'feeToken',
2688
+ type: 'publicKey',
2689
+ },
2690
+ {
2691
+ name: 'extraArgs',
2692
+ type: 'bytes',
2693
+ },
2694
+ ],
2695
+ },
2696
+ },
2697
+ {
2698
+ name: 'SVMTokenAmount',
2699
+ type: {
2700
+ kind: 'struct',
2701
+ fields: [
2702
+ {
2703
+ name: 'token',
2704
+ type: 'publicKey',
2705
+ },
2706
+ {
2707
+ name: 'amount',
2708
+ type: 'u64',
2709
+ },
2710
+ ],
2711
+ },
2712
+ },
2713
+ {
2714
+ name: 'TokenTransferAdditionalData',
2715
+ type: {
2716
+ kind: 'struct',
2717
+ fields: [
2718
+ {
2719
+ name: 'destBytesOverhead',
2720
+ type: 'u32',
2721
+ },
2722
+ {
2723
+ name: 'destGasOverhead',
2724
+ type: 'u32',
2725
+ },
2726
+ ],
2727
+ },
2728
+ },
2729
+ {
2730
+ name: 'GetFeeResult',
2731
+ type: {
2732
+ kind: 'struct',
2733
+ fields: [
2734
+ {
2735
+ name: 'token',
2736
+ type: 'publicKey',
2737
+ },
2738
+ {
2739
+ name: 'amount',
2740
+ type: 'u64',
2741
+ },
2742
+ {
2743
+ name: 'juels',
2744
+ type: 'u128',
2745
+ },
2746
+ {
2747
+ name: 'tokenTransferAdditionalData',
2748
+ type: {
2749
+ vec: {
2750
+ defined: 'TokenTransferAdditionalData',
2751
+ },
2752
+ },
2753
+ },
2754
+ {
2755
+ name: 'processedExtraArgs',
2756
+ type: {
2757
+ defined: 'ProcessedExtraArgs',
2758
+ },
2759
+ },
2760
+ ],
2761
+ },
2762
+ },
2763
+ {
2764
+ name: 'ProcessedExtraArgs',
2765
+ type: {
2766
+ kind: 'struct',
2767
+ fields: [
2768
+ {
2769
+ name: 'bytes',
2770
+ type: 'bytes',
2771
+ },
2772
+ {
2773
+ name: 'gasLimit',
2774
+ type: 'u128',
2775
+ },
2776
+ {
2777
+ name: 'allowOutOfOrderExecution',
2778
+ type: 'bool',
2779
+ },
2780
+ {
2781
+ name: 'tokenReceiver',
2782
+ type: {
2783
+ option: 'bytes',
2784
+ },
2785
+ },
2786
+ ],
2787
+ },
2788
+ },
2789
+ {
2790
+ name: 'DestChainConfig',
2791
+ type: {
2792
+ kind: 'struct',
2793
+ fields: [
2794
+ {
2795
+ name: 'isEnabled',
2796
+ type: 'bool',
2797
+ },
2798
+ {
2799
+ name: 'laneCodeVersion',
2800
+ type: {
2801
+ defined: 'CodeVersion',
2802
+ },
2803
+ },
2804
+ {
2805
+ name: 'maxNumberOfTokensPerMsg',
2806
+ type: 'u16',
2807
+ },
2808
+ {
2809
+ name: 'maxDataBytes',
2810
+ type: 'u32',
2811
+ },
2812
+ {
2813
+ name: 'maxPerMsgGasLimit',
2814
+ type: 'u32',
2815
+ },
2816
+ {
2817
+ name: 'destGasOverhead',
2818
+ type: 'u32',
2819
+ },
2820
+ {
2821
+ name: 'destGasPerPayloadByteBase',
2822
+ type: 'u32',
2823
+ },
2824
+ {
2825
+ name: 'destGasPerPayloadByteHigh',
2826
+ type: 'u32',
2827
+ },
2828
+ {
2829
+ name: 'destGasPerPayloadByteThreshold',
2830
+ type: 'u32',
2831
+ },
2832
+ {
2833
+ name: 'destDataAvailabilityOverheadGas',
2834
+ type: 'u32',
2835
+ },
2836
+ {
2837
+ name: 'destGasPerDataAvailabilityByte',
2838
+ type: 'u16',
2839
+ },
2840
+ {
2841
+ name: 'destDataAvailabilityMultiplierBps',
2842
+ type: 'u16',
2843
+ },
2844
+ {
2845
+ name: 'defaultTokenFeeUsdcents',
2846
+ type: 'u16',
2847
+ },
2848
+ {
2849
+ name: 'defaultTokenDestGasOverhead',
2850
+ type: 'u32',
2851
+ },
2852
+ {
2853
+ name: 'defaultTxGasLimit',
2854
+ type: 'u32',
2855
+ },
2856
+ {
2857
+ name: 'gasMultiplierWeiPerEth',
2858
+ type: 'u64',
2859
+ },
2860
+ {
2861
+ name: 'networkFeeUsdcents',
2862
+ type: 'u32',
2863
+ },
2864
+ {
2865
+ name: 'gasPriceStalenessThreshold',
2866
+ type: 'u32',
2867
+ },
2868
+ {
2869
+ name: 'enforceOutOfOrder',
2870
+ type: 'bool',
2871
+ },
2872
+ {
2873
+ name: 'chainFamilySelector',
2874
+ type: {
2875
+ array: ['u8', 4],
2876
+ },
2877
+ },
2878
+ ],
2879
+ },
2880
+ },
2881
+ {
2882
+ name: 'DestChainState',
2883
+ type: {
2884
+ kind: 'struct',
2885
+ fields: [
2886
+ {
2887
+ name: 'usdPerUnitGas',
2888
+ type: {
2889
+ defined: 'TimestampedPackedU224',
2890
+ },
2891
+ },
2892
+ ],
2893
+ },
2894
+ },
2895
+ {
2896
+ name: 'TimestampedPackedU224',
2897
+ type: {
2898
+ kind: 'struct',
2899
+ fields: [
2900
+ {
2901
+ name: 'value',
2902
+ type: {
2903
+ array: ['u8', 28],
2904
+ },
2905
+ },
2906
+ {
2907
+ name: 'timestamp',
2908
+ type: 'i64',
2909
+ },
2910
+ ],
2911
+ },
2912
+ },
2913
+ {
2914
+ name: 'BillingTokenConfig',
2915
+ type: {
2916
+ kind: 'struct',
2917
+ fields: [
2918
+ {
2919
+ name: 'enabled',
2920
+ type: 'bool',
2921
+ },
2922
+ {
2923
+ name: 'mint',
2924
+ type: 'publicKey',
2925
+ },
2926
+ {
2927
+ name: 'usdPerToken',
2928
+ type: {
2929
+ defined: 'TimestampedPackedU224',
2930
+ },
2931
+ },
2932
+ {
2933
+ name: 'premiumMultiplierWeiPerEth',
2934
+ type: 'u64',
2935
+ },
2936
+ ],
2937
+ },
2938
+ },
2939
+ {
2940
+ name: 'TokenTransferFeeConfig',
2941
+ type: {
2942
+ kind: 'struct',
2943
+ fields: [
2944
+ {
2945
+ name: 'minFeeUsdcents',
2946
+ type: 'u32',
2947
+ },
2948
+ {
2949
+ name: 'maxFeeUsdcents',
2950
+ type: 'u32',
2951
+ },
2952
+ {
2953
+ name: 'deciBps',
2954
+ type: 'u16',
2955
+ },
2956
+ {
2957
+ name: 'destGasOverhead',
2958
+ type: 'u32',
2959
+ },
2960
+ {
2961
+ name: 'destBytesOverhead',
2962
+ type: 'u32',
2963
+ },
2964
+ {
2965
+ name: 'isEnabled',
2966
+ type: 'bool',
2967
+ },
2968
+ ],
2969
+ },
2970
+ },
2971
+ {
2972
+ name: 'CodeVersion',
2973
+ type: {
2974
+ kind: 'enum',
2975
+ variants: [
2976
+ {
2977
+ name: 'Default',
2978
+ },
2979
+ {
2980
+ name: 'V1',
2981
+ },
2982
+ ],
2983
+ },
2984
+ },
2985
+ ],
2986
+ events: [
2987
+ {
2988
+ name: 'ConfigSet',
2989
+ fields: [
2990
+ {
2991
+ name: 'maxFeeJuelsPerMsg',
2992
+ type: 'u128',
2993
+ index: false,
2994
+ },
2995
+ {
2996
+ name: 'linkTokenMint',
2997
+ type: 'publicKey',
2998
+ index: false,
2999
+ },
3000
+ {
3001
+ name: 'linkTokenLocalDecimals',
3002
+ type: 'u8',
3003
+ index: false,
3004
+ },
3005
+ {
3006
+ name: 'onramp',
3007
+ type: 'publicKey',
3008
+ index: false,
3009
+ },
3010
+ {
3011
+ name: 'defaultCodeVersion',
3012
+ type: {
3013
+ defined: 'CodeVersion',
3014
+ },
3015
+ index: false,
3016
+ },
3017
+ ],
3018
+ },
3019
+ {
3020
+ name: 'FeeTokenAdded',
3021
+ fields: [
3022
+ {
3023
+ name: 'feeToken',
3024
+ type: 'publicKey',
3025
+ index: false,
3026
+ },
3027
+ {
3028
+ name: 'enabled',
3029
+ type: 'bool',
3030
+ index: false,
3031
+ },
3032
+ ],
3033
+ },
3034
+ {
3035
+ name: 'FeeTokenEnabled',
3036
+ fields: [
3037
+ {
3038
+ name: 'feeToken',
3039
+ type: 'publicKey',
3040
+ index: false,
3041
+ },
3042
+ ],
3043
+ },
3044
+ {
3045
+ name: 'FeeTokenDisabled',
3046
+ fields: [
3047
+ {
3048
+ name: 'feeToken',
3049
+ type: 'publicKey',
3050
+ index: false,
3051
+ },
3052
+ ],
3053
+ },
3054
+ {
3055
+ name: 'FeeTokenRemoved',
3056
+ fields: [
3057
+ {
3058
+ name: 'feeToken',
3059
+ type: 'publicKey',
3060
+ index: false,
3061
+ },
3062
+ ],
3063
+ },
3064
+ {
3065
+ name: 'DestChainAdded',
3066
+ fields: [
3067
+ {
3068
+ name: 'destChainSelector',
3069
+ type: 'u64',
3070
+ index: false,
3071
+ },
3072
+ {
3073
+ name: 'destChainConfig',
3074
+ type: {
3075
+ defined: 'DestChainConfig',
3076
+ },
3077
+ index: false,
3078
+ },
3079
+ ],
3080
+ },
3081
+ {
3082
+ name: 'DestChainConfigUpdated',
3083
+ fields: [
3084
+ {
3085
+ name: 'destChainSelector',
3086
+ type: 'u64',
3087
+ index: false,
3088
+ },
3089
+ {
3090
+ name: 'destChainConfig',
3091
+ type: {
3092
+ defined: 'DestChainConfig',
3093
+ },
3094
+ index: false,
3095
+ },
3096
+ ],
3097
+ },
3098
+ {
3099
+ name: 'OwnershipTransferRequested',
3100
+ fields: [
3101
+ {
3102
+ name: 'from',
3103
+ type: 'publicKey',
3104
+ index: false,
3105
+ },
3106
+ {
3107
+ name: 'to',
3108
+ type: 'publicKey',
3109
+ index: false,
3110
+ },
3111
+ ],
3112
+ },
3113
+ {
3114
+ name: 'OwnershipTransferred',
3115
+ fields: [
3116
+ {
3117
+ name: 'from',
3118
+ type: 'publicKey',
3119
+ index: false,
3120
+ },
3121
+ {
3122
+ name: 'to',
3123
+ type: 'publicKey',
3124
+ index: false,
3125
+ },
3126
+ ],
3127
+ },
3128
+ {
3129
+ name: 'UsdPerUnitGasUpdated',
3130
+ fields: [
3131
+ {
3132
+ name: 'destChain',
3133
+ type: 'u64',
3134
+ index: false,
3135
+ },
3136
+ {
3137
+ name: 'value',
3138
+ type: {
3139
+ array: ['u8', 28],
3140
+ },
3141
+ index: false,
3142
+ },
3143
+ {
3144
+ name: 'timestamp',
3145
+ type: 'i64',
3146
+ index: false,
3147
+ },
3148
+ ],
3149
+ },
3150
+ {
3151
+ name: 'UsdPerTokenUpdated',
3152
+ fields: [
3153
+ {
3154
+ name: 'token',
3155
+ type: 'publicKey',
3156
+ index: false,
3157
+ },
3158
+ {
3159
+ name: 'value',
3160
+ type: {
3161
+ array: ['u8', 28],
3162
+ },
3163
+ index: false,
3164
+ },
3165
+ {
3166
+ name: 'timestamp',
3167
+ type: 'i64',
3168
+ index: false,
3169
+ },
3170
+ ],
3171
+ },
3172
+ {
3173
+ name: 'TokenPriceUpdateIgnored',
3174
+ fields: [
3175
+ {
3176
+ name: 'token',
3177
+ type: 'publicKey',
3178
+ index: false,
3179
+ },
3180
+ {
3181
+ name: 'value',
3182
+ type: {
3183
+ array: ['u8', 28],
3184
+ },
3185
+ index: false,
3186
+ },
3187
+ ],
3188
+ },
3189
+ {
3190
+ name: 'TokenTransferFeeConfigUpdated',
3191
+ fields: [
3192
+ {
3193
+ name: 'destChainSelector',
3194
+ type: 'u64',
3195
+ index: false,
3196
+ },
3197
+ {
3198
+ name: 'token',
3199
+ type: 'publicKey',
3200
+ index: false,
3201
+ },
3202
+ {
3203
+ name: 'tokenTransferFeeConfig',
3204
+ type: {
3205
+ defined: 'TokenTransferFeeConfig',
3206
+ },
3207
+ index: false,
3208
+ },
3209
+ ],
3210
+ },
3211
+ {
3212
+ name: 'PremiumMultiplierWeiPerEthUpdated',
3213
+ fields: [
3214
+ {
3215
+ name: 'token',
3216
+ type: 'publicKey',
3217
+ index: false,
3218
+ },
3219
+ {
3220
+ name: 'premiumMultiplierWeiPerEth',
3221
+ type: 'u64',
3222
+ index: false,
3223
+ },
3224
+ ],
3225
+ },
3226
+ {
3227
+ name: 'PriceUpdaterAdded',
3228
+ fields: [
3229
+ {
3230
+ name: 'priceUpdater',
3231
+ type: 'publicKey',
3232
+ index: false,
3233
+ },
3234
+ ],
3235
+ },
3236
+ {
3237
+ name: 'PriceUpdaterRemoved',
3238
+ fields: [
3239
+ {
3240
+ name: 'priceUpdater',
3241
+ type: 'publicKey',
3242
+ index: false,
3243
+ },
3244
+ ],
3245
+ },
3246
+ ],
3247
+ errors: [
3248
+ {
3249
+ code: 8000,
3250
+ name: 'Unauthorized',
3251
+ msg: 'The signer is unauthorized',
3252
+ },
3253
+ {
3254
+ code: 8001,
3255
+ name: 'InvalidInputs',
3256
+ msg: 'Invalid inputs',
3257
+ },
3258
+ {
3259
+ code: 8002,
3260
+ name: 'ZeroGasLimit',
3261
+ msg: 'Gas limit is zero',
3262
+ },
3263
+ {
3264
+ code: 8003,
3265
+ name: 'DefaultGasLimitExceedsMaximum',
3266
+ msg: 'Default gas limit exceeds the maximum',
3267
+ },
3268
+ {
3269
+ code: 8004,
3270
+ name: 'InvalidVersion',
3271
+ msg: 'Invalid version of the onchain state',
3272
+ },
3273
+ {
3274
+ code: 8005,
3275
+ name: 'RedundantOwnerProposal',
3276
+ msg: 'Proposed owner is the current owner',
3277
+ },
3278
+ {
3279
+ code: 8006,
3280
+ name: 'InvalidInputsMissingWritable',
3281
+ msg: 'Account should be writable',
3282
+ },
3283
+ {
3284
+ code: 8007,
3285
+ name: 'InvalidInputsChainSelector',
3286
+ msg: 'Chain selector is invalid',
3287
+ },
3288
+ {
3289
+ code: 8008,
3290
+ name: 'InvalidInputsMint',
3291
+ msg: 'Mint account input is invalid',
3292
+ },
3293
+ {
3294
+ code: 8009,
3295
+ name: 'InvalidInputsMintOwner',
3296
+ msg: 'Mint account input has an invalid owner',
3297
+ },
3298
+ {
3299
+ code: 8010,
3300
+ name: 'InvalidInputsTokenConfigAccount',
3301
+ msg: 'Token config account is invalid',
3302
+ },
3303
+ {
3304
+ code: 8011,
3305
+ name: 'InvalidInputsMissingExtraArgs',
3306
+ msg: 'Missing extra args in message to SVM receiver',
3307
+ },
3308
+ {
3309
+ code: 8012,
3310
+ name: 'InvalidInputsMissingDataAfterExtraArgs',
3311
+ msg: 'Missing data after extra args tag',
3312
+ },
3313
+ {
3314
+ code: 8013,
3315
+ name: 'InvalidInputsDestChainStateAccount',
3316
+ msg: 'Destination chain state account is invalid',
3317
+ },
3318
+ {
3319
+ code: 8014,
3320
+ name: 'InvalidInputsPerChainPerTokenConfig',
3321
+ msg: 'Per chain per token config account is invalid',
3322
+ },
3323
+ {
3324
+ code: 8015,
3325
+ name: 'InvalidInputsBillingTokenConfig',
3326
+ msg: 'Billing token config account is invalid',
3327
+ },
3328
+ {
3329
+ code: 8016,
3330
+ name: 'InvalidInputsAccountCount',
3331
+ msg: 'Number of accounts provided is incorrect',
3332
+ },
3333
+ {
3334
+ code: 8017,
3335
+ name: 'InvalidInputsNoUpdates',
3336
+ msg: 'No price or gas update provided',
3337
+ },
3338
+ {
3339
+ code: 8018,
3340
+ name: 'InvalidInputsTokenAccounts',
3341
+ msg: 'Invalid token accounts',
3342
+ },
3343
+ {
3344
+ code: 8019,
3345
+ name: 'DestinationChainDisabled',
3346
+ msg: 'Destination chain disabled',
3347
+ },
3348
+ {
3349
+ code: 8020,
3350
+ name: 'FeeTokenDisabled',
3351
+ msg: 'Fee token disabled',
3352
+ },
3353
+ {
3354
+ code: 8021,
3355
+ name: 'MessageTooLarge',
3356
+ msg: 'Message exceeds maximum data size',
3357
+ },
3358
+ {
3359
+ code: 8022,
3360
+ name: 'UnsupportedNumberOfTokens',
3361
+ msg: 'Message contains an unsupported number of tokens',
3362
+ },
3363
+ {
3364
+ code: 8023,
3365
+ name: 'InvalidTokenPrice',
3366
+ msg: 'Invalid token price',
3367
+ },
3368
+ {
3369
+ code: 8024,
3370
+ name: 'StaleGasPrice',
3371
+ msg: 'Stale gas price',
3372
+ },
3373
+ {
3374
+ code: 8025,
3375
+ name: 'InvalidInputsMissingTokenConfig',
3376
+ msg: 'Inputs are missing token configuration',
3377
+ },
3378
+ {
3379
+ code: 8026,
3380
+ name: 'MessageFeeTooHigh',
3381
+ msg: 'Message fee is too high',
3382
+ },
3383
+ {
3384
+ code: 8027,
3385
+ name: 'MessageGasLimitTooHigh',
3386
+ msg: 'Message gas limit too high',
3387
+ },
3388
+ {
3389
+ code: 8028,
3390
+ name: 'ExtraArgOutOfOrderExecutionMustBeTrue',
3391
+ msg: 'Extra arg out of order execution must be true',
3392
+ },
3393
+ {
3394
+ code: 8029,
3395
+ name: 'InvalidExtraArgsTag',
3396
+ msg: 'Invalid extra args tag',
3397
+ },
3398
+ {
3399
+ code: 8030,
3400
+ name: 'InvalidExtraArgsAccounts',
3401
+ msg: 'Invalid amount of accounts in extra args',
3402
+ },
3403
+ {
3404
+ code: 8031,
3405
+ name: 'InvalidExtraArgsWritabilityBitmap',
3406
+ msg: 'Invalid writability bitmap in extra args',
3407
+ },
3408
+ {
3409
+ code: 8032,
3410
+ name: 'InvalidTokenReceiver',
3411
+ msg: 'Invalid token receiver',
3412
+ },
3413
+ {
3414
+ code: 8033,
3415
+ name: 'UnauthorizedPriceUpdater',
3416
+ msg: 'The caller is not an authorized price updater',
3417
+ },
3418
+ {
3419
+ code: 8034,
3420
+ name: 'InvalidTokenTransferFeeMaxMin',
3421
+ msg: 'Minimum token transfer fee exceeds maximum',
3422
+ },
3423
+ {
3424
+ code: 8035,
3425
+ name: 'InvalidTokenTransferFeeDestBytesOverhead',
3426
+ msg: 'Insufficient dest bytes overhead on transfer fee config',
3427
+ },
3428
+ {
3429
+ code: 8036,
3430
+ name: 'InvalidCodeVersion',
3431
+ msg: 'Invalid code version',
3432
+ },
3433
+ {
3434
+ code: 8037,
3435
+ name: 'DefaultOwnerProposal',
3436
+ msg: 'Proposed owner is the default pubkey',
3437
+ },
3438
+ ],
3439
+ }
3440
+ // generate:end