@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
66 lines (60 loc) • 2.04 kB
JavaScript
import { LocalWallet } from '../../local-wallet/dist/thirdweb-dev-wallets-evm-wallets-local-wallet.esm.js';
import '../../../../dist/classPrivateMethodGet-71fe23d8.esm.js';
import '../../../../dist/classPrivateFieldSet-e25e1cec.esm.js';
import '../../../../dist/defineProperty-e24c82ea.esm.js';
import '../../../../dist/walletIds-18a8e969.esm.js';
import '../../../../dist/base-b9012a78.esm.js';
import '@thirdweb-dev/chains';
import '../../abstract/dist/thirdweb-dev-wallets-evm-wallets-abstract.esm.js';
import 'ethers';
import 'eventemitter3';
import '@thirdweb-dev/sdk';
/* eslint-disable @typescript-eslint/no-var-requires */
class AsyncJsonFileStorage {
constructor(filePath) {
this.filePath = require("node:path").resolve(filePath);
}
async getItem(key) {
const content = await require("node:fs/promises").readFile(this.filePath, {
encoding: "utf-8"
});
if (!content) {
return null;
}
const data = JSON.parse(content);
return data[key];
}
async setItem(key, value) {
// if the file doesn't exist, create it
try {
const content = await require("node:fs/promises").readFile(this.filePath, {
encoding: "utf-8"
});
const data = content ? JSON.parse(content) : {};
data[key] = value;
await require("node:fs/promises").writeFile(this.filePath, JSON.stringify(data));
} catch {
await require("node:fs/promises").writeFile(this.filePath, JSON.stringify({
[key]: value
}));
}
}
async removeItem(key) {
const content = await require("node:fs/promises").readFile(this.filePath, {
encoding: "utf-8"
});
const data = JSON.parse(content);
delete data[key];
await require("node:fs/promises").writeFile(this.filePath, JSON.stringify(data));
}
}
class LocalWalletNode extends LocalWallet {
constructor(options) {
const storage = new AsyncJsonFileStorage(options?.storageJsonFile || "./wallet.json");
super({
storage,
...options
});
}
}
export { LocalWalletNode };