From d07efd5bc4abb9728c8fecfa39fd37b52a1fabc3 Mon Sep 17 00:00:00 2001 From: Jackson Mills Date: Fri, 15 Jul 2022 15:54:08 -0700 Subject: [PATCH] Use swap method that works with react-native --- packages/xrpl/src/Wallet/rfc1751.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/xrpl/src/Wallet/rfc1751.ts b/packages/xrpl/src/Wallet/rfc1751.ts index aff57b28..1f368b7e 100644 --- a/packages/xrpl/src/Wallet/rfc1751.ts +++ b/packages/xrpl/src/Wallet/rfc1751.ts @@ -177,10 +177,14 @@ function bufferToArray(buf: Buffer): number[] { * @returns A buffer containing the same data with reversed endianness */ function swap128(buf: Buffer): Buffer { - const result = Buffer.alloc(16) - result.writeBigUInt64LE(buf.readBigUInt64BE(0), 8) - result.writeBigUInt64LE(buf.readBigUInt64BE(8), 0) - return result + // Interprets buffer as an array of (two, in this case) 64-bit numbers and swaps byte order in-place. + const reversedBytes = buf.swap64() + + // Swap the two 64-bit numbers since our buffer is 128 bits. + return Buffer.concat( + [reversedBytes.slice(8, 16), reversedBytes.slice(0, 8)], + 16, + ) } export { rfc1751MnemonicToKey, keyToRFC1751Mnemonic }