Skip to content

Commit

Permalink
ts: verbose error for missing ANCHOR_WALLET in NodeWallet.local() (
Browse files Browse the repository at this point in the history
  • Loading branch information
callensm authored Jun 10, 2022
1 parent 8f7572e commit 179711b
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 1 deletion.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ com/project-serum/anchor/pull/1841)).
* ts: Add `program.coder.types` for encoding/decoding user-defined types ([#1931](https://github.com/project-serum/anchor/pull/1931)).
* client: Add send_with_spinner_and_config function to RequestBuilder ([#1926](https://github.com/project-serum/anchor/pull/1926)).
* ts: Implement a coder for SPL associated token program ([#1939](https://github.com/project-serum/anchor/pull/1939)).
* ts: verbose error for missing `ANCHOR_WALLET` variable when using `NodeWallet.local()` ([#1958](https://github.com/project-serum/anchor/pull/1958)).

### Fixes

Expand Down
10 changes: 9 additions & 1 deletion ts/src/nodewallet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,15 @@ import { Wallet } from "./provider";
export default class NodeWallet implements Wallet {
constructor(readonly payer: Keypair) {}

static local(): NodeWallet {
static local(): NodeWallet | never {
const process = require("process");

if (!process.env.ANCHOR_WALLET || process.env.ANCHOR_WALLET === "") {
throw new Error(
"expected environment variable `ANCHOR_WALLET` is not set."
);
}

const payer = Keypair.fromSecretKey(
Buffer.from(
JSON.parse(
Expand All @@ -19,6 +26,7 @@ export default class NodeWallet implements Wallet {
)
)
);

return new NodeWallet(payer);
}

Expand Down
14 changes: 14 additions & 0 deletions ts/tests/program-common.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import BN from "bn.js";
import bs58 from "bs58";
import { PublicKey } from "@solana/web3.js";

import NodeWallet from "../src/nodewallet";
import { translateAddress } from "../src/program/common";

describe("program/common", () => {
Expand Down Expand Up @@ -53,4 +54,17 @@ describe("program/common", () => {
expect(func).toThrow();
});
});

describe("NodeWallet", () => {
it("should throw an error when ANCHOR_WALLET is unset", () => {
const oldValue = process.env.ANCHOR_WALLET;
delete process.env.ANCHOR_WALLET;

expect(() => NodeWallet.local()).toThrowError(
"expected environment variable `ANCHOR_WALLET` is not set."
);

process.env.ANCHOR_WALLET = oldValue;
});
});
});

0 comments on commit 179711b

Please sign in to comment.