@glamsystems/glam-sdk 0.1.31 → 0.1.33

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.
package/index.cjs.js CHANGED
@@ -5,7 +5,7 @@ var web3_js = require('@solana/web3.js');
5
5
  var splToken = require('@solana/spl-token');
6
6
  var splTokenMetadata = require('@solana/spl-token-metadata');
7
7
  var DLMM = require('@meteora-ag/dlmm');
8
- var sanctumLstList = require('sanctum-lst-list');
8
+ var sanctumLstList = require('@glamsystems/sanctum-lst-list');
9
9
  var bytes = require('@coral-xyz/anchor/dist/cjs/utils/bytes');
10
10
  var borsh = require('@coral-xyz/borsh');
11
11
  var marinadeTsSdk = require('@marinade.finance/marinade-ts-sdk');
@@ -34,7 +34,7 @@ var borsh__namespace = /*#__PURE__*/_interopNamespaceDefault(borsh);
34
34
  var address = "GLAMbTqav9N9witRjswJ8enwp9vv5G8bsSJ2kPJ4rcyc";
35
35
  var metadata = {
36
36
  name: "glam_protocol",
37
- version: "0.4.35",
37
+ version: "0.4.36",
38
38
  spec: "0.1.0",
39
39
  description: "Glam Protocol"
40
40
  };
