@kontor/kontor-sdk 1.0.0-alpha.26 → 1.0.0-alpha.27

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.
Files changed (53) hide show
  1. package/dist/cjs/sdk/actions/kontor/public/call-compose.js +7 -9
  2. package/dist/cjs/sdk/actions/kontor/public/call-compose.js.map +1 -1
  3. package/dist/cjs/sdk/actions/kontor/public/proc-contract.js +5 -8
  4. package/dist/cjs/sdk/actions/kontor/public/proc-contract.js.map +1 -1
  5. package/dist/cjs/sdk/actions/kontor/wallet/sign-commit.js.map +1 -1
  6. package/dist/cjs/tsconfig.build.tsbuildinfo +1 -1
  7. package/dist/cjs/wit/wit-parser/core/utils.js.map +1 -1
  8. package/dist/cjs/wit/wit-parser/parse-wit.js.map +1 -1
  9. package/dist/esm/sdk/actions/kontor/public/call-compose.js +8 -10
  10. package/dist/esm/sdk/actions/kontor/public/call-compose.js.map +1 -1
  11. package/dist/esm/sdk/actions/kontor/public/proc-contract.js +5 -9
  12. package/dist/esm/sdk/actions/kontor/public/proc-contract.js.map +1 -1
  13. package/dist/esm/sdk/actions/kontor/wallet/sign-commit.js +1 -0
  14. package/dist/esm/sdk/actions/kontor/wallet/sign-commit.js.map +1 -1
  15. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  16. package/dist/esm/wit/wit-parser/core/utils.js +0 -5
  17. package/dist/esm/wit/wit-parser/core/utils.js.map +1 -1
  18. package/dist/esm/wit/wit-parser/parse-wit.js.map +1 -1
  19. package/dist/types/sdk/actions/kontor/public/call-compose.d.ts +6 -5
  20. package/dist/types/sdk/actions/kontor/public/call-compose.d.ts.map +1 -1
  21. package/dist/types/sdk/actions/kontor/public/proc-contract.d.ts +5 -5
  22. package/dist/types/sdk/actions/kontor/public/proc-contract.d.ts.map +1 -1
  23. package/dist/types/sdk/actions/kontor/wallet/sign-commit.d.ts +4 -2
  24. package/dist/types/sdk/actions/kontor/wallet/sign-commit.d.ts.map +1 -1
  25. package/dist/types/sdk/actions/kontor/wallet/sign-reveal.d.ts +1 -1
  26. package/dist/types/sdk/actions/kontor/wallet/sign-reveal.d.ts.map +1 -1
  27. package/dist/types/sdk/clients/decorators/kontor/public.d.ts +2 -2
  28. package/dist/types/sdk/clients/decorators/kontor/public.d.ts.map +1 -1
  29. package/dist/types/sdk/clients/decorators/kontor/wallet.d.ts +1 -1
  30. package/dist/types/sdk/clients/decorators/kontor/wallet.d.ts.map +1 -1
  31. package/dist/types/sdk/clients/kontor/create-public-client.d.ts +1 -1
  32. package/dist/types/sdk/clients/kontor/create-public-client.d.ts.map +1 -1
  33. package/dist/types/sdk/clients/kontor/create-wallet-client.d.ts +1 -1
  34. package/dist/types/sdk/clients/kontor/create-wallet-client.d.ts.map +1 -1
  35. package/dist/types/sdk/types/chain.d.ts +1 -0
  36. package/dist/types/sdk/types/chain.d.ts.map +1 -1
  37. package/dist/types/wit/wit-parser/core/utils.d.ts.map +1 -1
  38. package/dist/types/wit/wit-parser/parse-wit.d.ts +0 -15
  39. package/dist/types/wit/wit-parser/parse-wit.d.ts.map +1 -1
  40. package/package.json +1 -1
  41. package/src/sdk/actions/kontor/public/call-compose.ts +29 -22
  42. package/src/sdk/actions/kontor/public/proc-contract.test.ts +3 -0
  43. package/src/sdk/actions/kontor/public/proc-contract.ts +60 -15
  44. package/src/sdk/actions/kontor/wallet/sign-commit.ts +18 -7
  45. package/src/sdk/actions/kontor/wallet/sign-reveal.ts +1 -1
  46. package/src/sdk/clients/decorators/kontor/public.ts +4 -4
  47. package/src/sdk/clients/decorators/kontor/wallet.ts +2 -2
  48. package/src/sdk/clients/kontor/create-public-client.ts +3 -3
  49. package/src/sdk/clients/kontor/create-wallet-client.ts +3 -3
  50. package/src/sdk/test/e2e.test.ts +8 -12
  51. package/src/sdk/types/chain.ts +5 -0
  52. package/src/wit/wit-parser/core/utils.ts +1 -5
  53. package/src/wit/wit-parser/parse-wit.ts +0 -15
@@ -8,23 +8,33 @@ import type { Chain, GetChainParameter } from "../../../types/chain.js";
8
8
  import { getAction } from "../../..//utils/get-action.js";
9
9
  import { signPsbt } from "../../wallet/sign-psbt.js";
