diff --git a/src/package-lock.json b/src/package-lock.json index f08241bf..6f9dbb6e 100644 --- a/src/package-lock.json +++ b/src/package-lock.json @@ -11,7 +11,6 @@ "dependencies": { "@metamask/eth-sig-util": "^4.0.1", "@solana/web3.js": "^1.5.0", - "bs58": "^4.0.1", "buffer": "^5.6.0", "events": "^3.2.0", "isutf8": "^3.1.1" diff --git a/src/package.json b/src/package.json index 87e84f59..b2bf8c20 100644 --- a/src/package.json +++ b/src/package.json @@ -27,7 +27,6 @@ "dependencies": { "@metamask/eth-sig-util": "^4.0.1", "@solana/web3.js": "^1.5.0", - "bs58": "^4.0.1", "buffer": "^5.6.0", "events": "^3.2.0", "isutf8": "^3.1.1" diff --git a/src/solana_provider.js b/src/solana_provider.js index 6617af00..b2406b1f 100644 --- a/src/solana_provider.js +++ b/src/solana_provider.js @@ -8,9 +8,9 @@ import BaseProvider from "./base_provider"; import * as Web3 from "@solana/web3.js"; -import bs58 from "bs58"; import Utils from "./utils"; import ProviderRpcError from "./error"; +import { Buffer } from "buffer"; const { PublicKey, Connection } = Web3; @@ -67,7 +67,7 @@ class TrustSolanaWeb3Provider extends BaseProvider { mapSignedTransaction(tx, signatureEncoded) { const version = typeof tx.version !== "number" ? "legacy" : tx.version; - const signature = bs58.decode(signatureEncoded); + const signature = this.decodeFromBase64(signatureEncoded); tx.addSignature(this.publicKey, signature); @@ -86,7 +86,7 @@ class TrustSolanaWeb3Provider extends BaseProvider { const data = JSON.stringify(tx); const version = typeof tx.version !== "number" ? "legacy" : tx.version; - const raw = bs58.encode( + const raw = this.encodeToBase64( version === "legacy" ? tx.serializeMessage() : version === 0 ? tx.message.serialize() : tx.serialize() ); @@ -109,7 +109,7 @@ class TrustSolanaWeb3Provider extends BaseProvider { const data = JSON.stringify(tx); const version = typeof tx.version !== "number" ? "legacy" : tx.version; - const raw = bs58.encode( + const raw = this.encodeToBase64( version === "legacy" ? tx.serializeMessage() : version === 0 ? tx.message.serialize() : tx.serialize() ); @@ -181,6 +181,14 @@ class TrustSolanaWeb3Provider extends BaseProvider { } }); } + + encodeToBase64(data) { + return Buffer.from(data).toString("base64"); + } + + decodeFromBase64(encodedData) { + return Buffer.from(encodedData, "base64").toString(); + } } module.exports = TrustSolanaWeb3Provider; diff --git a/src/tests/test.js b/src/tests/test.js index 74759c2b..e710c4fc 100644 --- a/src/tests/test.js +++ b/src/tests/test.js @@ -210,6 +210,18 @@ describe("TrustWeb3Provider constructor tests", () => { }); }); + test("base64test", () => { + const provider = new trustwallet.SolanaProvider({ + solana: { + cluster: "mainnet-beta", + isPhantom: false, + }, + isDebug: true, + }); + expect(provider.encodeToBase64("11111")).toEqual("MTExMTE="); + expect(provider.decodeFromBase64("MTExMTE=")).toEqual("11111"); + }); + test("test batched sendAsync", (done) => { const provider = new trustwallet.Provider({ ethereum: bsc }); const web3 = new Web3(provider);