@@ -1007,7 +1007,7 @@ var instructions = [
1007
1007
  98,
1008
1008
  97,
1009
1009
  108,
1010
- 95,
1010
+ 45,
1011
1011
  99,
1012
1012
  111,
1013
1013
  110,
@@ -6830,7 +6830,7 @@ var instructions = [
6830
6830
  98,
6831
6831
  97,
6832
6832
  108,
6833
- 95,
6833
+ 45,
6834
6834
  99,
6835
6835
  111,
6836
6836
  110,
@@ -6961,7 +6961,7 @@ var instructions = [
6961
6961
  98,
6962
6962
  97,
6963
6963
  108,
6964
- 95,
6964
+ 45,
6965
6965
  99,
6966
6966
  111,
6967
6967
  110,
@@ -7097,7 +7097,7 @@ var instructions = [
7097
7097
  98,
7098
7098
  97,
7099
7099
  108,
7100
- 95,
7100
+ 45,
7101
7101
  99,
7102
7102
  111,
7103
7103
  110,
@@ -7243,7 +7243,7 @@ var instructions = [
7243
7243
  98,
7244
7244
  97,
7245
7245
  108,
7246
- 95,
7246
+ 45,
7247
7247
  99,
7248
7248
  111,
7249
7249
  110,
@@ -7367,7 +7367,7 @@ var instructions = [
7367
7367
  98,
7368
7368
  97,
7369
7369
  108,
7370
- 95,
7370
+ 45,
7371
7371
  99,
7372
7372
  111,
7373
7373
  110,
@@ -7487,7 +7487,7 @@ var instructions = [
7487
7487
  98,
7488
7488
  97,
7489
7489
  108,
7490
- 95,
7490
+ 45,
7491
7491
  99,
7492
7492
  111,
7493
7493
  110,
@@ -7553,8 +7553,11 @@ var instructions = [
7553
7553
  docs: [
7554
7554
  "Price vault SOL balance and tokens it holds.",
7555
7555
  "",
7556
+ "If aggregation oracle is used for token #`i`, `agg_indexes[i]` must be set to its index in the oracle mapping account.",
7557
+ "",
7556
7558
  "Extra accounts for pricing N tokens:",
7557
- "- (ata, mint, oracle) x N"
7559
+ "- (ata, mint, oracle) x N",
7560
+ "- optional oracle mapping (only add it if any token uses an agg oracle)"
7558
7561
  ],
7559
7562
  discriminator: [
7560
7563
  54,
@@ -7613,7 +7616,7 @@ var instructions = [
7613
7616
  98,
7614
7617
  97,
7615
7618
  108,
7616
- 95,
7619
+ 45,
7617
7620
  99,
7618
7621
  111,
7619
7622
  110,
@@ -7671,6 +7674,12 @@ var instructions = [
7671
7674
  name: "PriceDenom"
7672
7675
  }
7673
7676
  }
7677
+ },
7678
+ {
7679
+ name: "agg_indexes",
7680
+ type: {
7681
+ vec: "i16"
7682
+ }
7674
7683
  }
7675
7684
  ]
7676
7685
  },
@@ -8079,7 +8088,7 @@ var instructions = [
8079
8088
  98,
8080
8089
  97,
8081
8090
  108,
8082
- 95,
8091
+ 45,
8083
8092
  99,
8084
8093
  111,
8085
8094
  110,
@@ -11226,6 +11235,23 @@ var types = [
11226
11235
  name: "OracleSource"
11227
11236
  }
11228
11237
  }
11238
+ },
11239
+ {
11240
+ name: "max_age_seconds",
11241
+ type: "u16"
11242
+ },
11243
+ {
11244
+ name: "priority",
11245
+ type: "u8"
11246
+ },
11247
+ {
11248
+ name: "padding",
11249
+ type: {
11250
+ array: [
11251
+ "u8",
11252
+ 3
11253
+ ]
11254
+ }
11229
11255
  }
11230
11256
  ]
11231
11257
  }
@@ -12326,8 +12352,7 @@ var types = [
12326
12352
  {
12327
12353
  name: "fee_authority",
12328
12354
  docs: [
12329
- "The authority that can modify fee structure of individual glam state",
12330
- "and claim protocol fees"
12355
+ "The authority that can modify fee structure of individual glam state and claim protocol fees"
12331
12356
  ],
12332
12357
  type: "pubkey"
12333
12358
  },
@@ -13238,6 +13263,9 @@ var types = [
13238
13263
  {
13239
13264
  name: "PythLazerStableCoin"
13240
13265
  },
13266
+ {
13267
+ name: "NotSet"
13268
+ },
13241
13269
  {
13242
13270
  name: "LstPoolState"
13243
13271
  },
@@ -13246,6 +13274,9 @@ var types = [
13246
13274
  },
13247
13275
  {
13248
13276
  name: "BaseAsset"
13277
+ },
13278
+ {
13279
+ name: "ChainlinkRWA"
13249
13280
  }
13250
13281
  ]
13251
13282
  }
@@ -15255,7 +15286,7 @@ const setsAreEqual = (a, b)=>{
15255
15286
  return true;
15256
15287
  };
15257
15288
 
15258
- const STAKE_POOLS = sanctumLstList.LstList.filter((lst)=>!lst.name.includes("Sanctum Automated") && (lst.pool.program === "Spl" || lst.pool.program === "Marinade" || lst.pool.program === "SanctumSpl" || lst.pool.program === "SanctumSplMulti")).map((lst)=>{
15289
+ const STAKE_POOLS = sanctumLstList.LstList.filter((lst)=>lst.pool.program === "Spl" || lst.pool.program === "Marinade" || lst.pool.program === "SanctumSpl" || lst.pool.program === "SanctumSplMulti").map((lst)=>{
15259
15290
  const { pool, program } = lst.pool;
15260
15291
  const poolState = program === "Marinade" ? "8szGkuLTAux9XMgZ2vtY39jVSowEcpBfFfD8hXSEqdGC" : pool;
15261
15292
  if (!poolState) {
@@ -15271,20 +15302,15 @@ const STAKE_POOLS = sanctumLstList.LstList.filter((lst)=>!lst.name.includes("San
15271
15302
  poolState: new web3_js.PublicKey(poolState)
15272
15303
  };
15273
15304
  });
15274
- STAKE_POOLS.push({
15275
- name: "Phantom Staked SOL",
15276
- symbol: "PSOL",
15277
- mint: "pSo1f9nQXWgXibFtKf7NWYxb5enAM4qfP6UJSiXRQfL",
15278
- decimals: 9,
15279
- logoURI: "https://coin-images.coingecko.com/coins/images/55849/large/PSOL.png",
15280
- tokenProgram: splToken.TOKEN_PROGRAM_ID,
15281
- poolState: new web3_js.PublicKey("pSPcvR8GmG9aKDUbn9nbKYjkxt9hxMS7kF1qqKJaPqJ")
15282
- });
15283
15305
  const STAKE_POOLS_MAP = new Map(STAKE_POOLS.map((p)=>[
15284
15306
  p.mint,
15285
15307
  p
15286
15308
  ]));
15287
- const ASSETS_MAINNET = new Map([
15309
+ /**
15310
+ * Asset-Oracle mapping supported by the protocol. This map is a mirror of onchain mapping stored in `global_config` https://solscan.io/account/6avract7PxKqoq6hdmpAgGKgJWoJWdiXPPzzFZ62Hck6
15311
+ *
15312
+ * Note that we use functional prices for LSTs, and the oracle pubkey of a LST asset is the pool state.
15313
+ */ const ASSETS_MAINNET = new Map([
15288
15314
  [
15289
15315
  // SOL
15290
15316
  "So11111111111111111111111111111111111111112",
@@ -15334,7 +15360,7 @@ const ASSETS_MAINNET = new Map([
15334
15360
  }
15335
15361
  ],
15336
15362
  [
15337
- // USDC
15363
+ // USD Coin - USDC
15338
15364
  "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
15339
15365
  {
15340
15366
  decimals: 6,
@@ -15342,7 +15368,7 @@ const ASSETS_MAINNET = new Map([
15342
15368
  }
15343
15369
  ],
15344
15370
  [
15345
- // USDT
15371
+ // USDT - USDT
15346
15372
  "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB",
15347
15373
  {
15348
15374
  decimals: 6,
@@ -15350,7 +15376,7 @@ const ASSETS_MAINNET = new Map([
15350
15376
  }
15351
15377
  ],
15352
15378
  [
15353
- // USDY
15379
+ // Ondo US Dollar Yield - USDY
15354
15380
  "A1KLoBrKBde8Ty9qtNQUtq3C2ortoC3u7twggz7sEto6",
15355
15381
  {
15356
15382
  decimals: 6,
@@ -15358,7 +15384,7 @@ const ASSETS_MAINNET = new Map([
15358
15384
  }
15359
15385
  ],
15360
15386
  [
15361
- // USDG
15387
+ // Global Dollar - USDG
15362
15388
  "2u1tszSeqZ3qBWF3uNGPFc8TzMk2tdiwknnRMWGWjGWH",
15363
15389
  {
15364
15390
  decimals: 6,
@@ -15367,7 +15393,7 @@ const ASSETS_MAINNET = new Map([
15367
15393
  }
15368
15394
  ],
15369
15395
  [
15370
- // PYUSD
15396
+ // PayPal USD - PYUSD
15371
15397
  "2b1kV6DkPAnxd5ixfnxCpjxmKwqjjaYmCZfHsFu24GXo",
15372
15398
  {
15373
15399
  decimals: 6,
@@ -15400,41 +15426,303 @@ const ASSETS_MAINNET = new Map([
15400
15426
  }
15401
15427
  ],
15402
15428
  [
15403
- // mSOL
15404
- "mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So",
15429
+ // GOOGLx
15430
+ "XsCPL9dNWBMvFtTmwcCA5v3xWPSMEBCszbQdiLLq6aN",
15431
+ {
15432
+ decimals: 8,
15433
+ oracle: new web3_js.PublicKey("3NJYftD5sjVfxSnUdZ1wVML8f3aC6mp1CXCL6L7TnU8C"),
15434
+ programId: splToken.TOKEN_2022_PROGRAM_ID,
15435
+ aggIndex: 342
15436
+ }
15437
+ ],
15438
+ [
15439
+ // AAPLx
15440
+ "XsbEhLAtcf6HdfpFZ5xEMdqW8nfAvcsP5bdudRLJzJp",
15441
+ {
15442
+ decimals: 8,
15443
+ oracle: new web3_js.PublicKey("3NJYftD5sjVfxSnUdZ1wVML8f3aC6mp1CXCL6L7TnU8C"),
15444
+ programId: splToken.TOKEN_2022_PROGRAM_ID,
15445
+ aggIndex: 343
15446
+ }
15447
+ ],
15448
+ [
15449
+ // TSLAx
15450
+ "XsDoVfqeBukxuZHWhdvWHBhgEHjGNst4MLodqsJHzoB",
15451
+ {
15452
+ decimals: 8,
15453
+ oracle: new web3_js.PublicKey("3NJYftD5sjVfxSnUdZ1wVML8f3aC6mp1CXCL6L7TnU8C"),
15454
+ programId: splToken.TOKEN_2022_PROGRAM_ID,
15455
+ aggIndex: 335
15456
+ }
15457
+ ],
15458
+ [
15459
+ // NVDAx
15460
+ "Xsc9qvGR1efVDFGLrVsmkzv3qi45LTBjeUKSPmx9qEh",
15461
+ {
15462
+ decimals: 8,
15463
+ oracle: new web3_js.PublicKey("3NJYftD5sjVfxSnUdZ1wVML8f3aC6mp1CXCL6L7TnU8C"),
15464
+ programId: splToken.TOKEN_2022_PROGRAM_ID,
15465
+ aggIndex: 341
15466
+ }
15467
+ ],
15468
+ [
15469
+ // Bonk - Bonk
15470
+ "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263",
15471
+ {
15472
+ decimals: 6,
15473
+ oracle: new web3_js.PublicKey("BERaNi6cpEresbq6HC1EQGaB1H1UjvEo4NGnmYSSJof4")
15474
+ }
15475
+ ],
15476
+ [
15477
+ // Raydium - RAY
15478
+ "4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R",
15479
+ {
15480
+ decimals: 6,
15481
+ oracle: new web3_js.PublicKey("6VXU2P9BJkuPkfA7FJVonBtAo1c2pGnHoV9rxsdZKZyb")
15482
+ }
15483
+ ],
15484
+ [
15485
+ // Helium Network Token - HNT
15486
+ "hntyVP6YFm1Hg25TN9WGLqM12b8TQmcknKrdu1oxWux",
15487
+ {
15488
+ decimals: 8,
15489
+ oracle: new web3_js.PublicKey("AEPgc6qUTCT8AwdckPcGbJXtcM9bj8mGYAyHE4BscJtm")
15490
+ }
15491
+ ],
15492
+ [
15493
+ // Kamino - KMNO
15494
+ "KMNo3nJsBXfcpJTVhZcXLW7RmTwTt4GVFE7suUBo9sS",
15495
+ {
15496
+ decimals: 6,
15497
+ oracle: new web3_js.PublicKey("6ua3DK1sHoYyNi15dsxy6RYwUcZPDDXfyChzaRMaheQF")
15498
+ }
15499
+ ],
15500
+ [
15501
+ // Tensor - TNSR
15502
+ "TNSRxcUxoT9xBG3de7PiJyTDYu7kskLqcpddxnEJAS6",
15405
15503
  {
15406
15504
  decimals: 9,
15407
- oracle: new web3_js.PublicKey("8szGkuLTAux9XMgZ2vtY39jVSowEcpBfFfD8hXSEqdGC")
15505
+ oracle: new web3_js.PublicKey("EX6r1GdfsgcUsY6cQ6YsToV4RGsb4HKpjrkokK2DrmsS")
15506
+ }
15507
+ ],
15508
+ [
15509
+ // JITO - JTO
15510
+ "jtojtomepa8beP8AuQc6eXt5FriJwfFMwQx2v2f9mCL",
15511
+ {
15512
+ decimals: 9,
15513
+ oracle: new web3_js.PublicKey("CGCz4mB8NsDddCq6BZToRUDUuktzsAfpKYh6ATgyyCGF")
15514
+ }
15515
+ ],
15516
+ [
15517
+ // Drift - DRIFT
15518
+ "DriFtupJYLTosbwoN8koMbEYSx54aFAVLddWsbksjwg7",
15519
+ {
15520
+ decimals: 6,
15521
+ oracle: new web3_js.PublicKey("5VJou4ufN2vE11zyZUaLsKLTXhyzCTgiq6QDsts2YnnD")
15522
+ }
15523
+ ],
15524
+ [
15525
+ // Render Token - RENDER
15526
+ "rndrizKT3MK1iimdxRdWabcF7Zg7AR5T4nud4EkHBof",
15527
+ {
15528
+ decimals: 8,
15529
+ oracle: new web3_js.PublicKey("97EqsAGbTnShB7oYWAFFCVVAx8PWXgDYDhcpm99izNQ4")
15530
+ }
15531
+ ],
15532
+ [
15533
+ // Wormhole Token - W
15534
+ "85VBFQZC9TZkfaptBWjvUw7YbZjy52A6mjtPGjstQAmQ",
15535
+ {
15536
+ decimals: 6,
15537
+ oracle: new web3_js.PublicKey("CsFUXiA5dM4eCKjVBBy8tXhXzDkDRNoYjU5rjpHyfNEZ")
15538
+ }
15539
+ ],
15540
+ [
15541
+ // Pyth Network - PYTH
15542
+ "HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3",
15543
+ {
15544
+ decimals: 6,
15545
+ oracle: new web3_js.PublicKey("6Sfx8ZAt6xaEgMXTahR6GrT7oYB6nFBMoVyCmMyHmeJV")
15546
+ }
15547
+ ],
15548
+ [
15549
+ // dogwifhat - $WIF
15550
+ "EKpQGSJtjMFqKZ9KQanSqYXRcF8fBopzLHYxdM65zcjm",
15551
+ {
15552
+ decimals: 6,
15553
+ oracle: new web3_js.PublicKey("4QXWStoyEErTZFVsvKrvxuNa6QT8zpeA8jddZunSGvYE")
15408
15554
  }
15409
15555
  ],
15410
15556
  [
15411
- // jitoSOL
15412
- "J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn",
15557
+ // Infinity - INF
15558
+ "5oVNBeEEQvYi1cX3ir8Dx5n1P7pdxydbGF2X4TxVusJm",
15413
15559
  {
15414
15560
  decimals: 9,
15415
- oracle: new web3_js.PublicKey("Jito4APyf642JPZPx3hGc6WWJ8zPKtRbRs4P815Awbb"),
15416
- isLst: true
15561
+ oracle: new web3_js.PublicKey("B7RUYg2zF6UdUSHv2RmpnriPVJccYWojgFydNS1NY5F8")
15417
15562
  }
15418
15563
  ],
15419
15564
  [
15420
- // bonkSOL
15421
- "BonK1YhkXEGLZzwtcvRTip3gAL9nCeQD7ppZBLXhtTs",
15565
+ // BlazeStake Staked SOL (bSOL) - bSOL
15566
+ "bSo13r4TkiE4KumL71LsHTPpL2euBYLFx6h9HP3piy1",
15422
15567
  {
15423
15568
  decimals: 9,
15424
- oracle: new web3_js.PublicKey("ArAQfbzsdotoKB5jJcZa3ajQrrPcWr2YQoDAEAiFxJAC"),
15425
- isLst: true
15569
+ oracle: new web3_js.PublicKey("BmDWPMsytWmYkh9n6o7m79eVshVYf2B5GVaqQ2EWKnGH")
15426
15570
  }
15427
15571
  ],
15428
15572
  [
15429
- // dSOL
15430
- "Dso1bDeDjCQxTrWHqUUi63oBvV7Mdm6WaobLbQ7gnPQ",
15573
+ // Popcat - POPCAT
15574
+ "7GCihgDB8fe6KNjn2MYtkzZcRjQy3t9GHdC8uHYmW2hr",
15431
15575
  {
15432
15576
  decimals: 9,
15433
- oracle: new web3_js.PublicKey("9mhGNSPArRMHpLDMSmxAvuoizBqtBGqYdT8WGuqgxNdn"),
15434
- isLst: true
15577
+ oracle: new web3_js.PublicKey("C5fiAmQyjdfDR4EGepZqnEL3fJwMBav5yoAk6XyKMF6u")
15578
+ }
15579
+ ],
15580
+ [
15581
+ // Cloud - CLOUD
15582
+ "CLoUDKc4Ane7HeQcPpE3YHnznRxhMimJ4MyaUqyHFzAu",
15583
+ {
15584
+ decimals: 9,
15585
+ oracle: new web3_js.PublicKey("9Ennia27iT83kNAk3JtRKxSMzuCzsVtT4MzuxpE7anME")
15586
+ }
15587
+ ],
15588
+ [
15589
+ // Binance Staked SOL - BNSOL
15590
+ "BNso1VUJnh4zcfpZa6986Ea66P6TCp59hvtNJ8b1X85",
15591
+ {
15592
+ decimals: 9,
15593
+ oracle: new web3_js.PublicKey("8DmXTfhhtb9kTcpTVfb6Ygx8WhZ8wexGqcpxfn23zooe")
15594
+ }
15595
+ ],
15596
+ [
15597
+ // MOTHER IGGY - MOTHER
15598
+ "3S8qX1MsMqRbiwKg2cQyx7nis1oHMgaCuc9c4VfvVdPN",
15599
+ {
15600
+ decimals: 6,
15601
+ oracle: new web3_js.PublicKey("469WQgfJ6AJ3eJ8FUcdhiZawf7yNChA3hseTSyhFatHZ")
15602
+ }
15603
+ ],
15604
+ [
15605
+ // Magic Eden - ME
15606
+ "MEFNBXixkEbait3xn9bkm8WsJzXtVsaJEn4c8Sam21u",
15607
+ {
15608
+ decimals: 6,
15609
+ oracle: new web3_js.PublicKey("BboTg1yT114FQkqT6MM3P3G3CcCktuM2RePgU8Gr3K4A")
15610
+ }
15611
+ ],
15612
+ [
15613
+ // META - META
15614
+ "METADDFL6wWMWEoKTFJwcThTbUmtarRJZjRpzUvkxhr",
15615
+ {
15616
+ decimals: 9,
15617
+ oracle: new web3_js.PublicKey("DwYF1yveo8XTF1oqfsqykj332rjSxAd7bR6Gu6i4iUET")
15618
+ }
15619
+ ],
15620
+ [
15621
+ // Pudgy Penguins - PENGU
15622
+ "2zMMhcVQEXDtdE6vsFS7S7D5oUodfJHE8vd1gnBouauv",
15623
+ {
15624
+ decimals: 6,
15625
+ oracle: new web3_js.PublicKey("4A3KroGPjZxPAeBNF287V3NyRwV2q8iBi1vX7kHxTCh7")
15626
+ }
15627
+ ],
15628
+ [
15629
+ // ai16z - ai16z
15630
+ "HeLp6NuQkmYB4pYWo2zYs22mESHXPQYzXbB8n4V98jwC",
15631
+ {
15632
+ decimals: 9,
15633
+ oracle: new web3_js.PublicKey("3BGheQVvYtBNpBKSUXSTjpyKQc3dh8iiwT91Aiq7KYCU"),
15634
+ programId: splToken.TOKEN_2022_PROGRAM_ID
15635
+ }
15636
+ ],
15637
+ [
15638
+ // OFFICIAL TRUMP - TRUMP
15639
+ "6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN",
15640
+ {
15641
+ decimals: 6,
15642
+ oracle: new web3_js.PublicKey("FPQjZYvHRGy51guJ77p7n9u9b8eo1ktKRc2D2g5Vysth")
15643
+ }
15644
+ ],
15645
+ [
15646
+ // Melania Meme - MELANIA
15647
+ "FUAfBo2jgks6gB4Z4LfZkqSZgzNucisEHqnNebaRxM1P",
15648
+ {
15649
+ decimals: 6,
15650
+ oracle: new web3_js.PublicKey("3RgNWYYcZCKf5uZfriK8ASUbGQErhH6YbpdvZQ7ZKDCf")
15651
+ }
15652
+ ],
15653
+ [
15654
+ // AUSD - AUSD
15655
+ "AUSD1jCcCyPLybk1YnvPWsHQSrZ46dxwoMniN4N2UEB9",
15656
+ {
15657
+ decimals: 6,
15658
+ oracle: new web3_js.PublicKey("8FZhpiM8n3mpgvENWLcEvHsKB1bBhYBAyL4Ypr4gptLZ"),
15659
+ programId: splToken.TOKEN_2022_PROGRAM_ID
15660
+ }
15661
+ ],
15662
+ [
15663
+ // zBTC - zBTC
15664
+ "zBTCug3er3tLyffELcvDNrKkCymbPWysGcWihESYfLg",
15665
+ {
15666
+ decimals: 8,
15667
+ oracle: new web3_js.PublicKey("CN9QvvbGQzMnN8vJaSek2so4vFnTqgJDFrdJB8Y4tQfB")
15668
+ }
15669
+ ],
15670
+ [
15671
+ // Fartcoin - Fartcoin
15672
+ "9BB6NFEcjBCtnNLFko2FqVQBq8HHM13kCyYcdQbgpump",
15673
+ {
15674
+ decimals: 6,
15675
+ oracle: new web3_js.PublicKey("2sZomfWMDuQLcFak3nuharXorHrZ3hK8iaML6ZGSHtso")
15676
+ }
15677
+ ],
15678
+ [
15679
+ // ZEUS - ZEUS
15680
+ "ZEUS1aR7aX8DFFJf5QjWj2ftDDdNTroMNGo8YoQm3Gq",
15681
+ {
15682
+ decimals: 6,
15683
+ oracle: new web3_js.PublicKey("8cH72H3vqYPArV9QvkYJkwzTdsdNPPgVPrusz9sMmgNN")
15684
+ }
15685
+ ],
15686
+ [
15687
+ // Pump - PUMP
15688
+ "pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn",
15689
+ {
15690
+ decimals: 6,
15691
+ oracle: new web3_js.PublicKey("5r8RWTaRiMgr9Lph3FTUE3sGb1vymhpCrm83Bovjfcps"),
15692
+ programId: splToken.TOKEN_2022_PROGRAM_ID
15693
+ }
15694
+ ],
15695
+ [
15696
+ // EURC - EURC
15697
+ "HzwqbKZw8HxMN6bF2yFZNrht3c2iXXzpKcFu7uBEDKtr",
15698
+ {
15699
+ decimals: 6,
15700
+ oracle: new web3_js.PublicKey("BkdSPLmw4W6twrJjAePw2bJAwDTBtxJ9t6LvNHfcBKg1")
15701
+ }
15702
+ ],
15703
+ [
15704
+ // DeFi Development Corp Staked SOL - dfdvSOL
15705
+ "sctmB7GPi5L2Q5G9tUSzXvhZ4YiDMEGcRov9KfArQpx",
15706
+ {
15707
+ decimals: 9,
15708
+ oracle: new web3_js.PublicKey("EUQQD2fNN7h7su5TbWpUnf22zeGtF3RjEX2hgX2YPfLd")
15709
+ }
15710
+ ],
15711
+ [
15712
+ // Syrup USDC - syrupUSDC
15713
+ "AvZZF1YaZDziPY2RCK4oJrRVrbN3mTD9NL24hPeaZeUj",
15714
+ {
15715
+ decimals: 6,
15716
+ oracle: new web3_js.PublicKey("GqqkoqHU5pqgTvL88xSCipH9txbPETyzvAvybQ3zRpzw")
15435
15717
  }
15436
15718
  ]
15437
15719
  ]);
15720
+ STAKE_POOLS.forEach((p)=>{
15721
+ ASSETS_MAINNET.set(p.mint, {
15722
+ decimals: p.decimals,
15723
+ oracle: new web3_js.PublicKey(p.poolState)
15724
+ });
15725
+ });
15438
15726
  const ASSETS_TESTS = new Map([]);
15439
15727
  const SOL_ORACLE = ASSETS_MAINNET.get("So11111111111111111111111111111111111111112").oracle;
15440
15728
  const USDC_ORACLE = ASSETS_MAINNET.get("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v").oracle;
@@ -21719,7 +22007,23 @@ class PriceClient {
21719
22007
  * Returns an instruction that prices vault balance and tokens the vault holds
21720
22008
  */ async priceVaultIx(priceDenom) {
21721
22009
  const remainingAccounts = await this.remainingAccountsForPricingVaultAssets(priceDenom == PriceDenom.ASSET);
21722
- const priceVaultIx = await this.base.program.methods.priceVaultTokens(priceDenom).accounts({
22010
+ const aggIndexes = [];
22011
+ const chunkSize = 3;
22012
+ for(let i = 0; i < remainingAccounts.length; i += chunkSize){
22013
+ const chunk = remainingAccounts.slice(i, i + chunkSize);
22014
+ const mint = chunk[1].pubkey;
22015
+ const aggIndex = ASSETS_MAINNET.get(mint.toBase58())?.aggIndex || -1;
22016
+ aggIndexes.push(aggIndex);
22017
+ }
22018
+ // Add oracle mapping if agg oracle is used for any token
22019
+ if (aggIndexes.find((i)=>i >= 0)) {
22020
+ remainingAccounts.push({
22021
+ pubkey: new web3_js.PublicKey("Chpu5ZgfWX5ZzVpUx9Xvv4WPM75Xd7zPJNDPsFnCpLpk"),
22022
+ isSigner: false,
22023
+ isWritable: false
22024
+ });
22025
+ }
22026
+ const priceVaultIx = await this.base.program.methods.priceVaultTokens(priceDenom, aggIndexes).accounts({
21723
22027
  glamState: this.base.statePda,
21724
22028
  solOracle: SOL_ORACLE
21725
22029
  }).remainingAccounts(remainingAccounts).instruction();