diff --git a/JUSTFILE b/JUSTFILE index 957d130..1209903 100644 --- a/JUSTFILE +++ b/JUSTFILE @@ -7,6 +7,9 @@ dev: mprocs: ./scripts/mprocs-nix.sh dev-fed mprocs-new.yaml +test-ts: + bun run wrappers/fedimint-ts/test.ts + alias b := build alias c := check alias t := test diff --git a/wrappers/fedimint-ts/test.ts b/wrappers/fedimint-ts/test.ts index 8179038..52ef988 100644 --- a/wrappers/fedimint-ts/test.ts +++ b/wrappers/fedimint-ts/test.ts @@ -3,16 +3,19 @@ import dotenv from "dotenv"; dotenv.config(); -const logMethodInputAndOutput = (method: string, input: any, output: any) => { +const logMethod = (method: string) => { console.log("--------------------"); - console.log(`Method: ${method}`); + console.log(`\nMethod: ${method}`); +}; + +const logInputAndOutput = (input: any, output: any) => { console.log("Input: ", input); console.log("Output: ", output); console.log("--------------------\n\n"); }; async function buildTestClient() { - const baseUrl = process.env.BASE_URL || "http://localhost:3333"; + const baseUrl = process.env.BASE_URL || "http://127.0.0.1:3333"; const password = process.env.PASSWORD || "password"; const builder = new FedimintClientBuilder(); builder.setBaseUrl(baseUrl).setPassword(password).setActiveFederationId( @@ -28,82 +31,95 @@ async function main() { // ADMIN METHODS // `/v2/admin/config` + logMethod("/v2/admin/config"); let data = await fedimintClient.config(); - logMethodInputAndOutput("/admin/config", {}, data); + logInputAndOutput({}, data); // `/v2/admin/discover-version` + logMethod("/v2/admin/discover-version"); data = await fedimintClient.discoverVersion(); - logMethodInputAndOutput("/admin/discover-version", {}, data); + logInputAndOutput({}, data); // `/v2/admin/federation-ids + logMethod("/v2/admin/federation-ids"); const { federationIds } = await fedimintClient.federationIds(); - logMethodInputAndOutput("/admin/federation-ids", {}, federationIds); + logInputAndOutput({}, federationIds); // `/v2/admin/info` + logMethod("/v2/admin/info"); data = await fedimintClient.info(); - logMethodInputAndOutput("/admin/info", {}, data); + logInputAndOutput({}, data); // `/v2/admin/join` let inviteCode = process.env.INVITE_CODE || "fed11qgqrgvnhwden5te0v9k8q6rp9ekh2arfdeukuet595cr2ttpd3jhq6rzve6zuer9wchxvetyd938gcewvdhk6tcqqysptkuvknc7erjgf4em3zfh90kffqf9srujn6q53d6r056e4apze5cw27h75"; + logMethod("/v2/admin/join"); data = await fedimintClient.join(inviteCode); - logMethodInputAndOutput("/admin/join", { inviteCode }, data); + logInputAndOutput({ inviteCode }, data); // `/v2/admin/list-operations` + logMethod("/v2/admin/list-operations"); data = await fedimintClient.listOperations(10); - logMethodInputAndOutput("/admin/list-operations", { limit: 10 }, data); + logInputAndOutput({ limit: 10 }, data); // LIGHTNING METHODS // `/v2/ln/list-gateways` + logMethod("/v2/ln/list-gateways"); data = await fedimintClient.ln.listGateways(); - logMethodInputAndOutput("/ln/list-gateways", {}, data); + logInputAndOutput({}, data); // `/v2/ln/invoice` + logMethod("/v2/ln/invoice"); let { operationId, invoice } = await fedimintClient.ln.createInvoice( 10000, "test" ); - logMethodInputAndOutput( - "/ln/invoice", + logInputAndOutput( { amountMsat: 10000, description: "test" }, { operationId, invoice } ); // `/v2/ln/pay` + logMethod("/v2/ln/pay"); let payResponse = await fedimintClient.ln.pay(invoice); - logMethodInputAndOutput("/ln/pay", { paymentInfo: invoice }, payResponse); + logInputAndOutput({ paymentInfo: invoice }, payResponse); // `/v2/ln/await-invoice` + logMethod("/v2/ln/await-invoice"); data = await fedimintClient.ln.awaitInvoice(operationId); - logMethodInputAndOutput("/ln/await-invoice", { operationId }, data); + logInputAndOutput({ operationId }, data); // MINT METHODS // `/v2/mint/spend` + logMethod("/v2/mint/spend"); let mintData = await fedimintClient.mint.spend(3000, true, 1000); - logMethodInputAndOutput( - "/mint/spend", + logInputAndOutput( { amountMsat: 3000, allowOverpay: true, timeout: 1000 }, data ); // `/v2/mint/validate` + logMethod("/v2/mint/validate"); data = await fedimintClient.mint.validate(mintData.notes); - logMethodInputAndOutput("/mint/validate", { notes: mintData.notes }, data); + logInputAndOutput({ notes: mintData.notes }, data); // `/v2/mint/reissue` + logMethod("/v2/mint/reissue"); data = await fedimintClient.mint.reissue(mintData.notes); - logMethodInputAndOutput("/mint/reissue", { notes: mintData.notes }, data); + logInputAndOutput({ notes: mintData.notes }, data); // `/v2/mint/split` + logMethod("/v2/mint/split"); data = await fedimintClient.mint.split(mintData.notes); - logMethodInputAndOutput("/mint/split", { notes: mintData.notes }, data); + logInputAndOutput({ notes: mintData.notes }, data); // `/v2/mint/combine` + logMethod("/v2/mint/combine"); const notesVec = Object.values(data.notes) as string[]; data = await fedimintClient.mint.combine(notesVec); - logMethodInputAndOutput("/mint/combine", { notesVec }, data); + logInputAndOutput({ notesVec }, data); // ONCHAIN METHODS - // `/v2/onchain/deposit-address` - data = await fedimintClient.onchain.createDepositAddress(1000); - logMethodInputAndOutput("/onchain/deposit-address", { timeout: 1000 }, data); - // `/v2/onchain/await-deposit` - data = await fedimintClient.onchain.awaitDeposit(data.operationId); - logMethodInputAndOutput( - "/onchain/await-deposit", - { operationId: data.operationId }, - data - ); - // `/v2/onchain/withdraw` + // // `/v2/onchain/deposit-address` + // logMethod("/v2/onchain/deposit-address"); + // data = await fedimintClient.onchain.createDepositAddress(1000); + // logInputAndOutput({ timeout: 1000 }, data); + // // `/v2/onchain/await-deposit` + // logMethod("/v2/onchain/await-deposit"); + // data = await fedimintClient.onchain.awaitDeposit(data.operationId); + // logInputAndOutput({ operationId: data.operationId }, data); + // // `/v2/onchain/withdraw` + // logMethod("/v2/onchain/withdraw"); + // data = await fedimintClient. } main().catch(console.error);