@hyperlane-xyz/sdk
Version:
The official SDK for the Hyperlane Network
36 lines • 1.26 kB
JavaScript
import { RadixSigner } from '@hyperlane-xyz/radix-sdk/runtime';
export class RadixMultiProtocolSignerAdapter {
chainName;
signer;
constructor(chainName, signer) {
this.chainName = chainName;
this.signer = signer;
}
static async init(chainName, privateKey, multiProtocolProvider) {
const metadata = multiProtocolProvider.getChainMetadata(chainName);
const signer = await RadixSigner.connectWithSigner([], privateKey, {
metadata,
});
return new RadixMultiProtocolSignerAdapter(chainName, signer);
}
async address() {
return this.signer.getSignerAddress();
}
async sendAndConfirmTransaction(tx, _options) {
try {
await this.signer.estimateTransactionFee({
transaction: tx.transaction,
estimatedGasPrice: '',
senderAddress: '',
});
const { transactionHash } = await this.signer.sendAndConfirmTransaction(tx.transaction);
return transactionHash;
}
catch (err) {
throw new Error(`Transaction failed on chain ${this.chainName}`, {
cause: err,
});
}
}
}
//# sourceMappingURL=radix-toolkit.js.map