Skip to content

Commit 0721188

Browse files
author
mmrt
committed
changes to get to contract revert error
1 parent 71e97cc commit 0721188

File tree

4 files changed

+78
-13
lines changed

4 files changed

+78
-13
lines changed

packages/bridge/package.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
"compile": "../../node_modules/typescript/bin/tsc -b tsconfig.json"
1818
},
1919
"dependencies": {
20+
"@hashgraph/sdk": "file:../../../hedera-sdk-js",
2021
"buffer": "^6.0.3",
21-
"@hashgraph/sdk": "file:../../../hedera-sdk-js"
22+
"js-cache": "^1.0.3",
23+
"rlp": "^3.0.0"
2224
}
2325
}

packages/bridge/src/index.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ export interface Eth {
5353
// hashrate();
5454
// mining();
5555
// protocolVersion();
56-
sendRawTransaction(transaction : string) : string;
56+
sendRawTransaction(transaction : string) : Promise<string>;
5757
// sendTransaction();
5858
// sign();
5959
// signTransaction();

packages/bridge/src/lib/eth.ts

+66-10
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
import {Eth} from '../index';
2-
import {Buffer} from 'buffer';
3-
import {ContractExecuteTransaction} from "@hashgraph/sdk";
2+
import {
3+
ContractExecuteTransaction,
4+
Client, AccountId
5+
} from "@hashgraph/sdk";
6+
var cache = require('js-cache');
47

58
export class EthImpl implements Eth {
9+
610
// FIXME
711
feeHistory() {
812
const blockNum = "0x" + Date.now()
@@ -121,17 +125,69 @@ export class EthImpl implements Eth {
121125
return 0x1;
122126
}
123127

124-
sendRawTransaction(transaction: string): string {
125-
if (transaction.startsWith("0x")) {
126-
transaction = transaction.substring(2);
128+
async sendRawTransaction(transaction: string): Promise<string> {
129+
let client;
130+
131+
try {
132+
client = Client.fromConfig(
133+
{
134+
network:
135+
{
136+
'34.70.108.154:50211': new AccountId(3)
137+
},
138+
operator: {
139+
accountId: '0.0.2',
140+
privateKey: '302e020100300506032b65700422042091132178e72057a1d7528025956fe39b0b847f200ab59b2fdd367017f3087137'}
141+
}
142+
);
143+
} catch (error) {
144+
console.log(error);
145+
throw new Error(
146+
"Environment variables HEDERA_NETWORK, OPERATOR_ID, and OPERATOR_KEY are required."
147+
);
127148
}
128149

129-
var data = Buffer.from(transaction, 'hex');
130150

131-
var txRequest : ContractExecuteTransaction =
132-
new ContractExecuteTransaction()
133-
.populateFromForeignTransaction(data);
151+
var txRequest : ContractExecuteTransaction | null = null;
152+
153+
txRequest = new ContractExecuteTransaction();
154+
155+
txRequest = txRequest.populateFromForeignTransaction(transaction);
156+
157+
console.log(txRequest);
158+
159+
console.log("ProtoBuf");
160+
161+
var contractExecuteResponse = null;
162+
163+
if (client instanceof Client) {
164+
try {
165+
contractExecuteResponse = await txRequest.execute(client);
166+
} catch (e) {
167+
console.log(e);
168+
throw e;
169+
}
170+
} else {
171+
throw new Error(
172+
"txRequest was not a ContractExecute Transaction or the Client was invalid"
173+
);
174+
}
175+
cache.set(contractExecuteResponse.transactionHash, contractExecuteResponse.transactionId);
176+
177+
console.log(contractExecuteResponse);
178+
179+
try {
180+
const contractReceipt = await contractExecuteResponse.getReceipt(client);
181+
182+
console.log(contractReceipt);
183+
184+
const contractRecord = await contractExecuteResponse.getRecord(client);
185+
186+
console.log(contractRecord);
187+
} catch (e) {
188+
console.log(e);
189+
}
134190

135-
return data.toString();
191+
return Buffer.from(contractExecuteResponse.transactionHash).toString('hex');
136192
}
137193
}

packages/server/src/server.ts

+8-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,14 @@ rpc.use('eth_getBlockByNumber', async (params:any) => { return bridge.eth().getB
1717
rpc.use('eth_getBlockByHash', async (params:any) => { return bridge.eth().getBlockByHash(params?.[0]) });
1818
rpc.use('eth_gasPrice', async () => { return toHexString(bridge.eth().gasPrice()) });
1919
rpc.use('eth_getTransactionCount', async () => { return toHexString(bridge.eth().getTransactionCount()) });
20-
// rpc.use('eth_sendRawTransaction', async () => { return bridge.eth().sendRawTransaction() });
20+
rpc.use('eth_sendRawTransaction', async (params:any) => {
21+
try {
22+
return bridge.eth().sendRawTransaction(params?.[0]);
23+
} catch (e) {
24+
console.log(e);
25+
throw e;
26+
}
27+
});
2128
// rpc.use('eth_getTransactionReceipt', async () => { return bridge.eth().getTransactionReceipt() });
2229
app.use(rpc.app());
2330

0 commit comments

Comments
 (0)