10
10
  import { parseAccount } from "../../../accounts/utils/parse-account.js";
11
+ import type { XOnlyPubKey, Address } from "../../../../sdk/types/misc.js";
12
+
13
+ export type SignCommitRequest = {
14
+ psbt: string;
15
+ };
11
16
 
12
17
  export type SignCommitParameters<
13
- chain extends Chain | undefined,
14
- account extends Account | undefined,
15
- > = GetAccountParameter<account> &
16
- // TODO: add chainoverride?
17
- GetChainParameter<chain> & { psbt: string };
18
+ chain extends Chain | undefined = Chain,
19
+ account extends Account | undefined = Account | undefined,
20
+ chainOverride extends Chain | undefined = Chain | undefined,
21
+ accountOverride extends Account | [Address, XOnlyPubKey] | undefined =
22
+ | Account
23
+ | [Address, XOnlyPubKey]
24
+ | undefined,
25
+ > = SignCommitRequest &
26
+ GetAccountParameter<account, accountOverride, false, true> &
27
+ GetChainParameter<chain, chainOverride>;
18
28
 
19
29
  export type SignCommitReturnType = Transaction;
20
30
 
21
31
  export async function signCommit<
22
- // @ts-ignore
23
32
  chain extends Chain | undefined,
24
33
  account extends Account | undefined,
