Skip to content

Commit

Permalink
Fix: Node.js polyfills; Solana verification on sign; Use more UInt8Ar…
Browse files Browse the repository at this point in the history
…ray instead of Buffer; more peerDependencies to fix bundling
  • Loading branch information
MHHukiewitz committed Mar 27, 2024
1 parent 102e94d commit de9a59c
Show file tree
Hide file tree
Showing 23 changed files with 132 additions and 84 deletions.
32 changes: 12 additions & 20 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 4 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,5 +90,8 @@
"packages/superfluid",
"packages/client",
"packages/dns"
]
],
"dependencies": {
"@rollup/plugin-inject": "^5.0.5"
}
}
2 changes: 1 addition & 1 deletion packages/account/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"publishConfig": {
"access": "public"
},
"dependencies": {
"peerDependencies": {
"@aleph-sdk/core": "^1.0.0"
},
"scripts": {
Expand Down
8 changes: 5 additions & 3 deletions packages/avalanche/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,16 @@
"@types/sha.js": "^2.4.0"
},
"dependencies": {
"@aleph-sdk/account": "^1.0.0",
"@aleph-sdk/core": "^1.0.0",
"@aleph-sdk/evm": "^1.0.0",
"avalanche": "^3.15.3",
"eciesjs": "^0.4.6",
"ethers": "^5.7.2",
"sha.js": "^2.4.11"
},
"peerDependencies": {
"@aleph-sdk/account": "^1.0.0",
"@aleph-sdk/core": "^1.0.0",
"@aleph-sdk/evm": "^1.0.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"rollup": "rollup -c ../../rollup.config.js",
Expand Down
16 changes: 10 additions & 6 deletions packages/avalanche/src/verify.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ import { SignableMessage } from '@aleph-sdk/account'
import { Avalanche, BinTools, Buffer as AvaBuff } from 'avalanche'
import shajs from 'sha.js'

export function digestMessage(message: Buffer): Buffer {
export function digestMessage(message: Uint8Array): Uint8Array {
const msgSize = Buffer.alloc(4)
msgSize.writeUInt32BE(message.length, 0)
const msgStr = message.toString('utf-8')
const msgStr = Buffer.from(message).toString('utf-8')
const msgBuf = Buffer.from(`\x1AAvalanche Signed Message:\n${msgSize}${msgStr}`, 'utf8')

return new shajs.sha256().update(msgBuf).digest()
Expand All @@ -20,20 +20,24 @@ export function digestMessage(message: Buffer): Buffer {
* @param signerPKey Optional, The publicKey associated with the signature to verify. It Needs to be under a hex serialized string.
*/
export async function verifyAvalanche(
message: Buffer | SignableMessage,
message: Uint8Array | SignableMessage,
signature: string,
signerPKey: string,
): Promise<boolean> {
if (!(message instanceof Buffer)) {
message = message.getVerificationBuffer()
if (!(message instanceof Uint8Array)) {
if (typeof message?.getVerificationBuffer === 'function') {
message = message.getVerificationBuffer()
} else {
throw Error(`Cannot sign message: ${message}`)
}
}
const ava = new Avalanche()
const keyPair = ava.XChain().keyChain().makeKey()

const bintools = BinTools.getInstance()
const readableSignature = bintools.cb58Decode(signature)

const digest = await digestMessage(message)
const digest = Buffer.from(await digestMessage(message))
const digestHex = digest.toString('hex')
const digestBuff = AvaBuff.from(digestHex, 'hex')

Expand Down
2 changes: 1 addition & 1 deletion packages/client/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"devDependencies": {
"@types/sha.js": "^2.4.4"
},
"dependencies": {
"peerDependencies": {
"@aleph-sdk/account": "^1.0.0",
"@aleph-sdk/core": "^1.0.0",
"@aleph-sdk/message": "^1.0.0"
Expand Down
6 changes: 4 additions & 2 deletions packages/cosmos/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,13 @@
"access": "public"
},
"dependencies": {
"@aleph-sdk/account": "^1.0.0",
"@aleph-sdk/core": "^1.0.0",
"@cosmjs/amino": "^0.32.2",
"elliptic": "^6.5.4"
},
"peerDependencies": {
"@aleph-sdk/account": "^1.0.0",
"@aleph-sdk/core": "^1.0.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"rollup": "rollup -c ../../rollup.config.js",
Expand Down
13 changes: 10 additions & 3 deletions packages/cosmos/src/verify.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,16 @@ import elliptic from 'elliptic'
* @param message The content of the signature to verify. It can be the result of GetVerificationBuffer() or directly a BaseMessage object.
* @param serializedSignature The signature associated with the first params of this method.
*/
export async function verifyCosmos(message: Buffer | SignableMessage, serializedSignature: string): Promise<boolean> {
if (!(message instanceof Buffer)) {
message = message.getVerificationBuffer()
export async function verifyCosmos(
message: Uint8Array | SignableMessage,
serializedSignature: string,
): Promise<boolean> {
if (!(message instanceof Uint8Array)) {
if (typeof message?.getVerificationBuffer === 'function') {
message = message.getVerificationBuffer()
} else {
throw Error(`Cannot sign message: ${message}`)
}
}

const { signature, pub_key } = JSON.parse(serializedSignature)
Expand Down
8 changes: 5 additions & 3 deletions packages/ethereum-ledger/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,16 @@
"access": "public"
},
"dependencies": {
"@aleph-sdk/account": "^1.0.0",
"@aleph-sdk/core": "^1.0.0",
"@ledgerhq/domain-service": "^1.1.17",
"semver": "^7.3.8"
},
"peerDependencies": {
"@ledgerhq/hw-app-eth": "^6.35.4",
"@ledgerhq/hw-transport": "^6.30.3",
"@ledgerhq/hw-transport-node-hid": "^6.28.3",
"@ledgerhq/hw-transport-webusb": "^6.28.3",
"semver": "^7.3.8"
"@aleph-sdk/account": "^1.0.0",
"@aleph-sdk/core": "^1.0.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
Expand Down
8 changes: 5 additions & 3 deletions packages/ethereum/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,15 @@
"access": "public"
},
"dependencies": {
"@aleph-sdk/account": "^1.0.0",
"@aleph-sdk/core": "^1.0.0",
"@aleph-sdk/evm": "^1.0.0",
"bip39": "^3.1.0",
"eciesjs": "^0.4.6",
"ethers": "^5.7.2"
},
"peerDependencies": {
"@aleph-sdk/account": "^1.0.0",
"@aleph-sdk/core": "^1.0.0",
"@aleph-sdk/evm": "^1.0.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"rollup": "rollup -c ../../rollup.config.js",
Expand Down
6 changes: 4 additions & 2 deletions packages/evm/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,14 @@
"access": "public"
},
"dependencies": {
"@aleph-sdk/account": "^1.0.0",
"@aleph-sdk/core": "^1.0.0",
"@metamask/eth-sig-util": "^7.0.1",
"ethereumjs-util": "^7.1.5",
"ethers": "^5.7.2"
},
"peerDependencies": {
"@aleph-sdk/account": "^1.0.0",
"@aleph-sdk/core": "^1.0.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"rollup": "rollup -c ../../rollup.config.js",
Expand Down
14 changes: 11 additions & 3 deletions packages/evm/src/verify.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,17 @@ import { ethers } from 'ethers'
* @param signature The signature associated with the first params of this method.
* @param signerAddress Optional, The address associated with the signature to verify. The current account address is used by default.
*/
export function verifyEthereum(message: Buffer | SignableMessage, signature: string, signerAddress: string): boolean {
if (!(message instanceof Buffer)) {
message = message.getVerificationBuffer()
export function verifyEthereum(
message: Uint8Array | SignableMessage,
signature: string,
signerAddress: string,
): boolean {
if (!(message instanceof Uint8Array)) {
if (typeof message?.getVerificationBuffer === 'function') {
message = message.getVerificationBuffer()
} else {
throw Error(`Cannot sign message: ${message}`)
}
}

try {
Expand Down
6 changes: 4 additions & 2 deletions packages/message/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,14 @@
"@types/sha.js": "^2.4.4"
},
"dependencies": {
"@aleph-sdk/account": "^1.0.0",
"@aleph-sdk/core": "^1.0.0",
"axios": "^1.5.1",
"form-data": "^4.0.0",
"sha.js": "^2.4.11"
},
"peerDependencies": {
"@aleph-sdk/account": "^1.0.0",
"@aleph-sdk/core": "^1.0.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"rollup": "rollup -c ../../rollup.config.js",
Expand Down
2 changes: 1 addition & 1 deletion packages/message/src/store/impl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ export class StoreMessageClient {
const response = await axios.post(`${this.apiServer}/api/v0/storage/add_file`, form, {
headers: {
Accept: 'application/json',
// 'Content-Type': 'multipart/form-data',
'Content-Type': 'multipart/form-data',
},
socketPath: getSocketPath(),
})
Expand Down
6 changes: 4 additions & 2 deletions packages/nuls2/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@
"@types/sha.js": "^2.4.0"
},
"dependencies": {
"@aleph-sdk/account": "^1.0.0",
"@aleph-sdk/core": "^1.0.0",
"bip32": "^2.0.6",
"bip39": "^3.0.4",
"bs58": "^5.0.0",
Expand All @@ -28,6 +26,10 @@
"secp256k1": "^5.0.0",
"sha.js": "^2.4.11"
},
"peerDependencies": {
"@aleph-sdk/account": "^1.0.0",
"@aleph-sdk/core": "^1.0.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"rollup": "rollup -c ../../rollup.config.js",
Expand Down
Loading

0 comments on commit de9a59c

Please sign in to comment.