@thirdweb-dev/wallets
Version:
<p align="center"> <br /> <a href="https://thirdweb.com"><img src="https://github.com/thirdweb-dev/js/blob/main/packages/sdk/logo.svg?raw=true" width="200" alt=""/></a> <br /> </p> <h1 align="center">thirdweb Wallet SDK</h1> <p align="center"> <a href="ht
62 lines (59 loc) • 2.01 kB
JavaScript
import { _ as _classPrivateFieldInitSpec, a as _classPrivateFieldSet, b as _classPrivateFieldGet } from '../../../../dist/classPrivateFieldSet-a5db7c83.browser.esm.js';
import { AbstractWallet } from '../../abstract/dist/thirdweb-dev-wallets-evm-wallets-abstract.browser.esm.js';
import '../../../../dist/defineProperty-c8ecdc07.browser.esm.js';
import 'ethers';
import 'eventemitter3';
import '@thirdweb-dev/sdk';
var _signer = /*#__PURE__*/new WeakMap();
var _options = /*#__PURE__*/new WeakMap();
/**
* Create a wallet instance using a private key stored in AWS KMS.
*
* @example
* ```javascript
* import { ThirdwebSDK } from "@thirdweb-dev/sdk"
* import { AwsKmsWallet } from "@thirdweb-dev/sdk/evm/wallets"
*
* const wallet = new AwsKmsWallet({
* region: "us-east-1",
* accessKeyId: process.env.AWS_ACCESS_KEY_ID,
* secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
* sessionToken: process.env.AWS_SESSION_TOKEN,
* keyId: process.env.AWS_KEY_ID,
* });
*
* const sdk = await ThirdwebSDK.fromWallet(wallet, "mainnet");
* ```
*/
class AwsKmsWallet extends AbstractWallet {
constructor(options) {
super();
_classPrivateFieldInitSpec(this, _signer, {
writable: true,
value: void 0
});
_classPrivateFieldInitSpec(this, _options, {
writable: true,
value: void 0
});
_classPrivateFieldSet(this, _options, options);
}
async getSigner() {
if (!_classPrivateFieldGet(this, _signer)) {
_classPrivateFieldSet(this, _signer, new Promise(async (resolve, reject) => {
try {
const {
AwsKmsSigner
} = await import('ethers-aws-kms-signer');
resolve(new AwsKmsSigner(_classPrivateFieldGet(this, _options)));
} catch (err) {
// remove the cached promise so we can try again
_classPrivateFieldSet(this, _signer, undefined);
reject(err);
}
}));
}
return _classPrivateFieldGet(this, _signer);
}
}
export { AwsKmsWallet };