@exodus/solana-lib 3.1.0 → 3.2.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": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "Exodus internal Solana low-level library",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"files": [
|
|
@@ -40,5 +40,5 @@
|
|
|
40
40
|
"@solana/web3.js": "^1.90.0",
|
|
41
41
|
"bip39": "^2.6.0"
|
|
42
42
|
},
|
|
43
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "7fa370d0fdd120110c54d56e2b528a5464e6f9e5"
|
|
44
44
|
}
|
package/src/msg/index.js
CHANGED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import assert from 'minimalistic-assert'
|
|
2
|
+
|
|
3
|
+
import { assertValidMessage } from './validation'
|
|
4
|
+
|
|
5
|
+
const signMessageWithSigner = async ({ signer, message }) => {
|
|
6
|
+
const { rawMessage } = assertValidMessage(message)
|
|
7
|
+
|
|
8
|
+
assert(
|
|
9
|
+
typeof signer === 'object' && typeof signer.sign === 'function',
|
|
10
|
+
'expected signer with a sign method'
|
|
11
|
+
)
|
|
12
|
+
|
|
13
|
+
return signer.sign({ data: rawMessage })
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export default signMessageWithSigner
|
package/src/msg/sign-message.js
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import assert from 'minimalistic-assert'
|
|
2
2
|
import * as nacl from 'tweetnacl'
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import { assertValidMessage } from './validation'
|
|
5
5
|
|
|
6
6
|
export const signMessageNew = async ({ privateKey, message }) => {
|
|
7
|
-
const { rawMessage } = message
|
|
8
|
-
|
|
9
|
-
assert(
|
|
10
|
-
!isTransactionMessage(rawMessage),
|
|
11
|
-
`malicious message signing request, was a transaction message`
|
|
12
|
-
)
|
|
7
|
+
const { rawMessage } = assertValidMessage(message)
|
|
8
|
+
|
|
13
9
|
assert(
|
|
14
10
|
Buffer.isBuffer(privateKey) || privateKey instanceof Uint8Array,
|
|
15
11
|
`privateKey is not a Buffer or Uint8Array`
|
package/src/msg/validation.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Message } from '@exodus/solana-web3.js'
|
|
2
|
+
import assert from 'minimalistic-assert'
|
|
2
3
|
|
|
3
4
|
/**
|
|
4
5
|
* Checks if its contains a legacy message.
|
|
@@ -41,3 +42,18 @@ export function isTransactionMessage(data) {
|
|
|
41
42
|
const messageBuffer = Buffer.from(data)
|
|
42
43
|
return isLegacyMessage(messageBuffer) || isVersionedMessage(messageBuffer)
|
|
43
44
|
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Asserts that the message provided to the sign message functions has the expected shape
|
|
48
|
+
* @param message
|
|
49
|
+
*/
|
|
50
|
+
export function assertValidMessage(message) {
|
|
51
|
+
const { rawMessage } = message
|
|
52
|
+
assert(Buffer.isBuffer(rawMessage), `rawMessage must be buffer`)
|
|
53
|
+
assert(
|
|
54
|
+
!isTransactionMessage(rawMessage),
|
|
55
|
+
`malicious message signing request, was a transaction message`
|
|
56
|
+
)
|
|
57
|
+
|
|
58
|
+
return message
|
|
59
|
+
}
|