@aibtc/mcp-server 1.0.0

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 (178) hide show
  1. package/README.md +340 -0
  2. package/dist/api.d.ts +9 -0
  3. package/dist/api.d.ts.map +1 -0
  4. package/dist/api.js +79 -0
  5. package/dist/api.js.map +1 -0
  6. package/dist/config/contracts.d.ts +169 -0
  7. package/dist/config/contracts.d.ts.map +1 -0
  8. package/dist/config/contracts.js +250 -0
  9. package/dist/config/contracts.js.map +1 -0
  10. package/dist/config/index.d.ts +3 -0
  11. package/dist/config/index.d.ts.map +1 -0
  12. package/dist/config/index.js +3 -0
  13. package/dist/config/index.js.map +1 -0
  14. package/dist/config/networks.d.ts +11 -0
  15. package/dist/config/networks.d.ts.map +1 -0
  16. package/dist/config/networks.js +21 -0
  17. package/dist/config/networks.js.map +1 -0
  18. package/dist/endpoints/index.d.ts +2 -0
  19. package/dist/endpoints/index.d.ts.map +1 -0
  20. package/dist/endpoints/index.js +2 -0
  21. package/dist/endpoints/index.js.map +1 -0
  22. package/dist/endpoints/registry.d.ts +38 -0
  23. package/dist/endpoints/registry.d.ts.map +1 -0
  24. package/dist/endpoints/registry.js +935 -0
  25. package/dist/endpoints/registry.js.map +1 -0
  26. package/dist/index.d.ts +3 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +79 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/services/bitflow.service.d.ts +159 -0
  31. package/dist/services/bitflow.service.d.ts.map +1 -0
  32. package/dist/services/bitflow.service.js +325 -0
  33. package/dist/services/bitflow.service.js.map +1 -0
  34. package/dist/services/bns.service.d.ts +87 -0
  35. package/dist/services/bns.service.d.ts.map +1 -0
  36. package/dist/services/bns.service.js +312 -0
  37. package/dist/services/bns.service.js.map +1 -0
  38. package/dist/services/defi.service.d.ts +146 -0
  39. package/dist/services/defi.service.d.ts.map +1 -0
  40. package/dist/services/defi.service.js +461 -0
  41. package/dist/services/defi.service.js.map +1 -0
  42. package/dist/services/hiro-api.d.ts +438 -0
  43. package/dist/services/hiro-api.d.ts.map +1 -0
  44. package/dist/services/hiro-api.js +376 -0
  45. package/dist/services/hiro-api.js.map +1 -0
  46. package/dist/services/nft.service.d.ts +70 -0
  47. package/dist/services/nft.service.d.ts.map +1 -0
  48. package/dist/services/nft.service.js +148 -0
  49. package/dist/services/nft.service.js.map +1 -0
  50. package/dist/services/sbtc.service.d.ts +44 -0
  51. package/dist/services/sbtc.service.d.ts.map +1 -0
  52. package/dist/services/sbtc.service.js +100 -0
  53. package/dist/services/sbtc.service.js.map +1 -0
  54. package/dist/services/scaffold.service.d.ts +41 -0
  55. package/dist/services/scaffold.service.d.ts.map +1 -0
  56. package/dist/services/scaffold.service.js +1055 -0
  57. package/dist/services/scaffold.service.js.map +1 -0
  58. package/dist/services/stacking.service.d.ts +58 -0
  59. package/dist/services/stacking.service.d.ts.map +1 -0
  60. package/dist/services/stacking.service.js +153 -0
  61. package/dist/services/stacking.service.js.map +1 -0
  62. package/dist/services/tokens.service.d.ts +62 -0
  63. package/dist/services/tokens.service.d.ts.map +1 -0
  64. package/dist/services/tokens.service.js +119 -0
  65. package/dist/services/tokens.service.js.map +1 -0
  66. package/dist/services/wallet-manager.d.ts +107 -0
  67. package/dist/services/wallet-manager.d.ts.map +1 -0
  68. package/dist/services/wallet-manager.js +389 -0
  69. package/dist/services/wallet-manager.js.map +1 -0
  70. package/dist/services/x402.service.d.ts +26 -0
  71. package/dist/services/x402.service.d.ts.map +1 -0
  72. package/dist/services/x402.service.js +125 -0
  73. package/dist/services/x402.service.js.map +1 -0
  74. package/dist/tools/bitflow.tools.d.ts +3 -0
  75. package/dist/tools/bitflow.tools.d.ts.map +1 -0
  76. package/dist/tools/bitflow.tools.js +501 -0
  77. package/dist/tools/bitflow.tools.js.map +1 -0
  78. package/dist/tools/bns.tools.d.ts +3 -0
  79. package/dist/tools/bns.tools.d.ts.map +1 -0
  80. package/dist/tools/bns.tools.js +164 -0
  81. package/dist/tools/bns.tools.js.map +1 -0
  82. package/dist/tools/contract.tools.d.ts +3 -0
  83. package/dist/tools/contract.tools.d.ts.map +1 -0
  84. package/dist/tools/contract.tools.js +126 -0
  85. package/dist/tools/contract.tools.js.map +1 -0
  86. package/dist/tools/defi.tools.d.ts +3 -0
  87. package/dist/tools/defi.tools.d.ts.map +1 -0
  88. package/dist/tools/defi.tools.js +425 -0
  89. package/dist/tools/defi.tools.js.map +1 -0
  90. package/dist/tools/endpoint.tools.d.ts +3 -0
  91. package/dist/tools/endpoint.tools.d.ts.map +1 -0
  92. package/dist/tools/endpoint.tools.js +157 -0
  93. package/dist/tools/endpoint.tools.js.map +1 -0
  94. package/dist/tools/index.d.ts +6 -0
  95. package/dist/tools/index.d.ts.map +1 -0
  96. package/dist/tools/index.js +52 -0
  97. package/dist/tools/index.js.map +1 -0
  98. package/dist/tools/nft.tools.d.ts +3 -0
  99. package/dist/tools/nft.tools.d.ts.map +1 -0
  100. package/dist/tools/nft.tools.js +154 -0
  101. package/dist/tools/nft.tools.js.map +1 -0
  102. package/dist/tools/openrouter.tools.d.ts +3 -0
  103. package/dist/tools/openrouter.tools.d.ts.map +1 -0
  104. package/dist/tools/openrouter.tools.js +664 -0
  105. package/dist/tools/openrouter.tools.js.map +1 -0
  106. package/dist/tools/query.tools.d.ts +3 -0
  107. package/dist/tools/query.tools.d.ts.map +1 -0
  108. package/dist/tools/query.tools.js +209 -0
  109. package/dist/tools/query.tools.js.map +1 -0
  110. package/dist/tools/sbtc.tools.d.ts +3 -0
  111. package/dist/tools/sbtc.tools.d.ts.map +1 -0
  112. package/dist/tools/sbtc.tools.js +103 -0
  113. package/dist/tools/sbtc.tools.js.map +1 -0
  114. package/dist/tools/scaffold.tools.d.ts +3 -0
  115. package/dist/tools/scaffold.tools.d.ts.map +1 -0
  116. package/dist/tools/scaffold.tools.js +216 -0
  117. package/dist/tools/scaffold.tools.js.map +1 -0
  118. package/dist/tools/stacking.tools.d.ts +3 -0
  119. package/dist/tools/stacking.tools.d.ts.map +1 -0
  120. package/dist/tools/stacking.tools.js +112 -0
  121. package/dist/tools/stacking.tools.js.map +1 -0
  122. package/dist/tools/tokens.tools.d.ts +3 -0
  123. package/dist/tools/tokens.tools.d.ts.map +1 -0
  124. package/dist/tools/tokens.tools.js +154 -0
  125. package/dist/tools/tokens.tools.js.map +1 -0
  126. package/dist/tools/transfer.tools.d.ts +3 -0
  127. package/dist/tools/transfer.tools.d.ts.map +1 -0
  128. package/dist/tools/transfer.tools.js +62 -0
  129. package/dist/tools/transfer.tools.js.map +1 -0
  130. package/dist/tools/wallet-management.tools.d.ts +6 -0
  131. package/dist/tools/wallet-management.tools.d.ts.map +1 -0
  132. package/dist/tools/wallet-management.tools.js +390 -0
  133. package/dist/tools/wallet-management.tools.js.map +1 -0
  134. package/dist/tools/wallet.tools.d.ts +3 -0
  135. package/dist/tools/wallet.tools.d.ts.map +1 -0
  136. package/dist/tools/wallet.tools.js +105 -0
  137. package/dist/tools/wallet.tools.js.map +1 -0
  138. package/dist/transactions/builder.d.ts +56 -0
  139. package/dist/transactions/builder.d.ts.map +1 -0
  140. package/dist/transactions/builder.js +134 -0
  141. package/dist/transactions/builder.js.map +1 -0
  142. package/dist/transactions/clarity-values.d.ts +67 -0
  143. package/dist/transactions/clarity-values.d.ts.map +1 -0
  144. package/dist/transactions/clarity-values.js +169 -0
  145. package/dist/transactions/clarity-values.js.map +1 -0
  146. package/dist/transactions/post-conditions.d.ts +27 -0
  147. package/dist/transactions/post-conditions.d.ts.map +1 -0
  148. package/dist/transactions/post-conditions.js +101 -0
  149. package/dist/transactions/post-conditions.js.map +1 -0
  150. package/dist/utils/encryption.d.ts +33 -0
  151. package/dist/utils/encryption.d.ts.map +1 -0
  152. package/dist/utils/encryption.js +110 -0
  153. package/dist/utils/encryption.js.map +1 -0
  154. package/dist/utils/errors.d.ts +84 -0
  155. package/dist/utils/errors.d.ts.map +1 -0
  156. package/dist/utils/errors.js +132 -0
  157. package/dist/utils/errors.js.map +1 -0
  158. package/dist/utils/formatting.d.ts +51 -0
  159. package/dist/utils/formatting.d.ts.map +1 -0
  160. package/dist/utils/formatting.js +114 -0
  161. package/dist/utils/formatting.js.map +1 -0
  162. package/dist/utils/index.d.ts +6 -0
  163. package/dist/utils/index.d.ts.map +1 -0
  164. package/dist/utils/index.js +6 -0
  165. package/dist/utils/index.js.map +1 -0
  166. package/dist/utils/storage.d.ts +90 -0
  167. package/dist/utils/storage.d.ts.map +1 -0
  168. package/dist/utils/storage.js +196 -0
  169. package/dist/utils/storage.js.map +1 -0
  170. package/dist/utils/validation.d.ts +67 -0
  171. package/dist/utils/validation.d.ts.map +1 -0
  172. package/dist/utils/validation.js +74 -0
  173. package/dist/utils/validation.js.map +1 -0
  174. package/dist/wallet.d.ts +86 -0
  175. package/dist/wallet.d.ts.map +1 -0
  176. package/dist/wallet.js +279 -0
  177. package/dist/wallet.js.map +1 -0
  178. package/package.json +58 -0
