@kontor/kontor-sdk 1.0.0-alpha.11 → 1.0.0-alpha.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,7 +25,7 @@ export async function procContract(client, parameters) {
25
25
  throw new Error("at least one funding UTXO is required");
26
26
  }
27
27
  try {
28
- const response = await getKontorAction(client, callCompose, "callProc")({
28
+ const response = await getKontorAction(client, callCompose, "callCompose")({
29
29
  utxos,
30
30
  satsPerVByte,
31
31
  address,
@@ -1 +1 @@
1
- {"version":3,"file":"proc-contract.js","sourceRoot":"","sources":["../../../../../../src/sdk/actions/kontor/public/proc-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAW9D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EACL,kBAAkB,GAEnB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,WAAW,EAA8B,MAAM,mBAAmB,CAAC;AAuB5E,MAAM,CAAC,KAAK,UAAU,YAAY,CAOhC,MAAgD,EAChD,UAA2D;IAE3D,MAAM,EACJ,GAAG,EAAE,GAAG,EACR,eAAe,EACf,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,GAAG,EACH,YAAY,EACZ,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,EACjC,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,WAAW;IACzC,aAAa;IACb,GAAG,IAAI,EACR,GAAG,UAAoC,CAAC;IAEzC,aAAa;IACb,MAAM,IAAI,GAAG,kBAAkB,CAAC;QAC9B,GAAG,EAAE,GAAG;QACR,IAAI;QACJ,YAAY;KACmB,CAAC,CAAC;IAEnC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,yBAAyB;QACzB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,yBAAyB;QACzB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,yBAAyB;QACzB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CACpC,MAAM,EACN,WAAW,EACX,UAAU,CACX,CAAC;YACA,KAAK;YACL,YAAY;YACZ,OAAO;YACP,WAAW;YACX,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC;gBAC5B,QAAQ,EAAE,eAAe;gBACzB,QAAQ,EAAE,GAAG;gBACb,IAAI,EAAE,IAAI;aACX,CAAC;SACH,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,KAAK,CAAC;QACZ,+CAA+C;QAC/C,EAAE;QACF,cAAc;QACd,aAAa;QACb,UAAU;QACV,6CAA6C;QAC7C,kBAAkB;QAClB,MAAM;IACR,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"proc-contract.js","sourceRoot":"","sources":["../../../../../../src/sdk/actions/kontor/public/proc-contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAW9D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EACL,kBAAkB,GAEnB,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,WAAW,EAA8B,MAAM,mBAAmB,CAAC;AAuB5E,MAAM,CAAC,KAAK,UAAU,YAAY,CAOhC,MAAgD,EAChD,UAA2D;IAE3D,MAAM,EACJ,GAAG,EAAE,GAAG,EACR,eAAe,EACf,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,GAAG,EACH,YAAY,EACZ,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,OAAO,EACjC,WAAW,GAAG,MAAM,CAAC,OAAO,EAAE,WAAW;IACzC,aAAa;IACb,GAAG,IAAI,EACR,GAAG,UAAoC,CAAC;IAEzC,aAAa;IACb,MAAM,IAAI,GAAG,kBAAkB,CAAC;QAC9B,GAAG,EAAE,GAAG;QACR,IAAI;QACJ,YAAY;KACmB,CAAC,CAAC;IAEnC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,yBAAyB;QACzB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,yBAAyB;QACzB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,yBAAyB;QACzB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IAED,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,eAAe,CACpC,MAAM,EACN,WAAW,EACX,aAAa,CACd,CAAC;YACA,KAAK;YACL,YAAY;YACZ,OAAO;YACP,WAAW;YACX,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC;gBAC5B,QAAQ,EAAE,eAAe;gBACzB,QAAQ,EAAE,GAAG;gBACb,IAAI,EAAE,IAAI;aACX,CAAC;SACH,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,KAAK,CAAC;QACZ,+CAA+C;QAC/C,EAAE;QACF,cAAc;QACd,aAAa;QACb,UAAU;QACV,6CAA6C;QAC7C,kBAAkB;QAClB,MAAM;IACR,CAAC;AACH,CAAC"}
@@ -10,7 +10,7 @@ export function kontorPublicActions(client) {
10
10
  viewContract: (args) => viewContract(client, args),
11
11
  procContract: (args) => procContract(client, args),
12
12
  callView: (args) => callView(client, args),
13
- callProc: (args) => callCompose(client, args),
13
+ callCompose: (args) => callCompose(client, args),
14
14
  buildInstructionQuery: (args) => buildInstructionQuery(client, args),
15
15
  buildComposeQuery: (args) => buildComposeQuery(client, args),
16
16
  inspect: (args) => inspect(client, args),
@@ -1 +1 @@
1
- {"version":3,"file":"public.js","sourceRoot":"","sources":["../../../../../../src/sdk/clients/decorators/kontor/public.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,GAGb,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EACL,YAAY,GAGb,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EACL,QAAQ,GAGT,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,WAAW,GAGZ,MAAM,gDAAgD,CAAC;AAExD,OAAO,EACL,qBAAqB,GAGtB,MAAM,2DAA2D,CAAC;AAEnE,OAAO,EACL,iBAAiB,GAGlB,MAAM,uDAAuD,CAAC;AAE/D,OAAO,EACL,OAAO,GAGR,MAAM,2CAA2C,CAAC;AAmDnD,MAAM,UAAU,mBAAmB,CAKjC,MAAqD;IAErD,OAAO;QACL,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC;QAClD,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC;QAClD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;QAC1C,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;QAC7C,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC;QACpE,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC;QAC5D,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;KACzC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"public.js","sourceRoot":"","sources":["../../../../../../src/sdk/clients/decorators/kontor/public.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,YAAY,GAGb,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EACL,YAAY,GAGb,MAAM,iDAAiD,CAAC;AAEzD,OAAO,EACL,QAAQ,GAGT,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,WAAW,GAGZ,MAAM,gDAAgD,CAAC;AAExD,OAAO,EACL,qBAAqB,GAGtB,MAAM,2DAA2D,CAAC;AAEnE,OAAO,EACL,iBAAiB,GAGlB,MAAM,uDAAuD,CAAC;AAE/D,OAAO,EACL,OAAO,GAGR,MAAM,2CAA2C,CAAC;AAmDnD,MAAM,UAAU,mBAAmB,CAKjC,MAAqD;IAErD,OAAO;QACL,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC;QAClD,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC;QAClD,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;QAC1C,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;QAChD,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC;QACpE,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC;QAC5D,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;KACzC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { parseWit } from "../../wit/wit-parser/parse-wit.js";
2
+ const nativeTokenRaw = [
3
+ "record balance { acc: string, amt: decimal }",
4
+ "record transfer { src: string, dst: string, amt: decimal }",
5
+ "record burn { src: string, amt: decimal }",
6
+ "record mint { dst: string, amt: decimal }",
7
+ "export issuance: func(ctx: borrow<core-context>, amt: decimal) -> result<mint, error>;",
8
+ "export hold: func(ctx: borrow<core-context>, amt: decimal) -> result<transfer, error>;",
9
+ "export release: func(ctx: borrow<core-context>, burn-amt: decimal) -> result<burn, error>;",
10
+ "export init: func(ctx: borrow<proc-context>);",
11
+ "export mint: func(ctx: borrow<proc-context>, amt: decimal) -> result<mint, error>;",
12
+ "export burn: func(ctx: borrow<proc-context>, amt: decimal) -> result<burn, error>;",
13
+ "export transfer: func(ctx: borrow<proc-context>, dst: string, amt: decimal) -> result<transfer, error>;",
14
+ "export balance: func(ctx: borrow<view-context>, acc: string) -> option<decimal>;",
15
+ "export balances: func(ctx: borrow<view-context>) -> list<balance>;",
16
+ "export total-supply: func(ctx: borrow<view-context>) -> decimal;",
17
+ "export attach: func(ctx: borrow<proc-context>, vout: u64, amt: decimal) -> result<transfer, error>;",
18
+ "export detach: func(ctx: borrow<proc-context>) -> result<transfer, error>;",
19
+ ];
20
+ const nativeTokenWit = parseWit(nativeTokenRaw);
21
+ export const nativeToken = {
22
+ raw: nativeTokenRaw,
23
+ wit: nativeTokenWit,
24
+ address: "token_0_0",
25
+ };
26
+ //# sourceMappingURL=wits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wits.js","sourceRoot":"","sources":["../../../../src/sdk/contracts/wits.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAiB,MAAM,mCAAmC,CAAC;AAQ5E,MAAM,cAAc,GAAG;IACrB,8CAA8C;IAC9C,4DAA4D;IAC5D,2CAA2C;IAC3C,2CAA2C;IAE3C,wFAAwF;IACxF,wFAAwF;IACxF,4FAA4F;IAC5F,+CAA+C;IAC/C,oFAAoF;IACpF,oFAAoF;IACpF,yGAAyG;IACzG,kFAAkF;IAClF,oEAAoE;IACpE,kEAAkE;IAClE,qGAAqG;IACrG,4EAA4E;CACpE,CAAC;AAEX,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,WAAW,GAA0C;IAChE,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,cAAc;IACnB,OAAO,EAAE,WAAW;CACrB,CAAC"}
@@ -0,0 +1,166 @@
1
+ import { test } from "vitest";
2
+ // import { procContract } from "./proc-contract.js";
3
+ import { parseWit } from "../../wit/wit-parser/parse-wit.js";
4
+ import { createPublicClient as createKontorPublicClient } from "../clients/kontor/create-public-client.js";
5
+ import { http } from "../clients/transports/http.js";
6
+ import { mnemonicToAccount } from "../accounts/mnemonic-to-account.js";
7
+ import { createWalletClient as createKontorWalletClient } from "../clients/kontor/create-wallet-client.js";
8
+ import { custom } from "../clients/transports/custom.js";
9
+ import { Transaction } from "@scure/btc-signer";
10
+ import { hex } from "@scure/base";
11
+ import { signet } from "../chains/definitions/signet.js";
12
+ import { Instruction } from "../types/kontor.js";
13
+ export const nativeTokenRaw = [
14
+ "record balance { acc: string, amt: decimal }",
15
+ "record transfer { src: string, dst: string, amt: decimal }",
16
+ "record burn { src: string, amt: decimal }",
17
+ "record mint { dst: string, amt: decimal }",
18
+ "export issuance: func(ctx: borrow<core-context>, amt: decimal) -> result<mint, error>;",
19
+ "export hold: func(ctx: borrow<core-context>, amt: decimal) -> result<transfer, error>;",
20
+ "export release: func(ctx: borrow<core-context>, burn-amt: decimal) -> result<burn, error>;",
21
+ "export init: func(ctx: borrow<proc-context>);",
22
+ "export mint: func(ctx: borrow<proc-context>, amt: decimal) -> result<mint, error>;",
23
+ "export burn: func(ctx: borrow<proc-context>, amt: decimal) -> result<burn, error>;",
24
+ "export transfer: func(ctx: borrow<proc-context>, dst: string, amt: decimal) -> result<transfer, error>;",
25
+ "export balance: func(ctx: borrow<view-context>, acc: string) -> option<decimal>;",
26
+ "export balances: func(ctx: borrow<view-context>) -> list<balance>;",
27
+ "export total-supply: func(ctx: borrow<view-context>) -> decimal;",
28
+ "export attach: func(ctx: borrow<proc-context>, vout: u64, amt: decimal) -> result<transfer, error>;",
29
+ "export detach: func(ctx: borrow<proc-context>) -> result<transfer, error>;",
30
+ ];
31
+ export const wit = parseWit(nativeTokenRaw);
32
+ // test("e2e kontor wallet client", async () => {
33
+ // const account = mnemonicToAccount(process.env.TEST_MNEMONIC!);
34
+ //
35
+ // const kontorPublicClient = createKontorPublicClient({
36
+ // transport: http("https://signet-staging.kontor.network:35000/api"),
37
+ // account,
38
+ // chain: signet,
39
+ // });
40
+ //
41
+ // const kontorWalletClient = createKontorWalletClient({
42
+ // account,
43
+ // // TODO: transport is not used for local account.
44
+ // transport: custom({
45
+ // request: async (_args: any) => null,
46
+ // }),
47
+ // });
48
+ //
49
+ // const res = await kontorPublicClient.procContract({
50
+ // wit: wit,
51
+ // // TODO: add optional account override
52
+ //
53
+ // functionName: "mint", // functin name is only valid if it's got a proc-context
54
+ // contractAddress: "token_0_0",
55
+ // args: [[7n, 18]],
56
+ // satsPerVByte: 1,
57
+ // utxos: [
58
+ // "641c40edf4cf0f1cdaea5c259bf50267bd8743dbade84c98bb9e360c2d0e2a33:1",
59
+ // ],
60
+ // gas: 10n,
61
+ // });
62
+ //
63
+ // const commit: Transaction = await kontorWalletClient.signCommit({
64
+ // account: account,
65
+ // chain: signet,
66
+ // psbt: res.result.commit_psbt_hex,
67
+ // });
68
+ //
69
+ // const reveal: Transaction = await kontorWalletClient.signReveal({
70
+ // account: account,
71
+ // chain: signet,
72
+ // psbt: res.result.reveal_psbt_hex,
73
+ // parcipantScripts: res.result.per_participant,
74
+ // });
75
+ //
76
+ // const commitExtracted = commit.extract();
77
+ // const revealExtracted = reveal.extract();
78
+ //
79
+ // // const m = await btcPublicClient.testMempoolAccept({
80
+ // // rawtx: [hex.encode(commitExtracted), hex.encode(revealExtracted)],
81
+ // // options: {},
82
+ // // });
83
+ // //
84
+ //
85
+ // const r = await fetch("https://signet.kontor.network:38332", {
86
+ // method: "POST",
87
+ // headers: {
88
+ // "Content-Type": "application/json",
89
+ // Authorization: `Basic ${Buffer.from("rpc:rpc").toString("base64")}`,
90
+ // },
91
+ // body: JSON.stringify({
92
+ // method: "testmempoolaccept",
93
+ // params: [[hex.encode(commitExtracted), hex.encode(revealExtracted)]],
94
+ // }),
95
+ // });
96
+ // console.log({
97
+ // r,
98
+ // reveal: [hex.encode(commitExtracted), hex.encode(revealExtracted)],
99
+ // });
100
+ //
101
+ // const j = await r.json();
102
+ //
103
+ // console.log(j);
104
+ // //
105
+ // // const op = await kontorPublicClient.inspect({
106
+ // // hex: hex.encode(revealExtracted),
107
+ // // });
108
+ //
109
+ // // console.log(JSON.stringify(op.result[0]!.op));
110
+ // //
111
+ // });
112
+ test("e2e kontor wallet client", async () => {
113
+ const account = mnemonicToAccount(process.env.TEST_MNEMONIC);
114
+ const kontorPublicClient = createKontorPublicClient({
115
+ transport: http("https://signet-staging.kontor.network:35000/api"),
116
+ account,
117
+ chain: signet,
118
+ });
119
+ const res = await kontorPublicClient.callCompose({
120
+ utxos: [
121
+ "641c40edf4cf0f1cdaea5c259bf50267bd8743dbade84c98bb9e360c2d0e2a33:1",
122
+ ],
123
+ instruction: Instruction.issuance(),
124
+ satsPerVByte: 1,
125
+ });
126
+ const kontorWalletClient = createKontorWalletClient({
127
+ account,
128
+ // TODO: transport is not used for local account.
129
+ transport: custom({
130
+ request: async (_args) => null,
131
+ }),
132
+ });
133
+ const commit = await kontorWalletClient.signCommit({
134
+ account: account,
135
+ chain: signet,
136
+ psbt: res.result.commit_psbt_hex,
137
+ });
138
+ const reveal = await kontorWalletClient.signReveal({
139
+ account: account,
140
+ chain: signet,
141
+ psbt: res.result.reveal_psbt_hex,
142
+ parcipantScripts: res.result.per_participant,
143
+ });
144
+ const commitExtracted = commit.extract();
145
+ const revealExtracted = reveal.extract();
146
+ const r = await fetch("https://signet.kontor.network:38332", {
147
+ method: "POST",
148
+ headers: {
149
+ "Content-Type": "application/json",
150
+ Authorization: `Basic ${Buffer.from("rpc:rpc").toString("base64")}`,
151
+ },
152
+ body: JSON.stringify({
153
+ method: "testmempoolaccept",
154
+ params: [[hex.encode(commitExtracted), hex.encode(revealExtracted)]],
155
+ }),
156
+ });
157
+ const mempoolAccept = await r.json();
158
+ console.log({ mempoolAccept: mempoolAccept.result });
159
+ //
160
+ const op = await kontorPublicClient.inspect({
161
+ hex: hex.encode(revealExtracted),
162
+ });
163
+ console.log(JSON.stringify(op.result[0].op));
164
+ //
165
+ });
166
+ //# sourceMappingURL=e2e.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"e2e.test.js","sourceRoot":"","sources":["../../../../src/sdk/test/e2e.test.ts"],"names":[],"mappings":"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"}