-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathens-resolution.test.mjs
More file actions
29 lines (24 loc) · 1.2 KB
/
ens-resolution.test.mjs
File metadata and controls
29 lines (24 loc) · 1.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import test from "node:test";
import assert from "node:assert/strict";
import { createRequire } from "node:module";
import { installMockEns, ensFixtures, ethers } from "../../typescript-sdk/tests/helpers.mjs";
const require = createRequire(import.meta.url);
const { resolveSignerKey } = require("../../typescript-sdk/dist/index.cjs");
installMockEns();
async function resolveSigner(name) {
const provider = new ethers.JsonRpcProvider("http://mock-rpc.local");
const resolver = await provider.getResolver(name);
if (!resolver) throw new Error("Missing cl.receipt.signer");
const signer = (await resolver.getText("cl.receipt.signer"))?.trim();
if (!signer) throw new Error("Missing cl.receipt.signer");
return signer;
}
test("resolves cl.receipt.signer correctly", async () => {
const signer = await resolveSigner("parseagent.eth");
assert.equal(signer, "runtime.commandlayer.eth");
const key = await resolveSignerKey("parseagent.eth", "http://mock-rpc.local");
assert.equal(key.kid, ensFixtures["runtime.commandlayer.eth"]["cl.sig.kid"]);
});
test("fails if cl.receipt.signer missing", async () => {
await assert.rejects(() => resolveSigner("invalidagent.eth"), /Missing cl\.receipt\.signer/);
});