@robertprp/intents-sdk
Version:
Shogun Network Intent-based cross-chain swaps SDK
19 lines • 931 B
JavaScript
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