Skip to content

Commit

Permalink
Upgrade eth-sig-util to latest (#278)
Browse files Browse the repository at this point in the history
* upgrade eth-sig-util

* fill missing jsonrpc field if needed
  • Loading branch information
hewigovens authored May 16, 2022
1 parent 4c309d7 commit 1d0f387
Show file tree
Hide file tree
Showing 4 changed files with 92 additions and 9,614 deletions.
4 changes: 2 additions & 2 deletions dist/trust-min.js
Git LFS file not shown
27 changes: 20 additions & 7 deletions src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import Utils from "./utils";
import IdMapping from "./id_mapping";
import { EventEmitter } from "events";
import isUtf8 from "isutf8";
import { TypedDataUtils } from "eth-sig-util";
import { TypedDataUtils, SignTypedDataVersion } from "@metamask/eth-sig-util";

class TrustWeb3Provider extends EventEmitter {
constructor(config) {
Expand All @@ -24,6 +24,7 @@ class TrustWeb3Provider extends EventEmitter {
this.callbacks = new Map();
this.wrapResults = new Map();
this.isTrust = true;
this.isMetaMask = false;
this.isDebug = !!config.isDebug;

this.emitConnect(this.chainId);
Expand Down Expand Up @@ -72,7 +73,7 @@ class TrustWeb3Provider extends EventEmitter {
*/
enable() {
console.log(
"enable() is deprecated, please use window.ethereum.request({method: \"eth_requestAccounts\"}) instead."
'enable() is deprecated, please use window.ethereum.request({method: "eth_requestAccounts"}) instead.'
);
return this.request({ method: "eth_requestAccounts", params: [] });
}
Expand Down Expand Up @@ -139,6 +140,7 @@ class TrustWeb3Provider extends EventEmitter {
if (this.isDebug) {
console.log(`==> _request payload ${JSON.stringify(payload)}`);
}
this.fillJsonRpcVersion(payload);
return new Promise((resolve, reject) => {
if (!payload.id) {
payload.id = Utils.genId();
Expand Down Expand Up @@ -168,10 +170,10 @@ class TrustWeb3Provider extends EventEmitter {
case "personal_ecRecover":
return this.personal_ecRecover(payload);
case "eth_signTypedData_v3":
return this.eth_signTypedData(payload, false);
return this.eth_signTypedData(payload, SignTypedDataVersion.V3);
case "eth_signTypedData":
case "eth_signTypedData_v4":
return this.eth_signTypedData(payload, true);
return this.eth_signTypedData(payload, SignTypedDataVersion.V4);
case "eth_sendTransaction":
return this.eth_sendTransaction(payload);
case "eth_requestAccounts":
Expand Down Expand Up @@ -208,6 +210,12 @@ class TrustWeb3Provider extends EventEmitter {
});
}

fillJsonRpcVersion(payload) {
if (payload.jsonrpc === undefined) {
payload.jsonrpc = "2.0";
}
}

emitConnect(chainId) {
this.emit("connect", { chainId: chainId });
}
Expand Down Expand Up @@ -262,9 +270,9 @@ class TrustWeb3Provider extends EventEmitter {
});
}

eth_signTypedData(payload, useV4) {
eth_signTypedData(payload, version) {
const message = JSON.parse(payload.params[1]);
const hash = TypedDataUtils.sign(message, useV4);
const hash = TypedDataUtils.eip712Hash(message, version);
this.postMessage("signTypedMessage", payload.id, {
data: "0x" + hash.toString("hex"),
raw: payload.params[1],
Expand Down Expand Up @@ -327,7 +335,12 @@ class TrustWeb3Provider extends EventEmitter {
let callback = this.callbacks.get(id);
let wrapResult = this.wrapResults.get(id);
let data = { jsonrpc: "2.0", id: originId };
if (result !== null && typeof result === "object" && result.jsonrpc && result.result) {
if (
result !== null &&
typeof result === "object" &&
result.jsonrpc &&
result.result
) {
data.result = result.result;
} else {
data.result = result;
Expand Down
Loading

0 comments on commit 1d0f387

Please sign in to comment.