@exodus/solana-lib 3.22.0 → 3.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [3.22.1](https://github.com/ExodusMovement/assets/compare/@exodus/solana-lib@3.22.0...@exodus/solana-lib@3.22.1) (2026-03-18)
7
+
8
+ **Note:** Version bump only for package @exodus/solana-lib
9
+
10
+
11
+
12
+
13
+
6
14
  ## [3.22.0](https://github.com/ExodusMovement/assets/compare/@exodus/solana-lib@3.21.1...@exodus/solana-lib@3.22.0) (2026-03-13)
7
15
 
8
16
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exodus/solana-lib",
3
- "version": "3.22.0",
3
+ "version": "3.22.1",
4
4
  "description": "Solana utils, such as for cryptography, address encoding/decoding, transaction building, etc.",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -48,5 +48,5 @@
48
48
  "type": "git",
49
49
  "url": "git+https://github.com/ExodusMovement/assets.git"
50
50
  },
51
- "gitHead": "cf39bddd95d88ea2e99809810172368a5d4adc97"
51
+ "gitHead": "e746a88ef78a0e7167587bfa14068ceb494d6fd7"
52
52
  }
package/src/keypair.js CHANGED
@@ -1,8 +1,12 @@
1
1
  import {
2
+ // eslint-disable-next-line @exodus/import/no-deprecated
2
3
  edwardsToPublicSync,
4
+ // eslint-disable-next-line @exodus/import/no-deprecated
3
5
  signDetachedSync,
6
+ // eslint-disable-next-line @exodus/import/no-deprecated
4
7
  verifyDetachedSync,
5
8
  } from '@exodus/crypto/curve25519'
9
+ // eslint-disable-next-line @exodus/import/no-deprecated
6
10
  import { randomBytes } from '@exodus/crypto/randomBytes'
7
11
 
8
12
  import { PublicKey } from './vendor/publickey.js'
