@kaiachain/viem-ext
Version:
viem extension for kaia blockchain
32 lines (31 loc) • 1.11 kB
JavaScript
import { getKaikasTxType, getRpcTxObject, isKlaytnTxType, } from '@kaiachain/js-ext-core';
import { serializeTransactionKaia } from '../serializer.js';
import { getTransactionRequestForSigning } from '../utils.js';
export const signTransaction = async (client, senderTxHashRLP) => {
const txObj = await getTransactionRequestForSigning(client, senderTxHashRLP);
if (client?.account?.signTransaction) {
return client.account.signTransaction(txObj, {
serializer: serializeTransactionKaia,
});
}
// kaia tx type
if (isKlaytnTxType(txObj.type)) {
const response = await client.request({
method: 'klay_signTransaction',
params: [
{ ...getRpcTxObject(txObj), type: getKaikasTxType(txObj.type) },
],
}, { retryCount: 0 });
if (typeof response === 'object') {
return response['rawTransaction'];
}
return response;
}
// legacy tx
return client.request({
method: 'eth_signTransaction',
params: [txObj],
}, {
retryCount: 0,
});
};