From 28bd34a25d50824a070aaf33696a01ec64eb7cee Mon Sep 17 00:00:00 2001 From: Mike Date: Mon, 31 Oct 2022 16:12:15 +0200 Subject: [PATCH 1/3] signMessageBytes for ethereum plugin --- packages/js/plugins/ethereum/src/index.ts | 8 ++++++++ packages/js/plugins/ethereum/src/schema.graphql | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/packages/js/plugins/ethereum/src/index.ts b/packages/js/plugins/ethereum/src/index.ts index a6f95bb920..76eb2f7a79 100644 --- a/packages/js/plugins/ethereum/src/index.ts +++ b/packages/js/plugins/ethereum/src/index.ts @@ -29,6 +29,7 @@ import { Args_sendTransaction, Args_sendTransactionAndWait, Args_signMessage, + Args_signMessageBytes, TxResponse, BigInt, StaticTxResult, @@ -397,6 +398,13 @@ export class EthereumPlugin extends Module { return await connection.getSigner().signMessage(args.message); } + public async signMessageBytes(args: Args_signMessageBytes, + _client: CoreClient + ): Promise { + const connection = await this._getConnection(args.connection); + return await connection.getSigner().signMessage(args.bytes); + } + public async sendRPC( args: Args_sendRPC, _client: CoreClient diff --git a/packages/js/plugins/ethereum/src/schema.graphql b/packages/js/plugins/ethereum/src/schema.graphql index 82022e7886..9eef54d397 100644 --- a/packages/js/plugins/ethereum/src/schema.graphql +++ b/packages/js/plugins/ethereum/src/schema.graphql @@ -244,6 +244,11 @@ type Module { connection: Connection ): String! + signMessageBytes( + bytes: Bytes! + connection: Connection + ): String! + sendRPC( method: String! params: [String!]! From 32f8bd735ade61a3165cf7a77e8bece95a548c0f Mon Sep 17 00:00:00 2001 From: dOrgJelli Date: Wed, 2 Nov 2022 12:28:59 -0700 Subject: [PATCH 2/3] chore: add signMessageBytes to tests --- .../plugins/ethereum/src/__tests__/e2e.spec.ts | 16 ++++++++++++++++ .../src/__tests__/integration/src/index.ts | 10 ++++++++++ .../src/__tests__/integration/src/schema.graphql | 5 +++++ 3 files changed, 31 insertions(+) diff --git a/packages/js/plugins/ethereum/src/__tests__/e2e.spec.ts b/packages/js/plugins/ethereum/src/__tests__/e2e.spec.ts index 92e0820ec0..cea0bb531a 100644 --- a/packages/js/plugins/ethereum/src/__tests__/e2e.spec.ts +++ b/packages/js/plugins/ethereum/src/__tests__/e2e.spec.ts @@ -1049,6 +1049,22 @@ describe("Ethereum Plugin", () => { ); }); + it("signMessageBytes", async () => { + const encoder = new TextEncoder(); + const response = await client.invoke({ + uri, + method: "signMessageBytes", + args: { + bytes: encoder.encode("Hello World") + } + }); + + if (!response.ok) fail(response.error); + expect(response.value).toBe( + "0xa4708243bf782c6769ed04d83e7192dbcf4fc131aa54fde9d889d8633ae39dab03d7babd2392982dff6bc20177f7d887e27e50848c851320ee89c6c63d18ca761c" + ); + }); + it("sendRPC", async () => { const res = await client.invoke({ uri, diff --git a/packages/js/plugins/ethereum/src/__tests__/integration/src/index.ts b/packages/js/plugins/ethereum/src/__tests__/integration/src/index.ts index 9e7fec5f01..d9192369a5 100644 --- a/packages/js/plugins/ethereum/src/__tests__/integration/src/index.ts +++ b/packages/js/plugins/ethereum/src/__tests__/integration/src/index.ts @@ -32,6 +32,7 @@ import { Args_sendTransaction, Args_sendTransactionAndWait, Args_signMessage, + Args_signMessageBytes, Args_requestAccounts, } from "./wrap"; import { BigInt } from "@polywrap/wasm-as"; @@ -294,6 +295,15 @@ export function signMessage( }).unwrap(); } +export function signMessageBytes( + args: Args_signMessageBytes +): string { + return Ethereum_Module.signMessageBytes({ + bytes: args.bytes, + connection: args.connection + }).unwrap(); +} + export function sendRPC( args: Args_sendRPC ): string | null { diff --git a/packages/js/plugins/ethereum/src/__tests__/integration/src/schema.graphql b/packages/js/plugins/ethereum/src/__tests__/integration/src/schema.graphql index 71c62f085c..897ae98bd3 100644 --- a/packages/js/plugins/ethereum/src/__tests__/integration/src/schema.graphql +++ b/packages/js/plugins/ethereum/src/__tests__/integration/src/schema.graphql @@ -151,6 +151,11 @@ type Module { connection: Ethereum_Connection ): String! + signMessageBytes( + bytes: Bytes! + connection: Ethereum_Connection + ): String! + sendRPC( method: String! params: [String!]! From 56936fe92fd141f55138e4acde05b6a624120aec Mon Sep 17 00:00:00 2001 From: dOrgJelli Date: Wed, 2 Nov 2022 12:31:34 -0700 Subject: [PATCH 3/3] chore: lint fix --- packages/js/plugins/ethereum/src/index.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/js/plugins/ethereum/src/index.ts b/packages/js/plugins/ethereum/src/index.ts index 76eb2f7a79..46e731521a 100644 --- a/packages/js/plugins/ethereum/src/index.ts +++ b/packages/js/plugins/ethereum/src/index.ts @@ -398,9 +398,10 @@ export class EthereumPlugin extends Module { return await connection.getSigner().signMessage(args.message); } - public async signMessageBytes(args: Args_signMessageBytes, + public async signMessageBytes( + args: Args_signMessageBytes, _client: CoreClient - ): Promise { + ): Promise { const connection = await this._getConnection(args.connection); return await connection.getSigner().signMessage(args.bytes); }