@kaspacom/kcc20-tx-builder 0.1.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 (234) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +104 -0
  3. package/artifacts/KCC20.placeholder.json +77479 -0
  4. package/artifacts/KCC20FeeTicket.placeholder.json +16846 -0
  5. package/artifacts/KCC20Orderbook.placeholder.json +78001 -0
  6. package/artifacts/KCC20Vesting.placeholder.json +4298 -0
  7. package/artifacts/KCC20Wrapper.placeholder.json +12246 -0
  8. package/dist/abi.d.ts +44 -0
  9. package/dist/abi.d.ts.map +1 -0
  10. package/dist/abi.js +336 -0
  11. package/dist/abi.js.map +1 -0
  12. package/dist/action-source-resolver.d.ts +80 -0
  13. package/dist/action-source-resolver.d.ts.map +1 -0
  14. package/dist/action-source-resolver.js +412 -0
  15. package/dist/action-source-resolver.js.map +1 -0
  16. package/dist/artifacts.d.ts +14 -0
  17. package/dist/artifacts.d.ts.map +1 -0
  18. package/dist/artifacts.js +44 -0
  19. package/dist/artifacts.js.map +1 -0
  20. package/dist/builder.d.ts +12 -0
  21. package/dist/builder.d.ts.map +1 -0
  22. package/dist/builder.js +18 -0
  23. package/dist/builder.js.map +1 -0
  24. package/dist/cjs/abi.d.ts +43 -0
  25. package/dist/cjs/abi.js +361 -0
  26. package/dist/cjs/abi.js.map +1 -0
  27. package/dist/cjs/action-source-resolver.d.ts +79 -0
  28. package/dist/cjs/action-source-resolver.js +435 -0
  29. package/dist/cjs/action-source-resolver.js.map +1 -0
  30. package/dist/cjs/artifacts.d.ts +13 -0
  31. package/dist/cjs/artifacts.js +51 -0
  32. package/dist/cjs/artifacts.js.map +1 -0
  33. package/dist/cjs/builder.d.ts +11 -0
  34. package/dist/cjs/builder.js +22 -0
  35. package/dist/cjs/builder.js.map +1 -0
  36. package/dist/cjs/deploy-operation.d.ts +103 -0
  37. package/dist/cjs/deploy-operation.js +335 -0
  38. package/dist/cjs/deploy-operation.js.map +1 -0
  39. package/dist/cjs/encoding.d.ts +5 -0
  40. package/dist/cjs/encoding.js +51 -0
  41. package/dist/cjs/encoding.js.map +1 -0
  42. package/dist/cjs/engine.d.ts +40 -0
  43. package/dist/cjs/engine.js +8972 -0
  44. package/dist/cjs/engine.js.map +1 -0
  45. package/dist/cjs/errors.d.ts +7 -0
  46. package/dist/cjs/errors.js +23 -0
  47. package/dist/cjs/errors.js.map +1 -0
  48. package/dist/cjs/fee-ticket-operation.d.ts +204 -0
  49. package/dist/cjs/fee-ticket-operation.js +327 -0
  50. package/dist/cjs/fee-ticket-operation.js.map +1 -0
  51. package/dist/cjs/index.d.ts +27 -0
  52. package/dist/cjs/index.js +45 -0
  53. package/dist/cjs/index.js.map +1 -0
  54. package/dist/cjs/ladder-limit-orders.d.ts +41 -0
  55. package/dist/cjs/ladder-limit-orders.js +129 -0
  56. package/dist/cjs/ladder-limit-orders.js.map +1 -0
  57. package/dist/cjs/mint-availability-operation.d.ts +56 -0
  58. package/dist/cjs/mint-availability-operation.js +95 -0
  59. package/dist/cjs/mint-availability-operation.js.map +1 -0
  60. package/dist/cjs/models.d.ts +90 -0
  61. package/dist/cjs/models.js +6 -0
  62. package/dist/cjs/models.js.map +1 -0
  63. package/dist/cjs/operations.d.ts +6 -0
  64. package/dist/cjs/operations.js +41 -0
  65. package/dist/cjs/operations.js.map +1 -0
  66. package/dist/cjs/package.json +1 -0
  67. package/dist/cjs/paid-mint-amount.d.ts +69 -0
  68. package/dist/cjs/paid-mint-amount.js +281 -0
  69. package/dist/cjs/paid-mint-amount.js.map +1 -0
  70. package/dist/cjs/protocol.d.ts +21 -0
  71. package/dist/cjs/protocol.js +25 -0
  72. package/dist/cjs/protocol.js.map +1 -0
  73. package/dist/cjs/runtime.d.ts +27 -0
  74. package/dist/cjs/runtime.js +3 -0
  75. package/dist/cjs/runtime.js.map +1 -0
  76. package/dist/cjs/sale-common.d.ts +287 -0
  77. package/dist/cjs/sale-common.js +928 -0
  78. package/dist/cjs/sale-common.js.map +1 -0
  79. package/dist/cjs/source-provider.d.ts +11 -0
  80. package/dist/cjs/source-provider.js +3 -0
  81. package/dist/cjs/source-provider.js.map +1 -0
  82. package/dist/cjs/source-validation.d.ts +9 -0
  83. package/dist/cjs/source-validation.js +33 -0
  84. package/dist/cjs/source-validation.js.map +1 -0
  85. package/dist/cjs/token-amount.d.ts +31 -0
  86. package/dist/cjs/token-amount.js +252 -0
  87. package/dist/cjs/token-amount.js.map +1 -0
  88. package/dist/cjs/token-operation.d.ts +135 -0
  89. package/dist/cjs/token-operation.js +236 -0
  90. package/dist/cjs/token-operation.js.map +1 -0
  91. package/dist/cjs/trade-fee.d.ts +60 -0
  92. package/dist/cjs/trade-fee.js +185 -0
  93. package/dist/cjs/trade-fee.js.map +1 -0
  94. package/dist/cjs/trading-operation.d.ts +212 -0
  95. package/dist/cjs/trading-operation.js +587 -0
  96. package/dist/cjs/trading-operation.js.map +1 -0
  97. package/dist/cjs/verify-operation.d.ts +79 -0
  98. package/dist/cjs/verify-operation.js +246 -0
  99. package/dist/cjs/verify-operation.js.map +1 -0
  100. package/dist/cjs/wallet-operation.d.ts +52 -0
  101. package/dist/cjs/wallet-operation.js +58 -0
  102. package/dist/cjs/wallet-operation.js.map +1 -0
  103. package/dist/cjs/wasm-provider.d.ts +15 -0
  104. package/dist/cjs/wasm-provider.js +20 -0
  105. package/dist/cjs/wasm-provider.js.map +1 -0
  106. package/dist/cjs/wrapper-operation.d.ts +196 -0
  107. package/dist/cjs/wrapper-operation.js +317 -0
  108. package/dist/cjs/wrapper-operation.js.map +1 -0
  109. package/dist/deploy-operation.d.ts +104 -0
  110. package/dist/deploy-operation.d.ts.map +1 -0
  111. package/dist/deploy-operation.js +327 -0
  112. package/dist/deploy-operation.js.map +1 -0
  113. package/dist/encoding.d.ts +6 -0
  114. package/dist/encoding.d.ts.map +1 -0
  115. package/dist/encoding.js +44 -0
  116. package/dist/encoding.js.map +1 -0
  117. package/dist/engine.d.ts +41 -0
  118. package/dist/engine.d.ts.map +1 -0
  119. package/dist/engine.js +8969 -0
  120. package/dist/engine.js.map +1 -0
  121. package/dist/errors.d.ts +8 -0
  122. package/dist/errors.d.ts.map +1 -0
  123. package/dist/errors.js +18 -0
  124. package/dist/errors.js.map +1 -0
  125. package/dist/fee-ticket-operation.d.ts +205 -0
  126. package/dist/fee-ticket-operation.d.ts.map +1 -0
  127. package/dist/fee-ticket-operation.js +320 -0
  128. package/dist/fee-ticket-operation.js.map +1 -0
  129. package/dist/index.d.ts +28 -0
  130. package/dist/index.d.ts.map +1 -0
  131. package/dist/index.js +28 -0
  132. package/dist/index.js.map +1 -0
  133. package/dist/ladder-limit-orders.d.ts +42 -0
  134. package/dist/ladder-limit-orders.d.ts.map +1 -0
  135. package/dist/ladder-limit-orders.js +121 -0
  136. package/dist/ladder-limit-orders.js.map +1 -0
  137. package/dist/mint-availability-operation.d.ts +57 -0
  138. package/dist/mint-availability-operation.d.ts.map +1 -0
  139. package/dist/mint-availability-operation.js +91 -0
  140. package/dist/mint-availability-operation.js.map +1 -0
  141. package/dist/models.d.ts +91 -0
  142. package/dist/models.d.ts.map +1 -0
  143. package/dist/models.js +3 -0
  144. package/dist/models.js.map +1 -0
  145. package/dist/operations.d.ts +7 -0
  146. package/dist/operations.d.ts.map +1 -0
  147. package/dist/operations.js +36 -0
  148. package/dist/operations.js.map +1 -0
  149. package/dist/paid-mint-amount.d.ts +70 -0
  150. package/dist/paid-mint-amount.d.ts.map +1 -0
  151. package/dist/paid-mint-amount.js +268 -0
  152. package/dist/paid-mint-amount.js.map +1 -0
  153. package/dist/protocol.d.ts +22 -0
  154. package/dist/protocol.d.ts.map +1 -0
  155. package/dist/protocol.js +22 -0
  156. package/dist/protocol.js.map +1 -0
  157. package/dist/runtime.d.ts +28 -0
  158. package/dist/runtime.d.ts.map +1 -0
  159. package/dist/runtime.js +2 -0
  160. package/dist/runtime.js.map +1 -0
  161. package/dist/sale-common.d.ts +288 -0
  162. package/dist/sale-common.d.ts.map +1 -0
  163. package/dist/sale-common.js +844 -0
  164. package/dist/sale-common.js.map +1 -0
  165. package/dist/source-provider.d.ts +12 -0
  166. package/dist/source-provider.d.ts.map +1 -0
  167. package/dist/source-provider.js +2 -0
  168. package/dist/source-provider.js.map +1 -0
  169. package/dist/source-validation.d.ts +10 -0
  170. package/dist/source-validation.d.ts.map +1 -0
  171. package/dist/source-validation.js +28 -0
  172. package/dist/source-validation.js.map +1 -0
  173. package/dist/token-amount.d.ts +32 -0
  174. package/dist/token-amount.d.ts.map +1 -0
  175. package/dist/token-amount.js +237 -0
  176. package/dist/token-amount.js.map +1 -0
  177. package/dist/token-operation.d.ts +136 -0
  178. package/dist/token-operation.d.ts.map +1 -0
  179. package/dist/token-operation.js +231 -0
  180. package/dist/token-operation.js.map +1 -0
  181. package/dist/trade-fee.d.ts +61 -0
  182. package/dist/trade-fee.d.ts.map +1 -0
  183. package/dist/trade-fee.js +173 -0
  184. package/dist/trade-fee.js.map +1 -0
  185. package/dist/trading-operation.d.ts +213 -0
  186. package/dist/trading-operation.d.ts.map +1 -0
  187. package/dist/trading-operation.js +580 -0
  188. package/dist/trading-operation.js.map +1 -0
  189. package/dist/verify-operation.d.ts +80 -0
  190. package/dist/verify-operation.d.ts.map +1 -0
  191. package/dist/verify-operation.js +243 -0
  192. package/dist/verify-operation.js.map +1 -0
  193. package/dist/wallet-operation.d.ts +53 -0
  194. package/dist/wallet-operation.d.ts.map +1 -0
  195. package/dist/wallet-operation.js +55 -0
  196. package/dist/wallet-operation.js.map +1 -0
  197. package/dist/wasm-provider.d.ts +16 -0
  198. package/dist/wasm-provider.d.ts.map +1 -0
  199. package/dist/wasm-provider.js +17 -0
  200. package/dist/wasm-provider.js.map +1 -0
  201. package/dist/wrapper-operation.d.ts +197 -0
  202. package/dist/wrapper-operation.d.ts.map +1 -0
  203. package/dist/wrapper-operation.js +311 -0
  204. package/dist/wrapper-operation.js.map +1 -0
  205. package/index.d.ts +1 -0
  206. package/package.json +84 -0
  207. package/src/abi.ts +493 -0
  208. package/src/action-source-resolver.ts +660 -0
  209. package/src/artifacts.ts +87 -0
  210. package/src/builder.ts +37 -0
  211. package/src/deploy-operation.ts +458 -0
  212. package/src/encoding.ts +58 -0
  213. package/src/engine.ts +13226 -0
  214. package/src/errors.ts +35 -0
  215. package/src/fee-ticket-operation.ts +518 -0
  216. package/src/index.ts +27 -0
  217. package/src/ladder-limit-orders.ts +184 -0
  218. package/src/mint-availability-operation.ts +146 -0
  219. package/src/models.ts +103 -0
  220. package/src/operations.ts +46 -0
  221. package/src/paid-mint-amount.ts +402 -0
  222. package/src/protocol.ts +28 -0
  223. package/src/runtime.ts +29 -0
  224. package/src/sale-common.ts +1238 -0
  225. package/src/source-provider.ts +12 -0
  226. package/src/source-validation.ts +47 -0
  227. package/src/token-amount.ts +302 -0
  228. package/src/token-operation.ts +384 -0
  229. package/src/trade-fee.ts +264 -0
  230. package/src/trading-operation.ts +842 -0
  231. package/src/verify-operation.ts +400 -0
  232. package/src/wallet-operation.ts +86 -0
  233. package/src/wasm-provider.ts +32 -0
  234. package/src/wrapper-operation.ts +531 -0
