Skip to content

Commit 1e4cb85

Browse files
author
mmrt
committed
fix eth call
1 parent d0eb193 commit 1e4cb85

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

packages/bridge/src/lib/eth.ts

+10-5
Original file line numberDiff line numberDiff line change
@@ -366,11 +366,16 @@ export class EthImpl implements Eth {
366366
const contract = EthImpl.prune0x(call.to);
367367
const callData = EthImpl.prune0x(call.data);
368368
this.logger.debug('Making eth_call on contract %o with gas %d and call data "%s"', contract, gas, callData);
369-
const contractCallResponse = await (new ContractCallQuery()
370-
.setContractId(ContractId.fromEvmAddress(0, 0, contract))
369+
370+
let contractCallQuery = new ContractCallQuery()
371371
.setFunctionParameters(Buffer.from(callData, 'hex'))
372-
.setGas(gas))
373-
.execute(this.clientMain);
372+
.setGas(gas);
373+
if (contract.startsWith('00000000000000')) {
374+
contractCallQuery = contractCallQuery.setContractId(ContractId.fromSolidityAddress(contract));
375+
} else {
376+
contractCallQuery = contractCallQuery.setContractId(ContractId.fromEvmAddress(0, 0, contract));
377+
}
378+
const contractCallResponse = await contractCallQuery.execute(this.clientMain);
374379

375380
// FIXME Is this right? Maybe so?
376381
return '0x' + Buffer.from(contractCallResponse.asBytes()).toString('hex');
@@ -428,6 +433,6 @@ export class EthImpl implements Eth {
428433
* @private
429434
*/
430435
private static toAccountId(ethAddress:string) {
431-
return AccountId.fromEvmAddress(0, 0, EthImpl.prune0x(ethAddress));
436+
return new AccountId(0, 0, 0, EthImpl.prune0x(ethAddress));
432437
}
433438
}

0 commit comments

Comments
 (0)