@@ -0,0 +1,134 @@
1
+ import { makeSTXTokenTransfer, makeContractCall, makeContractDeploy, broadcastTransaction, PostConditionMode, } from "@stacks/transactions";
2
+ import { getStacksNetwork, getApiBaseUrl } from "../config/networks.js";
3
+ /**
4
+ * Transfer STX tokens to a recipient
5
+ */
6
+ export async function transferStx(account, recipient, amount, memo) {
7
+ const networkName = getStacksNetwork(account.network);
8
+ const transaction = await makeSTXTokenTransfer({
9
+ recipient,
10
+ amount,
11
+ senderKey: account.privateKey,
12
+ network: networkName,
13
+ memo: memo || "",
14
+ });
15
+ const broadcastResponse = await broadcastTransaction({
16
+ transaction,
17
+ network: networkName,
18
+ });
19
+ if ("error" in broadcastResponse) {
20
+ throw new Error(`Broadcast failed: ${broadcastResponse.error} - ${broadcastResponse.reason}`);
21
+ }
22
+ return {
23
+ txid: broadcastResponse.txid,
24
+ rawTx: Buffer.from(transaction.serialize()).toString("hex"),
25
+ };
26
+ }
27
+ /**
28
+ * Call a smart contract function
29
+ */
30
+ export async function callContract(account, options) {
31
+ const networkName = getStacksNetwork(account.network);
32
+ const transaction = await makeContractCall({
33
+ contractAddress: options.contractAddress,
34
+ contractName: options.contractName,
35
+ functionName: options.functionName,
36
+ functionArgs: options.functionArgs,
37
+ senderKey: account.privateKey,
38
+ network: networkName,
39
+ postConditionMode: options.postConditionMode || PostConditionMode.Deny,
40
+ postConditions: options.postConditions || [],
41
+ });
42
+ const broadcastResponse = await broadcastTransaction({
43
+ transaction,
44
+ network: networkName,
45
+ });
46
+ if ("error" in broadcastResponse) {
47
+ throw new Error(`Broadcast failed: ${broadcastResponse.error} - ${broadcastResponse.reason}`);
48
+ }
49
+ return {
50
+ txid: broadcastResponse.txid,
51
+ rawTx: Buffer.from(transaction.serialize()).toString("hex"),
52
+ };
53
+ }
54
+ /**
55
+ * Deploy a smart contract
56
+ */
57
+ export async function deployContract(account, options) {
58
+ const networkName = getStacksNetwork(account.network);
59
+ const transaction = await makeContractDeploy({
60
+ contractName: options.contractName,
61
+ codeBody: options.codeBody,
62
+ senderKey: account.privateKey,
63
+ network: networkName,
64
+ });
65
+ const broadcastResponse = await broadcastTransaction({
66
+ transaction,
67
+ network: networkName,
68
+ });
69
+ if ("error" in broadcastResponse) {
70
+ throw new Error(`Broadcast failed: ${broadcastResponse.error} - ${broadcastResponse.reason}`);
71
+ }
72
+ return {
73
+ txid: broadcastResponse.txid,
74
+ rawTx: Buffer.from(transaction.serialize()).toString("hex"),
75
+ };
76
+ }
77
+ /**
78
+ * Sign a transaction without broadcasting (for offline signing)
79
+ */
80
+ export async function signStxTransfer(account, recipient, amount, memo) {
81
+ const networkName = getStacksNetwork(account.network);
82
+ const transaction = await makeSTXTokenTransfer({
83
+ recipient,
84
+ amount,
85
+ senderKey: account.privateKey,
86
+ network: networkName,
87
+ memo: memo || "",
88
+ });
89
+ return {
90
+ signedTx: Buffer.from(transaction.serialize()).toString("hex"),
91
+ txid: transaction.txid(),
92
+ };
93
+ }
94
+ /**
95
+ * Sign a contract call without broadcasting
96
+ */
97
+ export async function signContractCall(account, options) {
98
+ const networkName = getStacksNetwork(account.network);
99
+ const transaction = await makeContractCall({
100
+ contractAddress: options.contractAddress,
101
+ contractName: options.contractName,
102
+ functionName: options.functionName,
103
+ functionArgs: options.functionArgs,
104
+ senderKey: account.privateKey,
105
+ network: networkName,
106
+ postConditionMode: options.postConditionMode || PostConditionMode.Deny,
107
+ postConditions: options.postConditions || [],
108
+ });
109
+ return {
110
+ signedTx: Buffer.from(transaction.serialize()).toString("hex"),
111
+ txid: transaction.txid(),
112
+ };
113
+ }
114
+ /**
115
+ * Broadcast a pre-signed transaction
116
+ */
117
+ export async function broadcastSignedTransaction(signedTx, network) {
118
+ const baseUrl = getApiBaseUrl(network);
119
+ const txBuffer = Buffer.from(signedTx, "hex");
120
+ const response = await fetch(`${baseUrl}/v2/transactions`, {
121
+ method: "POST",
122
+ headers: {
123
+ "Content-Type": "application/octet-stream",
124
+ },
125
+ body: txBuffer,
126
+ });
127
+ if (!response.ok) {
128
+ const errorText = await response.text();
129
+ throw new Error(`Broadcast failed: ${response.statusText} - ${errorText}`);
130
+ }
131
+ const txid = await response.text();
132
+ return { txid: txid.replace(/"/g, "") };
133
+ }
134
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/transactions/builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { ClarityValue } from "@stacks/transactions";
2
+ /**
3
+ * Parse a JSON argument into a ClarityValue
4
+ * Supports: string, number, boolean, principal, buffer, list, tuple, optional
5
+ */
6
+ export declare function parseArgToClarityValue(arg: unknown): ClarityValue;
7
+ /**
8
+ * Convert a ClarityValue to a human-readable string
9
+ */
10
+ export declare function clarityToString(cv: ClarityValue): string;
11
+ /**
12
+ * Convert a ClarityValue to JSON
13
+ */
14
+ export declare function clarityToJSON(cv: ClarityValue): unknown;
15
+ /**
16
+ * Serialize a ClarityValue to hex string
17
+ */
18
+ export declare function serializeClarityValue(cv: ClarityValue): string;
19
+ /**
20
+ * Deserialize a hex string to ClarityValue
21
+ */
22
+ export declare function deserializeClarityValue(hex: string): ClarityValue;
23
+ /**
24
+ * Create a uint ClarityValue from a number or string
25
+ */
26
+ export declare function createUint(value: number | string | bigint): ClarityValue;
27
+ /**
28
+ * Create an int ClarityValue from a number or string
29
+ */
30
+ export declare function createInt(value: number | string | bigint): ClarityValue;
31
+ /**
32
+ * Create a principal ClarityValue
33
+ */
34
+ export declare function createPrincipal(address: string): ClarityValue;
35
+ /**
36
+ * Create a string-ascii ClarityValue
37
+ */
38
+ export declare function createStringAscii(str: string): ClarityValue;
39
+ /**
40
+ * Create a string-utf8 ClarityValue
41
+ */
42
+ export declare function createStringUtf8(str: string): ClarityValue;
43
+ /**
44
+ * Create a bool ClarityValue
45
+ */
46
+ export declare function createBool(value: boolean): ClarityValue;
47
+ /**
48
+ * Create a buffer ClarityValue from hex string
49
+ */
50
+ export declare function createBuffer(hex: string): ClarityValue;
51
+ /**
52
+ * Create a list ClarityValue
53
+ */
54
+ export declare function createList(items: ClarityValue[]): ClarityValue;
55
+ /**
56
+ * Create a tuple ClarityValue
57
+ */
58
+ export declare function createTuple(data: Record<string, ClarityValue>): ClarityValue;
59
+ /**
60
+ * Create a none ClarityValue
61
+ */
62
+ export declare function createNone(): ClarityValue;
63
+ /**
64
+ * Create a some ClarityValue
65
+ */
66
+ export declare function createSome(value: ClarityValue): ClarityValue;
67
+ //# sourceMappingURL=clarity-values.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clarity-values.d.ts","sourceRoot":"","sources":["../../src/transactions/clarity-values.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAgBb,MAAM,sBAAsB,CAAC;AAE9B;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAuFjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM,CAExD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAEvD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,YAAY,GAAG,MAAM,CAE9D;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAEjE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,CAExE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,CAEvE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAE7D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAE3D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAE1D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CAEvD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAEtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,YAAY,CAE9D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,YAAY,CAE5E;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,YAAY,CAEzC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CAE5D"}
@@ -0,0 +1,169 @@
1
+ import { stringAsciiCV, stringUtf8CV, intCV, uintCV, boolCV, principalCV, bufferCV, listCV, tupleCV, noneCV, someCV, cvToString, cvToJSON, deserializeCV, serializeCV, } from "@stacks/transactions";
2
+ /**
3
+ * Parse a JSON argument into a ClarityValue
4
+ * Supports: string, number, boolean, principal, buffer, list, tuple, optional
5
+ */
6
+ export function parseArgToClarityValue(arg) {
7
+ if (arg === null || arg === undefined) {
8
+ return noneCV();
9
+ }
10
+ if (typeof arg === "boolean") {
11
+ return boolCV(arg);
12
+ }
13
+ if (typeof arg === "number") {
14
+ if (Number.isInteger(arg)) {
15
+ return arg >= 0 ? uintCV(arg) : intCV(arg);
16
+ }
17
+ throw new Error("Floating point numbers not supported in Clarity");
18
+ }
19
+ if (typeof arg === "string") {
20
+ // Check if it's a principal (Stacks address pattern)
21
+ if (arg.match(/^S[A-Z0-9]{38,}(\.[a-zA-Z][a-zA-Z0-9-]*)?$/)) {
22
+ return principalCV(arg);
23
+ }
24
+ // Default to string-utf8
25
+ return stringUtf8CV(arg);
26
+ }
27
+ if (Buffer.isBuffer(arg) || arg instanceof Uint8Array) {
28
+ return bufferCV(arg);
29
+ }
30
+ if (Array.isArray(arg)) {
31
+ return listCV(arg.map(parseArgToClarityValue));
32
+ }
33
+ if (typeof arg === "object") {
34
+ const obj = arg;
35
+ // Check for typed values with explicit type field
36
+ if ("type" in obj && "value" in obj) {
37
+ const typedArg = obj;
38
+ switch (typedArg.type) {
39
+ case "uint":
40
+ return uintCV(BigInt(typedArg.value));
41
+ case "int":
42
+ return intCV(BigInt(typedArg.value));
43
+ case "string-ascii":
44
+ return stringAsciiCV(typedArg.value);
45
+ case "string-utf8":
46
+ return stringUtf8CV(typedArg.value);
47
+ case "bool":
48
+ return boolCV(typedArg.value);
49
+ case "principal":
50
+ return principalCV(typedArg.value);
51
+ case "buffer":
52
+ return bufferCV(Buffer.from(typedArg.value, "hex"));
53
+ case "none":
54
+ return noneCV();
55
+ case "some":
56
+ return someCV(parseArgToClarityValue(typedArg.value));
57
+ case "list":
58
+ return listCV(typedArg.value.map(parseArgToClarityValue));
59
+ case "tuple": {
60
+ const tupleData = {};
61
+ for (const [key, val] of Object.entries(typedArg.value)) {
62
+ tupleData[key] = parseArgToClarityValue(val);
63
+ }
64
+ return tupleCV(tupleData);
65
+ }
66
+ default:
67
+ throw new Error(`Unknown type: ${typedArg.type}`);
68
+ }
69
+ }
70
+ // Treat as tuple
71
+ const tupleData = {};
72
+ for (const [key, val] of Object.entries(obj)) {
73
+ tupleData[key] = parseArgToClarityValue(val);
74
+ }
75
+ return tupleCV(tupleData);
76
+ }
77
+ throw new Error(`Cannot convert argument to ClarityValue: ${JSON.stringify(arg)}`);
78
+ }
79
+ /**
80
+ * Convert a ClarityValue to a human-readable string
81
+ */
82
+ export function clarityToString(cv) {
83
+ return cvToString(cv);
84
+ }
85
+ /**
86
+ * Convert a ClarityValue to JSON
87
+ */
88
+ export function clarityToJSON(cv) {
89
+ return cvToJSON(cv);
90
+ }
91
+ /**
92
+ * Serialize a ClarityValue to hex string
93
+ */
94
+ export function serializeClarityValue(cv) {
95
+ return Buffer.from(serializeCV(cv)).toString("hex");
96
+ }
97
+ /**
98
+ * Deserialize a hex string to ClarityValue
99
+ */
100
+ export function deserializeClarityValue(hex) {
101
+ return deserializeCV(Buffer.from(hex, "hex"));
102
+ }
103
+ /**
104
+ * Create a uint ClarityValue from a number or string
105
+ */
106
+ export function createUint(value) {
107
+ return uintCV(BigInt(value));
108
+ }
109
+ /**
110
+ * Create an int ClarityValue from a number or string
111
+ */
112
+ export function createInt(value) {
113
+ return intCV(BigInt(value));
114
+ }
115
+ /**
116
+ * Create a principal ClarityValue
117
+ */
118
+ export function createPrincipal(address) {
119
+ return principalCV(address);
120
+ }
121
+ /**
122
+ * Create a string-ascii ClarityValue
123
+ */
124
+ export function createStringAscii(str) {
125
+ return stringAsciiCV(str);
126
+ }
127
+ /**
128
+ * Create a string-utf8 ClarityValue
129
+ */
130
+ export function createStringUtf8(str) {
131
+ return stringUtf8CV(str);
132
+ }
133
+ /**
134
+ * Create a bool ClarityValue
135
+ */
136
+ export function createBool(value) {
137
+ return boolCV(value);
138
+ }
139
+ /**
140
+ * Create a buffer ClarityValue from hex string
141
+ */
142
+ export function createBuffer(hex) {
143
+ return bufferCV(Buffer.from(hex, "hex"));
144
+ }
145
+ /**
146
+ * Create a list ClarityValue
147
+ */
148
+ export function createList(items) {
149
+ return listCV(items);
150
+ }
151
+ /**
152
+ * Create a tuple ClarityValue
153
+ */
154
+ export function createTuple(data) {
155
+ return tupleCV(data);
156
+ }
157
+ /**
158
+ * Create a none ClarityValue
159
+ */
160
+ export function createNone() {
161
+ return noneCV();
162
+ }
163
+ /**
164
+ * Create a some ClarityValue
165
+ */
166
+ export function createSome(value) {
167
+ return someCV(value);
168
+ }
169
+ //# sourceMappingURL=clarity-values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clarity-values.js","sourceRoot":"","sources":["../../src/transactions/clarity-values.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { PostCondition, PostConditionMode } from "@stacks/transactions";
2
+ export { PostConditionMode };
3
+ /**
4
+ * Create an STX post condition for a standard principal
5
+ */
6
+ export declare function createStxPostCondition(address: string, conditionCode: "eq" | "gt" | "gte" | "lt" | "lte", amount: bigint): PostCondition;
7
+ /**
8
+ * Create an STX post condition for a contract principal
9
+ */
10
+ export declare function createContractStxPostCondition(contractId: string, conditionCode: "eq" | "gt" | "gte" | "lt" | "lte", amount: bigint): PostCondition;
11
+ /**
12
+ * Create a fungible token post condition for a standard principal
13
+ */
14
+ export declare function createFungiblePostCondition(address: string, tokenContract: string, tokenName: string, conditionCode: "eq" | "gt" | "gte" | "lt" | "lte", amount: bigint): PostCondition;
15
+ /**
16
+ * Create a fungible token post condition for a contract principal
17
+ */
18
+ export declare function createContractFungiblePostCondition(senderContract: string, tokenContract: string, tokenName: string, conditionCode: "eq" | "gt" | "gte" | "lt" | "lte", amount: bigint): PostCondition;
19
+ /**
20
+ * Create a non-fungible token post condition for sending an NFT
21
+ */
22
+ export declare function createNftSendPostCondition(address: string, nftContract: string, nftName: string, tokenId: bigint | number): PostCondition;
23
+ /**
24
+ * Create a non-fungible token post condition for not sending an NFT
25
+ */
26
+ export declare function createNftNotSendPostCondition(address: string, nftContract: string, nftName: string, tokenId: bigint | number): PostCondition;
27
+ //# sourceMappingURL=post-conditions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-conditions.d.ts","sourceRoot":"","sources":["../../src/transactions/post-conditions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,iBAAiB,EAGlB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAW7B;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,EACjD,MAAM,EAAE,MAAM,GACb,aAAa,CAef;AAED;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,MAAM,EAClB,aAAa,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,EACjD,MAAM,EAAE,MAAM,GACb,aAAa,CAef;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,EACjD,MAAM,EAAE,MAAM,GACb,aAAa,CAiBf;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CACjD,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,KAAK,EACjD,MAAM,EAAE,MAAM,GACb,aAAa,CAiBf;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,MAAM,GACvB,aAAa,CAGf;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,MAAM,GACvB,aAAa,CAGf"}
@@ -0,0 +1,101 @@
1
+ import { PostConditionMode, Pc, uintCV, } from "@stacks/transactions";
2
+ export { PostConditionMode };
3
+ function asContractId(contractId) {
4
+ if (!contractId.includes(".")) {
5
+ throw new Error(`Invalid contract ID: ${contractId}`);
6
+ }
7
+ return contractId;
8
+ }
9
+ /**
10
+ * Create an STX post condition for a standard principal
11
+ */
12
+ export function createStxPostCondition(address, conditionCode, amount) {
13
+ switch (conditionCode) {
14
+ case "eq":
15
+ return Pc.principal(address).willSendEq(amount).ustx();
16
+ case "gt":
17
+ return Pc.principal(address).willSendGt(amount).ustx();
18
+ case "gte":
19
+ return Pc.principal(address).willSendGte(amount).ustx();
20
+ case "lt":
21
+ return Pc.principal(address).willSendLt(amount).ustx();
22
+ case "lte":
23
+ return Pc.principal(address).willSendLte(amount).ustx();
24
+ default:
25
+ return Pc.principal(address).willSendEq(amount).ustx();
26
+ }
27
+ }
28
+ /**
29
+ * Create an STX post condition for a contract principal
30
+ */
31
+ export function createContractStxPostCondition(contractId, conditionCode, amount) {
32
+ switch (conditionCode) {
33
+ case "eq":
34
+ return Pc.principal(contractId).willSendEq(amount).ustx();
35
+ case "gt":
36
+ return Pc.principal(contractId).willSendGt(amount).ustx();
37
+ case "gte":
38
+ return Pc.principal(contractId).willSendGte(amount).ustx();
39
+ case "lt":
40
+ return Pc.principal(contractId).willSendLt(amount).ustx();
41
+ case "lte":
42
+ return Pc.principal(contractId).willSendLte(amount).ustx();
43
+ default:
44
+ return Pc.principal(contractId).willSendEq(amount).ustx();
45
+ }
46
+ }
47
+ /**
48
+ * Create a fungible token post condition for a standard principal
49
+ */
50
+ export function createFungiblePostCondition(address, tokenContract, tokenName, conditionCode, amount) {
51
+ const contract = asContractId(tokenContract);
52
+ switch (conditionCode) {
53
+ case "eq":
54
+ return Pc.principal(address).willSendEq(amount).ft(contract, tokenName);
55
+ case "gt":
56
+ return Pc.principal(address).willSendGt(amount).ft(contract, tokenName);
57
+ case "gte":
58
+ return Pc.principal(address).willSendGte(amount).ft(contract, tokenName);
59
+ case "lt":
60
+ return Pc.principal(address).willSendLt(amount).ft(contract, tokenName);
61
+ case "lte":
62
+ return Pc.principal(address).willSendLte(amount).ft(contract, tokenName);
63
+ default:
64
+ return Pc.principal(address).willSendEq(amount).ft(contract, tokenName);
65
+ }
66
+ }
67
+ /**
68
+ * Create a fungible token post condition for a contract principal
69
+ */
70
+ export function createContractFungiblePostCondition(senderContract, tokenContract, tokenName, conditionCode, amount) {
71
+ const contract = asContractId(tokenContract);
72
+ switch (conditionCode) {
73
+ case "eq":
74
+ return Pc.principal(senderContract).willSendEq(amount).ft(contract, tokenName);
75
+ case "gt":
76
+ return Pc.principal(senderContract).willSendGt(amount).ft(contract, tokenName);
77
+ case "gte":
78
+ return Pc.principal(senderContract).willSendGte(amount).ft(contract, tokenName);
79
+ case "lt":
80
+ return Pc.principal(senderContract).willSendLt(amount).ft(contract, tokenName);
81
+ case "lte":
82
+ return Pc.principal(senderContract).willSendLte(amount).ft(contract, tokenName);
83
+ default:
84
+ return Pc.principal(senderContract).willSendEq(amount).ft(contract, tokenName);
85
+ }
86
+ }
87
+ /**
88
+ * Create a non-fungible token post condition for sending an NFT
89
+ */
90
+ export function createNftSendPostCondition(address, nftContract, nftName, tokenId) {
91
+ const contract = asContractId(nftContract);
92
+ return Pc.principal(address).willSendAsset().nft(contract, nftName, uintCV(tokenId));
93
+ }
94
+ /**
95
+ * Create a non-fungible token post condition for not sending an NFT
96
+ */
97
+ export function createNftNotSendPostCondition(address, nftContract, nftName, tokenId) {
98
+ const contract = asContractId(nftContract);
99
+ return Pc.principal(address).willNotSendAsset().nft(contract, nftName, uintCV(tokenId));
100
+ }
101
+ //# sourceMappingURL=post-conditions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"post-conditions.js","sourceRoot":"","sources":["../../src/transactions/post-conditions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Encrypted data structure with all parameters needed for decryption
3
+ */
4
+ export interface EncryptedData {
5
+ ciphertext: string;
6
+ iv: string;
7
+ authTag: string;
8
+ salt: string;
9
+ scryptParams: {
10
+ N: number;
11
+ r: number;
12
+ p: number;
13
+ keyLen: number;
14
+ };
15
+ version: number;
16
+ }
17
+ /**
18
+ * Encrypt plaintext with password using AES-256-GCM
19
+ */
20
+ export declare function encrypt(plaintext: string, password: string): Promise<EncryptedData>;
21
+ /**
22
+ * Decrypt ciphertext with password using AES-256-GCM
23
+ */
24
+ export declare function decrypt(encrypted: EncryptedData, password: string): Promise<string>;
25
+ /**
26
+ * Generate cryptographically secure random bytes
27
+ */
28
+ export declare function randomBytes(length: number): Buffer;
29
+ /**
30
+ * Generate a random UUID for wallet IDs
31
+ */
32
+ export declare function generateWalletId(): string;
33
+ //# sourceMappingURL=encryption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../../src/utils/encryption.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE;QACZ,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;CACjB;AAqCD;;GAEG;AACH,wBAAsB,OAAO,CAC3B,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,CAAC,CAwBxB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAC3B,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAuBjB;AA+BD;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC"}