@exodus/solana-lib 2.3.0 → 2.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@exodus/solana-lib",
3
- "version": "2.3.0",
3
+ "version": "2.4.0",
4
4
  "description": "Exodus internal Solana low-level library",
5
5
  "main": "src/index.js",
6
6
  "files": [
@@ -23,6 +23,7 @@
23
23
  "@exodus/currency": "^2.3.2",
24
24
  "@exodus/key-utils": "^3.1.0",
25
25
  "@exodus/models": "^10.1.0",
26
+ "@exodus/solana-web3.js": "^1.63.1-exodus.3",
26
27
  "@project-serum/serum": "0.13.64",
27
28
  "bn.js": "^4.11.0",
28
29
  "borsh": "^0.7.0",
@@ -39,5 +40,5 @@
39
40
  "@solana/web3.js": "^1.90.0",
40
41
  "bip39": "^2.6.0"
41
42
  },
42
- "gitHead": "5be11b271fd14c54f4fe8dd04b146361100e2a4d"
43
+ "gitHead": "02a052ff417b0c4d0379edf866b6a984ca6a4830"
43
44
  }
package/src/index.js CHANGED
@@ -2,6 +2,7 @@ export * from './constants'
2
2
  export * from './encode'
3
3
  export * from './keypair'
4
4
  export * from './tx'
5
+ export * from './msg'
5
6
  export * from './fee-data'
6
7
  export {
7
8
  TransactionInstruction,
@@ -0,0 +1,2 @@
1
+ export { signMessage } from './sign-message-deprecated'
2
+ export { signMessageNew } from './sign-message'
@@ -0,0 +1,20 @@
1
+ import assert from 'assert'
2
+ import nacl from 'tweetnacl'
3
+ import bs58 from 'bs58'
4
+
5
+ import { isTransactionMessage } from './validation'
6
+ import { getKeyPairFromPrivateKey } from '../keypair'
7
+
8
+ /**
9
+ * @deprecated please use messageSigner
10
+ */
11
+ export function signMessage({ message, privateKey }) {
12
+ const { secretKey } = getKeyPairFromPrivateKey(privateKey)
13
+ const messageBuffer = bs58.decode(message)
14
+ assert(
15
+ !isTransactionMessage(messageBuffer),
16
+ 'attempted to sign transaction using message signing'
17
+ )
18
+ const signature = nacl.sign.detached(messageBuffer, secretKey)
19
+ return bs58.encode(signature)
20
+ }
@@ -0,0 +1,19 @@
1
+ import assert from 'minimalistic-assert'
2
+ import * as nacl from 'tweetnacl'
3
+
4
+ import { isTransactionMessage } from './validation'
5
+
6
+ export const signMessageNew = async ({ privateKey, message }) => {
7
+ const { rawMessage } = message
8
+ assert(Buffer.isBuffer(rawMessage), `rawMessage must be buffer`)
9
+ assert(
10
+ !isTransactionMessage(rawMessage),
11
+ `malicious message signing request, was a transaction message`
12
+ )
13
+ assert(
14
+ Buffer.isBuffer(privateKey) || privateKey instanceof Uint8Array,
15
+ `privateKey is not a Buffer or Uint8Array`
16
+ )
17
+
18
+ return Buffer.from(nacl.sign.detached(rawMessage, privateKey))
19
+ }
@@ -1,10 +1,10 @@
1
- import assert from 'assert'
2
- import nacl from 'tweetnacl'
3
- import bs58 from 'bs58'
4
-
5
- import { Message } from '../vendor/message'
6
- import { getKeyPairFromPrivateKey } from '../keypair'
1
+ import { Message } from '@exodus/solana-web3.js'
7
2
 
3
+ /**
4
+ * Checks if its contains a legacy message.
5
+ * @param {Uint8Array} data
6
+ * @returns {boolean}
7
+ */
8
8
  function isLegacyMessage(data) {
9
9
  try {
10
10
  const message = Message.from(data)
@@ -15,6 +15,11 @@ function isLegacyMessage(data) {
15
15
  }
16
16
  }
17
17
 
18
+ /**
19
+ * Checks if its contains a versioned message.
20
+ * @param {Uint8Array} data
21
+ * @returns {boolean}
22
+ */
18
23
  function isVersionedMessage(data) {
19
24
  if (data.length > 1) {
20
25
  // We deploy a heuristic to detect transaction messages.
@@ -27,18 +32,12 @@ function isVersionedMessage(data) {
27
32
  return false
28
33
  }
29
34
 
35
+ /**
36
+ * Check whether a message contains a transaction message.
37
+ * @param {Uint8Array} data
38
+ * @returns {boolean}
39
+ */
30
40
  export function isTransactionMessage(data) {
31
41
  const messageBuffer = Buffer.from(data)
32
42
  return isLegacyMessage(messageBuffer) || isVersionedMessage(messageBuffer)
33
43
  }
34
-
35
- export default function signMessage({ message, privateKey }) {
36
- const { secretKey } = getKeyPairFromPrivateKey(privateKey)
37
- const messageBuffer = bs58.decode(message)
38
- assert(
39
- !isTransactionMessage(messageBuffer),
40
- 'attempted to sign transaction using message signing'
41
- )
42
- const signature = nacl.sign.detached(messageBuffer, secretKey)
43
- return bs58.encode(signature)
44
- }
package/src/tx/index.js CHANGED
@@ -8,4 +8,3 @@ export * from './build-raw-transaction'
8
8
  export * from './sign-hardware'
9
9
  export * from './prepare-for-signing'
10
10
  export { transactionToBase58 } from './common'
11
- export { default as signMessage } from './sign-message'