@@ -0,0 +1,197 @@
1
+ import { type Kcc20IndexedCovenantUtxo, type Kcc20WrapperSourceInfo } from "./action-source-resolver.js";
2
+ export interface Kcc20WrapperWalletInfo {
3
+ walletAddress: string;
4
+ kcc20Owner: string;
5
+ }
6
+ export interface Kcc20WrapperMarketInfo {
7
+ wrapperId: string;
8
+ marketId: string;
9
+ canonicalTokenId?: string | null;
10
+ contractCanonicalTokenId?: string | null;
11
+ feeTicketId?: string | null;
12
+ }
13
+ export interface Kcc20WrapperActiveResolution {
14
+ selected?: Record<string, unknown> | null;
15
+ candidates?: Record<string, unknown>[];
16
+ ambiguous?: boolean;
17
+ activeCovenantId?: string | null;
18
+ }
19
+ export interface Kcc20WrapperHolderSummary {
20
+ aggregateAmount?: string;
21
+ maxSingleUtxoAmount?: string;
22
+ utxoCount?: number;
23
+ fragmented?: boolean;
24
+ maxSingleUtxoOutpoint?: string;
25
+ recommendedAction?: string;
26
+ }
27
+ export interface Kcc20BuildWrapOperationInput {
28
+ canonicalCovenantId: string;
29
+ wrappedMarketId: string;
30
+ tokenAmount: string;
31
+ priceScale?: string;
32
+ wrapper: Kcc20WrapperMarketInfo;
33
+ activeHolderUtxo: Record<string, unknown> | null;
34
+ activeHolderSummary?: Kcc20WrapperHolderSummary;
35
+ activeWrapperResolution?: Kcc20WrapperActiveResolution;
36
+ activeHolderNativeCovenantId?: string | null;
37
+ }
38
+ export interface Kcc20WrapOperationOptions {
39
+ network?: string;
40
+ createdAt?: string;
41
+ requestId?: string;
42
+ }
43
+ export declare function buildKcc20WrapTokenOperation(walletInfo: Kcc20WrapperWalletInfo, input: Kcc20BuildWrapOperationInput, options?: Kcc20WrapOperationOptions): {
44
+ requestId: string;
45
+ description: string;
46
+ payload: {
47
+ params: Record<string, unknown>;
48
+ signing: {
49
+ standard: string;
50
+ walletAction: string;
51
+ status: string;
52
+ builderKey: string;
53
+ builderStatus: string;
54
+ submitTransactionSupported: boolean;
55
+ missingDependencies: string[];
56
+ missingSources: never[];
57
+ };
58
+ sourceRequirements: Record<string, unknown>[];
59
+ signerRequirements: Record<string, unknown>[];
60
+ warnings: string[];
61
+ tokenIdentity?: Record<string, unknown> | undefined;
62
+ schema: string;
63
+ status: string;
64
+ requestId: string;
65
+ chain: string;
66
+ network: string;
67
+ createdAt: string;
68
+ owner: import("./wallet-operation.js").Kcc20WalletOperationOwner;
69
+ operation: string;
70
+ contract: string;
71
+ action: string;
72
+ };
73
+ };
74
+ export interface Kcc20BuildWrapFromSnapshotInput {
75
+ canonicalCovenantId: string;
76
+ tokenDecimals?: number | null;
77
+ wrappedMarketId: string;
78
+ tokenAmount: string;
79
+ wrapper: Kcc20WrapperSourceInfo;
80
+ canonicalTokenUtxos: readonly Kcc20IndexedCovenantUtxo[];
81
+ wrapperUtxos: readonly Kcc20IndexedCovenantUtxo[];
82
+ }
83
+ /**
84
+ * Resolves the native holder and wrapper controller in the shared package.
85
+ * The host only supplies a generic indexed snapshot; no action planner is
86
+ * consulted.
87
+ */
88
+ export declare function buildKcc20WrapTokenOperationFromSnapshot(walletInfo: Kcc20WrapperWalletInfo, input: Kcc20BuildWrapFromSnapshotInput, options?: Kcc20WrapOperationOptions): {
89
+ requestId: string;
90
+ description: string;
91
+ payload: {
92
+ params: Record<string, unknown>;
93
+ signing: {
94
+ standard: string;
95
+ walletAction: string;
96
+ status: string;
97
+ builderKey: string;
98
+ builderStatus: string;
99
+ submitTransactionSupported: boolean;
100
+ missingDependencies: string[];
101
+ missingSources: never[];
102
+ };
103
+ sourceRequirements: Record<string, unknown>[];
104
+ signerRequirements: Record<string, unknown>[];
105
+ warnings: string[];
106
+ tokenIdentity?: Record<string, unknown> | undefined;
107
+ schema: string;
108
+ status: string;
109
+ requestId: string;
110
+ chain: string;
111
+ network: string;
112
+ createdAt: string;
113
+ owner: import("./wallet-operation.js").Kcc20WalletOperationOwner;
114
+ operation: string;
115
+ contract: string;
116
+ action: string;
117
+ };
118
+ };
119
+ export interface Kcc20BuildUnwrapFromSnapshotInput {
120
+ canonicalCovenantId: string;
121
+ tokenDecimals?: number | null;
122
+ wrappedMarketId: string;
123
+ tokenAmount: string;
124
+ wrapper: Kcc20WrapperSourceInfo;
125
+ canonicalTokenUtxos: readonly Kcc20IndexedCovenantUtxo[];
126
+ wrappedTokenUtxos: readonly Kcc20IndexedCovenantUtxo[];
127
+ wrapperUtxos: readonly Kcc20IndexedCovenantUtxo[];
128
+ }
129
+ export declare function buildKcc20UnwrapTokenOperationFromSnapshot(walletInfo: Kcc20WrapperWalletInfo, input: Kcc20BuildUnwrapFromSnapshotInput, options?: Kcc20WrapOperationOptions): {
130
+ requestId: string;
131
+ description: string;
132
+ payload: {
133
+ params: Record<string, unknown>;
134
+ signing: {
135
+ standard: string;
136
+ walletAction: string;
137
+ status: string;
138
+ builderKey: string;
139
+ builderStatus: string;
140
+ submitTransactionSupported: boolean;
141
+ missingDependencies: string[];
142
+ missingSources: never[];
143
+ };
144
+ sourceRequirements: Record<string, unknown>[];
145
+ signerRequirements: Record<string, unknown>[];
146
+ warnings: string[];
147
+ tokenIdentity?: Record<string, unknown> | undefined;
148
+ schema: string;
149
+ status: string;
150
+ requestId: string;
151
+ chain: string;
152
+ network: string;
153
+ createdAt: string;
154
+ owner: import("./wallet-operation.js").Kcc20WalletOperationOwner;
155
+ operation: string;
156
+ contract: string;
157
+ action: string;
158
+ };
159
+ };
160
+ export declare function buildKcc20WrapperMarketDeployOperation(walletInfo: Kcc20WrapperWalletInfo, input: {
161
+ canonicalCovenantId: string;
162
+ contractCanonicalCovenantId?: string | null;
163
+ tokenDecimals?: number | null;
164
+ wrappedRootAmount?: string;
165
+ feeTicketId?: string | null;
166
+ }, options?: Kcc20WrapOperationOptions): {
167
+ requestId: string;
168
+ description: string;
169
+ payload: {
170
+ params: Record<string, unknown>;
171
+ signing: {
172
+ standard: string;
173
+ walletAction: string;
174
+ status: string;
175
+ builderKey: string;
176
+ builderStatus: string;
177
+ submitTransactionSupported: boolean;
178
+ missingDependencies: string[];
179
+ missingSources: never[];
180
+ };
181
+ sourceRequirements: Record<string, unknown>[];
182
+ signerRequirements: Record<string, unknown>[];
183
+ warnings: string[];
184
+ tokenIdentity?: Record<string, unknown> | undefined;
185
+ schema: string;
186
+ status: string;
187
+ requestId: string;
188
+ chain: string;
189
+ network: string;
190
+ createdAt: string;
191
+ owner: import("./wallet-operation.js").Kcc20WalletOperationOwner;
192
+ operation: string;
193
+ contract: string;
194
+ action: string;
195
+ };
196
+ };
197
+ //# sourceMappingURL=wrapper-operation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper-operation.d.ts","sourceRoot":"","sources":["../src/wrapper-operation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,311 @@
1
+ import { buildKcc20WalletOperationFromPlan } from "./wallet-operation.js";
2
+ import { ownerNativeHolderUtxos, ownerWrappedHolderUtxos, resolveActiveWrapperUtxo, selectOwnerNativeHolderUtxo, selectOwnerWrappedHolderUtxo, selectWrapperReserveUtxo, summarizeHolderUtxos, } from "./action-source-resolver.js";
3
+ import { kcc20DisplayScaleForDecimals, normalizeKcc20Decimals, parseKcc20DisplayAmountToBaseUnits, } from "./token-amount.js";
4
+ export function buildKcc20WrapTokenOperation(walletInfo, input, options = {}) {
5
+ const appCanonicalId = normalizeHex32(input.canonicalCovenantId, "canonicalCovenantId");
6
+ const wrappedMarketId = normalizeHex32(input.wrappedMarketId || input.wrapper.marketId, "wrappedMarketId");
7
+ const holderNativeCovenantId = input.activeHolderNativeCovenantId
8
+ ? normalizeHex32(input.activeHolderNativeCovenantId, "activeHolderNativeCovenantId")
9
+ : undefined;
10
+ const contractCanonicalId = normalizeHex32(input.wrapper.contractCanonicalTokenId ??
11
+ input.wrapper.canonicalTokenId ??
12
+ holderNativeCovenantId ??
13
+ appCanonicalId, "contractCanonicalCovenantId");
14
+ const activeWrapperCovenantId = input.activeWrapperResolution
15
+ ?.activeCovenantId
16
+ ? normalizeHex32(input.activeWrapperResolution.activeCovenantId, "activeWrapperCovenantId")
17
+ : undefined;
18
+ const tokenAmount = parsePositiveIntegerString(input.tokenAmount, "tokenAmount");
19
+ const priceScale = input.priceScale
20
+ ? parsePositiveIntegerString(input.priceScale, "priceScale")
21
+ : undefined;
22
+ return buildKcc20WalletOperationFromPlan(walletInfo, {
23
+ builderKey: "kcc20wrapper.wrap",
24
+ operation: "wrap-token",
25
+ contract: "KCC20Wrapper",
26
+ action: "wrap",
27
+ description: "Build a KCC20 to DEX Orderbook V1 deposit request.",
28
+ params: {
29
+ canonicalCovenantId: contractCanonicalId,
30
+ appCanonicalCovenantId: appCanonicalId,
31
+ contractCanonicalCovenantId: contractCanonicalId,
32
+ ...(holderNativeCovenantId
33
+ ? { activeHolderNativeCovenantId: holderNativeCovenantId }
34
+ : {}),
35
+ wrappedMarketId,
36
+ tokenAmount,
37
+ ...(priceScale ? { priceScale } : {}),
38
+ recipientOwner: normalizeHex32(walletInfo.kcc20Owner, "kcc20Owner"),
39
+ recipientOwnerType: "pubkey",
40
+ feeTicketId: input.wrapper.feeTicketId ?? null,
41
+ ...(activeWrapperCovenantId ? { activeWrapperCovenantId } : {}),
42
+ activeHolderUtxo: input.activeHolderUtxo,
43
+ activeWrapperUtxo: input.activeWrapperResolution?.selected,
44
+ activeWrapperCandidateUtxos: input.activeWrapperResolution?.candidates ?? [],
45
+ },
46
+ sourceRequirements: [
47
+ {
48
+ type: "kcc20-holder-utxo",
49
+ covenantId: appCanonicalId,
50
+ ...(contractCanonicalId !== appCanonicalId
51
+ ? { contractCanonicalCovenantId: contractCanonicalId }
52
+ : {}),
53
+ ...(holderNativeCovenantId
54
+ ? { activeHolderNativeCovenantId: holderNativeCovenantId }
55
+ : {}),
56
+ owner: normalizeHex32(walletInfo.kcc20Owner, "kcc20Owner"),
57
+ minimumTokenAmount: tokenAmount,
58
+ ...holderSummaryFields(input.activeHolderSummary),
59
+ outpoint: input.activeHolderUtxo
60
+ ? utxoOutpoint(input.activeHolderUtxo)
61
+ : undefined,
62
+ amount: utxoStateAmount(input.activeHolderUtxo),
63
+ },
64
+ wrapperReserveOutput({
65
+ wrapperId: wrappedMarketId,
66
+ activeWrapperResolution: input.activeWrapperResolution,
67
+ purpose: "increase wrapper reserve and issue DEX Orderbook V1 holder output",
68
+ }),
69
+ ],
70
+ warnings: [
71
+ "Wallet must preserve canonical reserve accounting between KCC20 escrow and orderbook supply.",
72
+ ],
73
+ }, options);
74
+ }
75
+ /**
76
+ * Resolves the native holder and wrapper controller in the shared package.
77
+ * The host only supplies a generic indexed snapshot; no action planner is
78
+ * consulted.
79
+ */
80
+ export function buildKcc20WrapTokenOperationFromSnapshot(walletInfo, input, options = {}) {
81
+ if (input.wrapper.enabled === false) {
82
+ throw new Error("Wrapped trading is disabled for this market");
83
+ }
84
+ const decimals = normalizeKcc20Decimals(input.tokenDecimals);
85
+ const tokenAmount = parseKcc20DisplayAmountToBaseUnits(input.tokenAmount, decimals, "tokenAmount");
86
+ const ownerUtxos = ownerNativeHolderUtxos(input.canonicalTokenUtxos, walletInfo.kcc20Owner);
87
+ const holder = selectOwnerNativeHolderUtxo(input.canonicalTokenUtxos, walletInfo.kcc20Owner, tokenAmount);
88
+ const summary = summarizeHolderUtxos(ownerUtxos, tokenAmount);
89
+ if (!holder) {
90
+ throw new Error(summary.fragmented
91
+ ? "No single KCC20 holder UTXO is large enough; consolidate the token balance first"
92
+ : "No KCC20 holder UTXO is available for this wallet and amount");
93
+ }
94
+ const wrapperResolution = resolveActiveWrapperUtxo(input.wrapper, input.wrapperUtxos);
95
+ return buildKcc20WrapTokenOperation(walletInfo, {
96
+ canonicalCovenantId: input.canonicalCovenantId,
97
+ wrappedMarketId: input.wrapper.marketId || input.wrappedMarketId,
98
+ tokenAmount,
99
+ priceScale: kcc20DisplayScaleForDecimals(decimals).toString(),
100
+ wrapper: input.wrapper,
101
+ activeHolderUtxo: holder,
102
+ activeHolderSummary: summary,
103
+ activeWrapperResolution: wrapperResolution,
104
+ activeHolderNativeCovenantId: holder.covenantId ??
105
+ input.wrapper.contractCanonicalTokenId ??
106
+ input.canonicalCovenantId,
107
+ }, options);
108
+ }
109
+ export function buildKcc20UnwrapTokenOperationFromSnapshot(walletInfo, input, options = {}) {
110
+ if (input.wrapper.enabled === false) {
111
+ throw new Error("Wrapped trading is disabled for this market");
112
+ }
113
+ const appCanonicalId = normalizeHex32(input.canonicalCovenantId, "canonicalCovenantId");
114
+ const contractCanonicalId = normalizeHex32(input.wrapper.contractCanonicalTokenId ??
115
+ input.wrapper.canonicalTokenId ??
116
+ appCanonicalId, "contractCanonicalCovenantId");
117
+ const marketId = normalizeHex32(input.wrapper.marketId || input.wrappedMarketId, "wrappedMarketId");
118
+ const decimals = normalizeKcc20Decimals(input.tokenDecimals);
119
+ const tokenAmount = parseKcc20DisplayAmountToBaseUnits(input.tokenAmount, decimals, "tokenAmount");
120
+ const holderCandidates = ownerWrappedHolderUtxos(input.wrappedTokenUtxos, walletInfo.kcc20Owner, contractCanonicalId);
121
+ const holder = selectOwnerWrappedHolderUtxo(input.wrappedTokenUtxos, walletInfo.kcc20Owner, tokenAmount, contractCanonicalId);
122
+ const holderSummary = summarizeHolderUtxos(holderCandidates, tokenAmount);
123
+ if (!holder) {
124
+ throw new Error(holderSummary.fragmented
125
+ ? "No single wrapped holder UTXO is large enough; consolidate the wrapped balance first"
126
+ : "No wrapped holder UTXO is available for this wallet and amount");
127
+ }
128
+ const wrapperResolution = resolveActiveWrapperUtxo(input.wrapper, input.wrapperUtxos);
129
+ const reserveIds = [
130
+ wrapperResolution.activeCovenantId,
131
+ input.wrapper.activeCovenantId,
132
+ input.wrapper.wrapperId,
133
+ marketId,
134
+ ].filter((value) => Boolean(value));
135
+ const reserve = selectWrapperReserveUtxo(input.canonicalTokenUtxos, reserveIds, tokenAmount);
136
+ if (!reserve) {
137
+ throw new Error("Wrapper reserve does not contain enough canonical token balance");
138
+ }
139
+ return buildKcc20WalletOperationFromPlan(walletInfo, {
140
+ builderKey: "kcc20wrapper.unwrap",
141
+ operation: "unwrap",
142
+ contract: "KCC20Wrapper",
143
+ action: "unwrap",
144
+ description: "Build a KCC20 DEX Orderbook V1 to Token V1 withdrawal request.",
145
+ params: {
146
+ canonicalCovenantId: contractCanonicalId,
147
+ appCanonicalCovenantId: appCanonicalId,
148
+ contractCanonicalCovenantId: contractCanonicalId,
149
+ wrappedMarketId: marketId,
150
+ tokenAmount,
151
+ recipientOwner: normalizeHex32(walletInfo.kcc20Owner, "kcc20Owner"),
152
+ recipientOwnerType: "pubkey",
153
+ ...(wrapperResolution.activeCovenantId
154
+ ? { activeWrapperCovenantId: wrapperResolution.activeCovenantId }
155
+ : {}),
156
+ activeWrappedHolderUtxo: holder,
157
+ activeReserveUtxo: reserve,
158
+ activeWrapperUtxo: wrapperResolution.selected,
159
+ activeWrapperCandidateUtxos: wrapperResolution.candidates,
160
+ },
161
+ sourceRequirements: [
162
+ {
163
+ type: "kcc20-orderbook-holder-utxo",
164
+ covenantId: marketId,
165
+ contractCanonicalCovenantId: contractCanonicalId,
166
+ owner: walletInfo.kcc20Owner,
167
+ minimumTokenAmount: tokenAmount,
168
+ ...holderSummaryFields(holderSummary),
169
+ outpoint: holder.outpoint,
170
+ amount: holder.state?.["amount"],
171
+ },
172
+ wrapperReserveOutput({
173
+ wrapperId: marketId,
174
+ activeWrapperResolution: wrapperResolution,
175
+ reserveUtxo: reserve,
176
+ purpose: "release canonical Token V1 reserve and burn DEX Orderbook V1 amount",
177
+ }),
178
+ ],
179
+ warnings: [
180
+ "Wallet must prove wrapped burn and canonical reserve release in the same transaction.",
181
+ ],
182
+ }, options);
183
+ }
184
+ export function buildKcc20WrapperMarketDeployOperation(walletInfo, input, options = {}) {
185
+ const appCanonicalId = normalizeHex32(input.canonicalCovenantId, "canonicalCovenantId");
186
+ const contractCanonicalId = normalizeHex32(input.contractCanonicalCovenantId ?? appCanonicalId, "contractCanonicalCovenantId");
187
+ const rootAmount = String(input.wrappedRootAmount ?? "0").trim();
188
+ if (!/^\d+$/.test(rootAmount)) {
189
+ throw new Error("wrappedRootAmount must be an unsigned integer string");
190
+ }
191
+ const decimals = normalizeKcc20Decimals(input.tokenDecimals);
192
+ const feeTicketId = input.feeTicketId
193
+ ? normalizeHex32(input.feeTicketId, "feeTicketId")
194
+ : null;
195
+ return buildKcc20WalletOperationFromPlan(walletInfo, {
196
+ builderKey: "kcc20wrapper.deploy-market",
197
+ operation: "deploy-wrapper-market",
198
+ contract: "KCC20Wrapper",
199
+ action: "deployMarket",
200
+ description: "Build a KCC20 Wrapper Reserve V1 market deploy request.",
201
+ params: {
202
+ canonicalCovenantId: appCanonicalId,
203
+ contractCanonicalCovenantId: contractCanonicalId,
204
+ feeTicketId,
205
+ wrappedRootAmount: rootAmount,
206
+ priceScale: kcc20DisplayScaleForDecimals(decimals).toString(),
207
+ tokenDecimals: String(decimals),
208
+ deployerOwner: normalizeHex32(walletInfo.kcc20Owner, "kcc20Owner"),
209
+ deployerOwnerType: "pubkey",
210
+ },
211
+ sourceRequirements: [
212
+ {
213
+ type: "canonical-kcc20-token",
214
+ covenantId: appCanonicalId,
215
+ ...(contractCanonicalId !== appCanonicalId
216
+ ? { contractCanonicalCovenantId: contractCanonicalId }
217
+ : {}),
218
+ purpose: "bind wrapper market to the canonical token identity",
219
+ },
220
+ {
221
+ type: "kaspa-funding-utxo",
222
+ ownerAddress: walletInfo.walletAddress,
223
+ purpose: "fund wrapper/root outputs and network fee",
224
+ },
225
+ {
226
+ type: "compiled-contract-artifacts",
227
+ templates: ["KCC20Wrapper", "KCC20Orderbook"],
228
+ },
229
+ ...(feeTicketId
230
+ ? [
231
+ {
232
+ type: "fee-ticket-root",
233
+ covenantId: feeTicketId,
234
+ purpose: "bind configured standalone fill discount policy",
235
+ },
236
+ ]
237
+ : []),
238
+ ],
239
+ warnings: [
240
+ "The canonical KCC20 covenantId remains the token identity; the wrapper market ID is only the DEX orderbook mode.",
241
+ "Wrapper deploy builders must create both wrapper reserve and wrapped-root outputs consistently.",
242
+ ],
243
+ }, options);
244
+ }
245
+ function wrapperReserveOutput(input) {
246
+ const selected = input.activeWrapperResolution?.selected;
247
+ return {
248
+ type: "wrapper-reserve-output",
249
+ wrapperId: input.wrapperId,
250
+ ...(input.reserveUtxo
251
+ ? {
252
+ reserveOutpoint: utxoOutpoint(input.reserveUtxo),
253
+ reserveAmount: utxoStateAmount(input.reserveUtxo),
254
+ }
255
+ : {}),
256
+ ...(selected
257
+ ? {
258
+ selectedOutpoint: selected["outpoint"],
259
+ amountSompi: selected["amountSompi"],
260
+ address: selected["address"],
261
+ }
262
+ : {}),
263
+ ...(input.activeWrapperResolution?.ambiguous
264
+ ? {
265
+ ambiguous: true,
266
+ candidateOutpoints: (input.activeWrapperResolution.candidates ?? []).map((candidate) => candidate["outpoint"]),
267
+ }
268
+ : {}),
269
+ purpose: input.purpose,
270
+ };
271
+ }
272
+ function holderSummaryFields(summary) {
273
+ if (!summary)
274
+ return {};
275
+ return {
276
+ aggregateAmount: summary.aggregateAmount,
277
+ maxSingleUtxoAmount: summary.maxSingleUtxoAmount,
278
+ utxoCount: summary.utxoCount,
279
+ fragmented: summary.fragmented,
280
+ maxSingleUtxoOutpoint: summary.maxSingleUtxoOutpoint,
281
+ recommendedAction: summary.recommendedAction,
282
+ };
283
+ }
284
+ function utxoOutpoint(utxo) {
285
+ const txidHex = typeof utxo["txidHex"] === "string" ? utxo["txidHex"] : "";
286
+ const vout = utxo["vout"];
287
+ if (!txidHex || (typeof vout !== "number" && typeof vout !== "string")) {
288
+ return undefined;
289
+ }
290
+ return `${txidHex}:${vout}`;
291
+ }
292
+ function utxoStateAmount(utxo) {
293
+ const state = utxo && typeof utxo["state"] === "object" && utxo["state"] !== null
294
+ ? utxo["state"]
295
+ : undefined;
296
+ return typeof state?.["amount"] === "string" ? state["amount"] : undefined;
297
+ }
298
+ function parsePositiveIntegerString(value, field) {
299
+ if (!/^[1-9]\d*$/.test(value)) {
300
+ throw new Error(`${field} must be a positive integer string`);
301
+ }
302
+ return value;
303
+ }
304
+ function normalizeHex32(value, field) {
305
+ const normalized = value.trim().toLowerCase().replace(/^0x/, "");
306
+ if (!/^[0-9a-f]{64}$/.test(normalized)) {
307
+ throw new Error(`${field} must be 64 hex characters`);
308
+ }
309
+ return normalized;
310
+ }
311
+ //# sourceMappingURL=wrapper-operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper-operation.js","sourceRoot":"","sources":["../src/wrapper-operation.ts"],"names":[],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './dist/cjs/index.js';
package/package.json ADDED
@@ -0,0 +1,84 @@
1
+ {
2
+ "name": "@kaspacom/kcc20-tx-builder",
3
+ "version": "0.1.0",
4
+ "description": "Runtime-independent KCC20 covenant transaction and PSKT construction primitives.",
5
+ "license": "Apache-2.0",
6
+ "author": "KaspaCom",
7
+ "homepage": "https://github.com/KASPACOM/kcc20-tx-builder#readme",
8
+ "bugs": {
9
+ "url": "https://github.com/KASPACOM/kcc20-tx-builder/issues"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/KASPACOM/kcc20-tx-builder.git"
14
+ },
15
+ "keywords": [
16
+ "kaspa",
17
+ "kcc20",
18
+ "covenants",
19
+ "pskt",
20
+ "transactions"
21
+ ],
22
+ "type": "module",
23
+ "sideEffects": false,
24
+ "main": "./dist/cjs/index.js",
25
+ "module": "./dist/index.js",
26
+ "types": "./index.d.ts",
27
+ "typesVersions": {
28
+ "*": {
29
+ "*": [
30
+ "dist/cjs/*"
31
+ ]
32
+ }
33
+ },
34
+ "exports": {
35
+ ".": {
36
+ "import": {
37
+ "types": "./dist/index.d.ts",
38
+ "default": "./dist/index.js"
39
+ },
40
+ "require": {
41
+ "types": "./dist/cjs/index.d.ts",
42
+ "default": "./dist/cjs/index.js"
43
+ }
44
+ },
45
+ "./artifacts/*": "./artifacts/*",
46
+ "./package.json": "./package.json",
47
+ "./*": {
48
+ "import": {
49
+ "types": "./dist/*.d.ts",
50
+ "default": "./dist/*.js"
51
+ },
52
+ "require": {
53
+ "types": "./dist/cjs/*.d.ts",
54
+ "default": "./dist/cjs/*.js"
55
+ }
56
+ }
57
+ },
58
+ "files": [
59
+ "dist",
60
+ "index.d.ts",
61
+ "src",
62
+ "artifacts",
63
+ "README.md",
64
+ "LICENSE"
65
+ ],
66
+ "engines": {
67
+ "node": ">=20"
68
+ },
69
+ "publishConfig": {
70
+ "access": "public"
71
+ },
72
+ "scripts": {
73
+ "build": "tsc -p tsconfig.json && tsc -p tsconfig.cjs.json && node scripts/write-cjs-package.mjs",
74
+ "typecheck": "tsc -p tsconfig.json --noEmit",
75
+ "test": "npm run typecheck && npm run build && node test/smoke.mjs && node test/cjs-smoke.cjs",
76
+ "prepack": "npm test"
77
+ },
78
+ "devDependencies": {
79
+ "typescript": "^5.9.3"
80
+ },
81
+ "dependencies": {
82
+ "@noble/hashes": "^1.8.0"
83
+ }
84
+ }