34
+ chainOverride extends Chain | undefined = undefined,
25
35
  >(
26
36
  client: KontorWalletClient<RpcTransport, chain, account>,
27
- parameters: SignCommitParameters<chain, account>,
37
+ parameters: SignCommitParameters<chain, account, chainOverride>,
28
38
  ): Promise<SignCommitReturnType> {
29
39
  const {
30
40
  account: account_ = client.account,
@@ -33,6 +43,7 @@ export async function signCommit<
33
43
  } = parameters;
34
44
 
35
45
  if (!account_) throw new Error("AccountNotFoundError");
46
+ // TODO: throw if chain is undefined
36
47
 
37
48
  const account = parseAccount(account_);
38
49
 
@@ -18,7 +18,7 @@ import type { ParticipantScripts } from "@kontor/kontor-ts";
18
18
  export type SignRevealParameters<
19
19
  chain extends Chain | undefined,
20
20
  account extends Account | undefined,
21
- > = GetAccountParameter<account> &
21
+ > = GetAccountParameter<account, account, false> &
22
22
  // TODO: add chainoverride?
23
23
  GetChainParameter<chain> & {
24
24
  psbt: string;
@@ -52,8 +52,8 @@ import type { HttpTransport } from "../../transports/create-http-transport.js";
52
52
 
53
53
  export type KontorPublicActions<
54
54
  _transport extends HttpTransport = HttpTransport,
55
- _chain extends Chain | undefined = Chain | undefined,
56
- _account extends Account | undefined = Account | undefined,
55
+ chain extends Chain | undefined = Chain | undefined,
56
+ account extends Account | undefined = Account | undefined,
57
57
  > = {
58
58
  viewContract: <
59
59
  const wit extends Wit | readonly unknown[],
@@ -83,8 +83,8 @@ export type KontorPublicActions<
83
83
  args: BuildComposeQueryParameters<chain>,
84
84
  ) => Promise<BuildComposeQueryReturnType>;
85
85
 
86
- callCompose: <chain extends Chain | undefined>(
87
- args: CallComposeParameters<chain>,
86
+ callCompose: <chainOverride extends Chain | undefined>(
87
+ args: CallComposeParameters<chain, account, chainOverride>,
88
88
  ) => Promise<CallComposeReturnType>;
89
89
  inspect: <_chain extends Chain | undefined>(
90
90
  args: InspectParameters,
@@ -33,8 +33,8 @@ export type KontorWalletActions<
33
33
  signPsbt: (
34
34
  params: SignPsbtParameters<chain, account>,
35
35
  ) => Promise<SignPsbtReturnType>;
36
- signCommit: (
37
- params: SignCommitParameters<chain, account>,
36
+ signCommit: <chainOverride extends Chain | undefined>(
37
+ params: SignCommitParameters<chain, account, chainOverride>,
38
38
  ) => Promise<SignCommitReturnType>;
39
39
  signReveal: (
40
40
  params: SignRevealParameters<chain, account>,
@@ -43,17 +43,17 @@ export type KontorPublicClientConfig<
43
43
  export type KontorPublicClient<
44
44
  transport extends HttpTransport = HttpTransport,
45
45
  chain extends Chain | undefined = Chain | undefined,
46
- accountOrAddress extends Account | undefined = Account | undefined,
46
+ account extends Account | undefined = Account | undefined,
47
47
  httpSchema extends HttpSchema | undefined = undefined,
48
48
  > = Prettify<
49
49
  HttpClient<
50
50
  transport,
51
51
  chain,
52
- accountOrAddress,
52
+ account,
53
53
  httpSchema extends HttpSchema
54
54
  ? [...KontorSchemaPublic, ...httpSchema]
55
55
  : KontorSchemaPublic,
56
- KontorPublicActions
56
+ KontorPublicActions<transport, chain, account>
57
57
  >
58
58
  >;
59
59
 
@@ -44,17 +44,17 @@ export type KontorWalletClientConfig<
44
44
  export type KontorWalletClient<
45
45
  transport extends RpcTransport = RpcTransport,
46
46
  chain extends Chain | undefined = Chain | undefined,
47
- accountOrAddress extends Account | undefined = Account | undefined,
47
+ account extends Account | undefined = Account | undefined,
48
48
  rpcSchema extends RpcSchema | undefined = undefined,
49
49
  > = Prettify<
50
50
  RpcClient<
51
51
  transport,
52
52
  chain,
53
- accountOrAddress,
53
+ account,
54
54
  rpcSchema extends RpcSchema
55
55
  ? [...WBIP001Schema, ...rpcSchema]
56
56
  : WBIP001Schema,
57
- KontorWalletActions
57
+ KontorWalletActions<chain, account>
58
58
  >
59
59
  >;
60
60
 
@@ -120,8 +120,16 @@ test("e2e kontor wallet client", async () => {
120
120
 
121
121
  const kontorPublicClient = createKontorPublicClient({
122
122
  transport: http("https://signet-staging.kontor.network:35000/api"),
123
+ chain: signet,
124
+ account,
125
+ });
126
+
127
+ const kontorWalletClient = createKontorWalletClient({
123
128
  account,
124
129
  chain: signet,
130
+ transport: custom({
131
+ request: async (_args: any) => null,
132
+ }),
125
133
  });
126
134
 
127
135
  const res = await kontorPublicClient.callCompose({
@@ -132,23 +140,11 @@ test("e2e kontor wallet client", async () => {
132
140
  satsPerVByte: 1,
133
141
  });
134
142
 
135
- const kontorWalletClient = createKontorWalletClient({
136
- account,
137
- // TODO: transport is not used for local account.
138
- transport: custom({
139
- request: async (_args: any) => null,
140
- }),
141
- });
142
-
143
143
  const commit: Transaction = await kontorWalletClient.signCommit({
144
- account: account,
145
- chain: signet,
146
144
  psbt: res.result.commit_psbt_hex,
147
145
  });
148
146
 
149
147
  const reveal: Transaction = await kontorWalletClient.signReveal({
150
- account: account,
151
- chain: signet,
152
148
  psbt: res.result.reveal_psbt_hex,
153
149
  parcipantScripts: res.result.per_participant,
154
150
  });
@@ -108,3 +108,8 @@ export type GetChainParameter<
108
108
  IsUndefined<chain> extends true
109
109
  ? { chain: chainOverride | null }
110
110
  : { chain?: chainOverride | null | undefined };
111
+
112
+ export type DeriveChain<
113
+ chain extends Chain | undefined,
114
+ chainOverride extends Chain | undefined,
115
+ > = chainOverride extends Chain ? chainOverride : chain;
@@ -16,10 +16,7 @@ export type ParseOptions = {
16
16
  records?: RecordLookup;
17
17
  type?: WitItemType | "record";
18
18
  };
19
- //
20
- // export const witParameterRegex =
21
- // /^(?:(?<name>[a-z][a-z0-9-]*)\s*:\s*)?(?<type>(?:borrow|list|option|result|tuple)\s*<[\s\S]+>|[a-z][a-z0-9-]*|(?:record|variant|flags|enum)\s*\{[\s\S]*\})$/;
22
- //
19
+
23
20
  export const witParameterRegex =
24
21
  /^(?:(?<name>[a-z][a-z0-9-]*)\s*:\s*)?(?<type>_|(?:borrow|list|option|result|tuple)\s*<[\s\S]+>|[a-z][a-z0-9-]*|(?:record|variant|flags|enum)\s*\{[\s\S]*\})$/;
25
22
 
@@ -60,7 +57,6 @@ export function parseWitParameter(param: string, options?: ParseOptions) {
60
57
  if (match.name && isWitKeyword(match.name))
61
58
  throw new WitProtectedKeywordError({ param, name: match.name });
62
59
 
63
- // TODO: smell
64
60
  const name = match.name ? { name: match.name } : {};
65
61
  const records = options?.records ?? {};
66
62
  let type: string;
@@ -10,21 +10,6 @@ import type { Signatures } from "./core/types/signatures.js";
10
10
  import type { ParseRecords } from "./core/types/records.js";
11
11
  import type { ParseSignature } from "./core/types/utils.js";
12
12
 
13
- /**
14
- * Parses human-readable ABI into JSON {@link Abi}
15
- *
16
- * @param signatures - Human-readable ABI
17
- * @returns Parsed {@link Abi}
18
- *
19
- * @example
20
- * type Result = ParseAbi<
21
- * // ^? type Result = readonly [{ name: "balanceOf"; type: "function"; stateMutability:...
22
- * [
23
- * 'function balanceOf(address owner) view returns (uint256)',
24
- * 'event Transfer(address indexed from, address indexed to, uint256 amount)',
25
- * ]
26
- * >
27
- */
28
13
  export type ParseWit<signatures extends readonly string[]> =
29
14
  string[] extends signatures
30
15
  ? Wit // If `T` was not able to be inferred (e.g. just `string[]`), return `Abi`