@@ -10,6 +14,7 @@ import { PublicKey } from './vendor/publickey.js'
10
14
  export function getKeyPairFromPrivateKey(seed) {
11
15
  const pair = Buffer.from(seed, 'hex')
12
16
  const privateKey = pair.subarray(0, 32)
17
+ // eslint-disable-next-line @exodus/import/no-deprecated
13
18
  const publicKey = edwardsToPublicSync({ privateKey, format: 'buffer' })
14
19
 
15
20
  // Recheck just in case
@@ -23,6 +28,7 @@ export function getKeyPairFromPrivateKey(seed) {
23
28
  }
24
29
 
25
30
  export function generateKeyPair() {
31
+ // eslint-disable-next-line @exodus/import/no-deprecated
26
32
  const { publicKey, privateKey } = getKeyPairFromPrivateKey(randomBytes(32))
27
33
 
28
34
  return {
@@ -36,6 +42,7 @@ export function getPublicKey(privateKey) {
36
42
  }
37
43
 
38
44
  export function sign(data, privateKey) {
45
+ // eslint-disable-next-line @exodus/import/no-deprecated
39
46
  return signDetachedSync({
40
47
  message: data,
41
48
  privateKey: Buffer.from(privateKey, 'hex'),
@@ -44,5 +51,6 @@ export function sign(data, privateKey) {
44
51
  }
45
52
 
46
53
  export function verifySignature(data, signature, publicKey) {
54
+ // eslint-disable-next-line @exodus/import/no-deprecated
47
55
  return verifyDetachedSync({ message: data, signature, publicKey: Buffer.from(publicKey, 'hex') })
48
56
  }
@@ -1,4 +1,5 @@
1
1
  import * as BufferLayout from '@exodus/buffer-layout'
2
+ // eslint-disable-next-line @exodus/import/no-deprecated
2
3
  import { hashSync } from '@exodus/crypto/hash'
3
4
 
4
5
  import { bnAmountU64, publicKey } from '../vendor/utils/layout.js'
@@ -21,6 +22,7 @@ const idl = {
21
22
  export function sighash(nameSpace, ixName) {
22
23
  const preimage = `${nameSpace}:${ixName}`
23
24
 
25
+ // eslint-disable-next-line @exodus/import/no-deprecated
24
26
  return hashSync('sha256', preimage).slice(0, 8)
25
27
  }
26
28
 
@@ -1,3 +1,4 @@
1
+ // eslint-disable-next-line @exodus/import/no-deprecated
1
2
  import { signDetachedSync } from '@exodus/crypto/curve25519'
2
3
  import bs58 from 'bs58'
3
4
  import assert from 'minimalistic-assert'
@@ -13,6 +14,7 @@ export function signMessage({ message, privateKey }) {
13
14
  !isTransactionMessage(messageBuffer),
14
15
  'attempted to sign transaction using message signing'
15
16
  )
17
+ // eslint-disable-next-line @exodus/import/no-deprecated
16
18
  const signature = signDetachedSync({
17
19
  message: messageBuffer,
18
20
  privateKey: Buffer.from(privateKey, 'hex').subarray(0, 32),
@@ -1,3 +1,4 @@
1
+ // eslint-disable-next-line @exodus/import/no-deprecated
1
2
  import { isNumberUnit } from '@exodus/currency'
2
3
  import { VersionedTransaction } from '@exodus/solana-web3.js'
3
4
  import BN from 'bn.js'
@@ -55,11 +56,13 @@ export function prepareForSigning(unsignedTx, { checkBalances = true } = {}) {
55
56
  const address = from
56
57
 
57
58
  const amount = unitAmount
58
- ? new BN(isNumberUnit(unitAmount) ? unitAmount.toBaseString() : unitAmount).toString()
59
+ ? // eslint-disable-next-line @exodus/import/no-deprecated
60
+ new BN(isNumberUnit(unitAmount) ? unitAmount.toBaseString() : unitAmount).toString()
59
61
  : unitAmount
60
62
 
61
63
  const fee = feeAmount
62
- ? new BN(isNumberUnit(feeAmount) ? feeAmount.toBaseString() : feeAmount).toNumber()
64
+ ? // eslint-disable-next-line @exodus/import/no-deprecated
65
+ new BN(isNumberUnit(feeAmount) ? feeAmount.toBaseString() : feeAmount).toNumber()
63
66
  : feeAmount
64
67
 
65
68
  const txData = { ...unsignedTx.txData, address, amount, fee }
@@ -1,5 +1,7 @@
1
1
  import { typedView } from '@exodus/bytes/array.js'
2
+ // eslint-disable-next-line @exodus/import/no-deprecated
2
3
  import { edwardsToMontgomeryPublicSync } from '@exodus/crypto/curve25519'
4
+ // eslint-disable-next-line @exodus/import/no-deprecated
3
5
  import { hashSync } from '@exodus/crypto/hash'
4
6
  import BN from 'bn.js'
5
7
  import bs58 from 'bs58'
@@ -121,6 +123,7 @@ export class PublicKey {
121
123
  Buffer.from(seed),
122
124
  programId.toBuffer(),
123
125
  ])
126
+ // eslint-disable-next-line @exodus/import/no-deprecated
124
127
  const hash = hashSync('sha256', buffer)
125
128
  return new PublicKey(hash)
126
129
  }
@@ -138,6 +141,7 @@ export class PublicKey {
138
141
  buffer = Buffer.concat([buffer, Buffer.from(seed)])
139
142
  })
140
143
  buffer = Buffer.concat([buffer, programId.toBuffer(), Buffer.from('ProgramDerivedAddress')])
144
+ // eslint-disable-next-line @exodus/import/no-deprecated
141
145
  const hash = hashSync('sha256', buffer, 'hex')
142
146
  const publicKeyBytes = new BN(hash, 16).toArray(null, 32)
143
147
  if (isOnCurve(publicKeyBytes)) {
@@ -152,6 +156,7 @@ export class PublicKey {
152
156
  function isOnCurve(p) {
153
157
  try {
154
158
  // This tries to parse edwards public key and validates it
159
+ // eslint-disable-next-line @exodus/import/no-deprecated
155
160
  edwardsToMontgomeryPublicSync({ publicKey: Uint8Array.from(p) })
156
161
  return true
157
162
  } catch {}
@@ -1,5 +1,6 @@
1
1
  // https://github.com/solana-labs/solana-web3.js/blob/master/src/transaction.js
2
2
 
3
+ // eslint-disable-next-line @exodus/import/no-deprecated
3
4
  import { signDetachedSync, verifyDetachedSync } from '@exodus/crypto/curve25519'
4
5
  import bs58 from 'bs58'
5
6
  import invariant from 'minimalistic-assert'
@@ -436,6 +437,7 @@ export class Transaction {
436
437
 
437
438
  const signData = message.serialize()
438
439
  signers.forEach((signer) => {
440
+ // eslint-disable-next-line @exodus/import/no-deprecated
439
441
  const signature = signDetachedSync({ message: signData, privateKey: signer.privateKey })
440
442
  this.addSignature(signer.publicKey, signature)
441
443
  })
@@ -474,6 +476,7 @@ export class Transaction {
474
476
  }
475
477
  } else {
476
478
  if (
479
+ // eslint-disable-next-line @exodus/import/no-deprecated
477
480
  !verifyDetachedSync({ message: signData, signature, publicKey: publicKey.toBuffer() })
478
481
  ) {
479
482
  return false