From c0472c8f4250ccbdd91c79f423d0ea4f6ae0fc93 Mon Sep 17 00:00:00 2001 From: sirius Date: Wed, 20 Mar 2024 16:15:12 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20add=20EthGetTransactionH?= =?UTF-8?q?ashByCid=20to=20ChainFilecoinRPC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ✅ Closes: #10 --- src/chain/repo/rpc/index.ts | 17 +++++++++++++++++ test/chain/repo/rpc.test.ts | 13 +++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/chain/repo/rpc/index.ts b/src/chain/repo/rpc/index.ts index ee75dd9..c768e78 100644 --- a/src/chain/repo/rpc/index.ts +++ b/src/chain/repo/rpc/index.ts @@ -39,6 +39,7 @@ interface ChainFilecoinOriginRPC { ): Promise> ChainGetBlockMessages(...params: any[]): Promise> StateReplay(...params: any[]): Promise> + EthGetTransactionHashByCid(cid: CidProperty): Promise> } /** @@ -49,6 +50,7 @@ interface ChainFilecoinOriginRPC { "ChainGetTipSetByHeight", "ChainGetBlockMessages", "StateReplay", + "EthGetTransactionHashByCid", ]) class ChainFilecoinOriginRPC extends FilecoinRPCEngine {} @@ -131,4 +133,19 @@ export class ChainFilecoinRPC extends ChainFilecoinOriginRPC { } return res } + + /** + * Retrieves the Ethereum transaction hash by CID (Content Identifier). + * @param cid The CID (Content Identifier) property. + * @returns {Promise>} A Promise resolving to RPCResponse containing the Ethereum transaction hash. + */ + public async EthGetTransactionHashByCid( + cid: CidProperty + ): Promise> { + const res: any = await super.EthGetTransactionHashByCid(cid) + if (res.ok && res.data) { + res.data = String(res.data) + } + return res + } } diff --git a/test/chain/repo/rpc.test.ts b/test/chain/repo/rpc.test.ts index 60f01ee..496ee43 100644 --- a/test/chain/repo/rpc.test.ts +++ b/test/chain/repo/rpc.test.ts @@ -26,6 +26,7 @@ import { expect } from "chai" import { Tipset } from "../../../src/basic/tipset/types" import { Message } from "../../../src/basic/message/types" import { BlockMessages } from "../../../src/basic/block/types" +import { Cid, CidProperty } from "../../../src/basic/cid/types" dotenv.config() describe("RPC", () => { @@ -91,4 +92,16 @@ describe("RPC", () => { } }) }) + describe.skip("EthGetTransactionHashByCid", () => { + it("should ok", async function (this: Context) { + this.timeout(10000) + const res = await rpc.EthGetTransactionHashByCid({ + "/": "bafy2bzacebwksgenvlvw2bwylwmrnprvqenlmdzpylb63iso6jsygi2sbxolg", + } as CidProperty) + expect(res.ok).to.be.equal(true) + expect(res.data).to.be.equal( + "0xc24902d9e3f96872d70b551ff73b8fa22b5e59e922eaf944b64f6cab8a388bf1" + ) + }) + }) })