UNPKG

@robertprp/intents-sdk

Version:

Shogun Network Intent-based cross-chain swaps SDK

19 lines 931 B
import BN from 'bn.js'; import { PublicKey } from '@solana/web3.js'; import jsUtilities from 'js-sha3'; export function genSecretHashAndNumber(order) { const tokenOut = new PublicKey(order.tokenOut); const receiver = new PublicKey(order.destinationAddress); const extraTransfers = order.extraTransfers ?? []; const secretNumber = new BN(crypto.getRandomValues(new Uint8Array(8))); const fullArray = [ ...tokenOut.toBuffer(), ...receiver.toBuffer(), ...Buffer.concat(extraTransfers.map((t) => Buffer.concat([new PublicKey(t.token).toBuffer(), new PublicKey(t.receiver).toBuffer()]))), ...secretNumber.toArrayLike(Buffer, 'le', 8), ]; const value = jsUtilities.keccak256(Uint8Array.from(fullArray)); const secretHash = [...Uint8Array.from(Buffer.from(value, 'hex'))]; return { secretHash, secretNumber: secretNumber.toString() }; } //# sourceMappingURL=utils.js.map