@secondlayer/stacks 0.2.0 → 0.2.1

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 (76) hide show
  1. package/dist/shared/stacks-2ar4prfz.cjs +328 -0
  2. package/dist/shared/stacks-2ar4prfz.cjs.map +11 -0
  3. package/dist/shared/{stacks-d1fmkv3p.js → stacks-9avax1yf.js} +2 -2
  4. package/dist/shared/{stacks-ph4a6322.js → stacks-9mdk86wp.js} +16 -18
  5. package/dist/shared/{stacks-ph4a6322.js.map → stacks-9mdk86wp.js.map} +2 -2
  6. package/dist/shared/stacks-dr5en54r.cjs +119 -0
  7. package/dist/shared/stacks-dr5en54r.cjs.map +10 -0
  8. package/dist/shared/{stacks-b008c3w8.cjs → stacks-fedzr2ka.js} +134 -2
  9. package/dist/shared/stacks-fedzr2ka.js.map +13 -0
  10. package/dist/shared/{stacks-j2cy7qtt.js → stacks-ky14tdf6.cjs} +109 -24
  11. package/dist/shared/stacks-ky14tdf6.cjs.map +13 -0
  12. package/dist/shared/stacks-mrk6tkkh.cjs +41 -0
  13. package/dist/shared/{stacks-2gdt3aqj.cjs.map → stacks-mrk6tkkh.cjs.map} +1 -1
  14. package/dist/shared/{stacks-zhd20wgz.js → stacks-qcx67vqa.js} +3 -3
  15. package/dist/shared/stacks-qyt8m5v0.js +282 -0
  16. package/dist/shared/stacks-qyt8m5v0.js.map +11 -0
  17. package/dist/shared/{stacks-hfem9dck.cjs → stacks-vbke9mqw.cjs} +328 -87
  18. package/dist/shared/{stacks-hfem9dck.cjs.map → stacks-vbke9mqw.cjs.map} +8 -6
  19. package/dist/shared/{stacks-8qhfd37f.js → stacks-vd9jcp0b.js} +13 -17
  20. package/dist/shared/{stacks-8qhfd37f.js.map → stacks-vd9jcp0b.js.map} +2 -2
  21. package/dist/shared/{stacks-xtz0n62y.js → stacks-vyb9rx8q.js} +341 -106
  22. package/dist/shared/{stacks-xtz0n62y.js.map → stacks-vyb9rx8q.js.map} +8 -6
  23. package/dist/shared/{stacks-0hqzpm29.js → stacks-wrb1es85.js} +7 -11
  24. package/dist/shared/{stacks-0hqzpm29.js.map → stacks-wrb1es85.js.map} +2 -2
  25. package/dist/shared/stacks-yfveb68e.js +121 -0
  26. package/dist/shared/stacks-yfveb68e.js.map +10 -0
  27. package/dist/src/accounts/index.js +1 -2
  28. package/dist/src/accounts/index.js.map +2 -2
  29. package/dist/src/actions/index.js +8 -11
  30. package/dist/src/actions/index.js.map +1 -1
  31. package/dist/src/bns/index.js +10 -13
  32. package/dist/src/bns/index.js.map +2 -2
  33. package/dist/src/chains/index.js +1 -2
  34. package/dist/src/chains/index.js.map +1 -1
  35. package/dist/src/clarity/index.cjs +1 -326
  36. package/dist/src/clarity/index.cjs.map +3 -5
  37. package/dist/src/clarity/index.js +18 -272
  38. package/dist/src/clarity/index.js.map +3 -5
  39. package/dist/src/connect/index.cjs +19 -9
  40. package/dist/src/connect/index.cjs.map +2 -2
  41. package/dist/src/connect/walletconnect/index.cjs +19 -9
  42. package/dist/src/connect/walletconnect/index.cjs.map +2 -2
  43. package/dist/src/index.cjs +1 -2
  44. package/dist/src/index.cjs.map +3 -3
  45. package/dist/src/index.js +9 -16
  46. package/dist/src/index.js.map +3 -3
  47. package/dist/src/postconditions/index.cjs +1 -117
  48. package/dist/src/postconditions/index.cjs.map +3 -4
  49. package/dist/src/postconditions/index.js +5 -119
  50. package/dist/src/postconditions/index.js.map +3 -4
  51. package/dist/src/pox/index.js +9 -12
  52. package/dist/src/pox/index.js.map +2 -2
  53. package/dist/src/stackingdao/index.js +9 -12
  54. package/dist/src/stackingdao/index.js.map +2 -2
  55. package/dist/src/subscriptions/index.js +1 -2
  56. package/dist/src/subscriptions/index.js.map +1 -1
  57. package/dist/src/transactions/index.js +18 -22
  58. package/dist/src/transactions/index.js.map +1 -1
  59. package/dist/src/utils/index.js +1 -2
  60. package/dist/src/utils/index.js.map +2 -2
  61. package/package.json +1 -1
  62. package/dist/shared/stacks-1aqm7c2h.cjs +0 -110
  63. package/dist/shared/stacks-1aqm7c2h.cjs.map +0 -11
  64. package/dist/shared/stacks-2gdt3aqj.cjs +0 -44
  65. package/dist/shared/stacks-8yykgdww.js +0 -125
  66. package/dist/shared/stacks-8yykgdww.js.map +0 -11
  67. package/dist/shared/stacks-b008c3w8.cjs.map +0 -11
  68. package/dist/shared/stacks-j2cy7qtt.js.map +0 -11
  69. package/dist/shared/stacks-kgesjxq4.cjs +0 -247
  70. package/dist/shared/stacks-kgesjxq4.cjs.map +0 -11
  71. package/dist/shared/stacks-nbz193yk.js +0 -282
  72. package/dist/shared/stacks-nbz193yk.js.map +0 -11
  73. package/dist/shared/stacks-njvyj3ab.js +0 -23
  74. package/dist/shared/stacks-njvyj3ab.js.map +0 -9
  75. /package/dist/shared/{stacks-d1fmkv3p.js.map → stacks-9avax1yf.js.map} +0 -0
  76. /package/dist/shared/{stacks-zhd20wgz.js.map → stacks-qcx67vqa.js.map} +0 -0
@@ -1,247 +0,0 @@
1
- // src/transactions/signer.ts
2
- function txid(tx) {
3
- return txidFromBytes(serializeTransaction(tx));
4
- }
5
- function signBegin(tx) {
6
- const cleared = {
7
- ...tx,
8
- auth: intoInitialSighashAuth(tx.auth)
9
- };
10
- return txid(cleared);
11
- }
12
- function signTransaction(tx, privateKey) {
13
- const sigHash = signBegin(tx);
14
- const condition = tx.auth.spendingCondition;
15
- const { nextSig } = nextSignature(sigHash, AuthType.Standard, condition.fee, condition.nonce, privateKey);
16
- return {
17
- ...tx,
18
- auth: {
19
- ...tx.auth,
20
- spendingCondition: {
21
- ...condition,
22
- signature: nextSig
23
- }
24
- }
25
- };
26
- }
27
- async function signTransactionWithAccount(tx, account) {
28
- const sigHash = signBegin(tx);
29
- const condition = tx.auth.spendingCondition;
30
- const sigHashPre = sigHashPreSign(sigHash, AuthType.Standard, condition.fee, condition.nonce);
31
- const sigBytes = await account.sign(hexToBytes(sigHashPre));
32
- const nextSig = bytesToHex(sigBytes);
33
- return {
34
- ...tx,
35
- auth: {
36
- ...tx.auth,
37
- spendingCondition: {
38
- ...condition,
39
- signature: nextSig
40
- }
41
- }
42
- };
43
- }
44
- function getTransactionId(tx) {
45
- return txid(tx);
46
- }
47
- function getOriginSigHash(tx) {
48
- const condition = tx.auth.spendingCondition;
49
- if ("fields" in condition) {
50
- return replayMultiSigSigHash(tx);
51
- }
52
- const initialSigHash = signBegin(tx);
53
- const sc = condition;
54
- const preSign = sigHashPreSign(initialSigHash, AuthType.Standard, sc.fee, sc.nonce);
55
- return sigHashPostSign(preSign, sc.keyEncoding, sc.signature);
56
- }
57
- function signSponsor(tx, privateKey) {
58
- if (tx.auth.authType !== AuthType.Sponsored) {
59
- throw new Error("Transaction must be sponsored");
60
- }
61
- const auth = tx.auth;
62
- const sponsorCondition = auth.sponsorSpendingCondition;
63
- const originSigHash = getOriginSigHash(tx);
64
- const { nextSig } = nextSignature(originSigHash, AuthType.Sponsored, sponsorCondition.fee, sponsorCondition.nonce, privateKey);
65
- return {
66
- ...tx,
67
- auth: {
68
- ...auth,
69
- sponsorSpendingCondition: {
70
- ...sponsorCondition,
71
- signature: nextSig
72
- }
73
- }
74
- };
75
- }
76
- async function signSponsorWithAccount(tx, account) {
77
- if (tx.auth.authType !== AuthType.Sponsored) {
78
- throw new Error("Transaction must be sponsored");
79
- }
80
- const auth = tx.auth;
81
- const sponsorCondition = auth.sponsorSpendingCondition;
82
- const originSigHash = getOriginSigHash(tx);
83
- const sigHashPre = sigHashPreSign(originSigHash, AuthType.Sponsored, sponsorCondition.fee, sponsorCondition.nonce);
84
- const sigBytes = await account.sign(hexToBytes(sigHashPre));
85
- const nextSig = bytesToHex(sigBytes);
86
- return {
87
- ...tx,
88
- auth: {
89
- ...auth,
90
- sponsorSpendingCondition: {
91
- ...sponsorCondition,
92
- signature: nextSig
93
- }
94
- }
95
- };
96
- }
97
-
98
- // src/transactions/build.ts
99
- function resolvePcMode(mode) {
100
- return mode === "allow" ? PostConditionModeWire.Allow : PostConditionModeWire.Deny;
101
- }
102
- function convertPostConditions(pcs) {
103
- if (!pcs || pcs.length === 0)
104
- return [];
105
- return pcs.map(convertPostCondition);
106
- }
107
- function resolvePrincipal(address) {
108
- if (address === "origin")
109
- return { type: "origin" };
110
- const [addr, name] = address.split(".");
111
- if (name) {
112
- return { type: "contract", address: addr, contractName: name };
113
- }
114
- return { type: "standard", address: addr };
115
- }
116
- var FUNGIBLE_CODE_MAP = {
117
- eq: FungibleConditionCode.Equal,
118
- gt: FungibleConditionCode.Greater,
119
- gte: FungibleConditionCode.GreaterEqual,
120
- lt: FungibleConditionCode.Less,
121
- lte: FungibleConditionCode.LessEqual
122
- };
123
- function convertPostCondition(pc) {
124
- switch (pc.type) {
125
- case "stx-postcondition":
126
- return {
127
- type: "stx",
128
- principal: resolvePrincipal(pc.address),
129
- conditionCode: FUNGIBLE_CODE_MAP[pc.condition],
130
- amount: intToBigInt(pc.amount)
131
- };
132
- case "ft-postcondition": {
133
- const [contractId, tokenName] = pc.asset.split("::");
134
- const [addr, name] = parseContractId(contractId);
135
- return {
136
- type: "ft",
137
- principal: resolvePrincipal(pc.address),
138
- asset: { address: addr, contractName: name, assetName: tokenName },
139
- conditionCode: FUNGIBLE_CODE_MAP[pc.condition],
140
- amount: intToBigInt(pc.amount)
141
- };
142
- }
143
- case "nft-postcondition": {
144
- const [contractId, tokenName] = pc.asset.split("::");
145
- const [addr, name] = parseContractId(contractId);
146
- return {
147
- type: "nft",
148
- principal: resolvePrincipal(pc.address),
149
- asset: { address: addr, contractName: name, assetName: tokenName },
150
- conditionCode: pc.condition === "sent" ? NonFungibleConditionCode.Sends : NonFungibleConditionCode.DoesNotSend,
151
- assetId: pc.assetId
152
- };
153
- }
154
- }
155
- }
156
- function resolveSpendingCondition(opts, nonce, fee) {
157
- if (opts.publicKeys) {
158
- return createMultiSigSpendingCondition(opts.publicKeys, opts.signaturesRequired, nonce, fee, opts.hashMode);
159
- }
160
- return createSingleSigSpendingCondition(opts.publicKey, nonce, fee);
161
- }
162
- function resolveAuth(spendingCondition, sponsored) {
163
- return sponsored ? createSponsoredAuth(spendingCondition) : createStandardAuth(spendingCondition);
164
- }
165
- function resolveVersionAndChainId(chain) {
166
- if (!chain)
167
- return { version: 0, chainId: 1 };
168
- return { version: chain.transactionVersion, chainId: chain.id };
169
- }
170
- function buildTokenTransfer(options) {
171
- const { version, chainId } = resolveVersionAndChainId(options.chain);
172
- const fee = intToBigInt(options.fee);
173
- const nonce = intToBigInt(options.nonce);
174
- const spendingCondition = resolveSpendingCondition(options, nonce, fee);
175
- const recipient = Cl.principal(options.recipient);
176
- const tx = {
177
- version,
178
- chainId,
179
- auth: resolveAuth(spendingCondition, options.sponsored),
180
- anchorMode: AnchorMode.Any,
181
- postConditionMode: resolvePcMode(options.postConditionMode),
182
- postConditions: convertPostConditions(options.postConditions),
183
- payload: {
184
- payloadType: PayloadType.TokenTransfer,
185
- recipient,
186
- amount: intToBigInt(options.amount),
187
- memo: options.memo ?? ""
188
- }
189
- };
190
- if (options.publicKeys) {
191
- tx._multisig = { publicKeys: options.publicKeys };
192
- }
193
- return tx;
194
- }
195
- function buildContractCall(options) {
196
- const { version, chainId } = resolveVersionAndChainId(options.chain);
197
- const fee = intToBigInt(options.fee);
198
- const nonce = intToBigInt(options.nonce);
199
- const spendingCondition = resolveSpendingCondition(options, nonce, fee);
200
- const tx = {
201
- version,
202
- chainId,
203
- auth: resolveAuth(spendingCondition, options.sponsored),
204
- anchorMode: AnchorMode.Any,
205
- postConditionMode: resolvePcMode(options.postConditionMode),
206
- postConditions: convertPostConditions(options.postConditions),
207
- payload: {
208
- payloadType: PayloadType.ContractCall,
209
- contractAddress: options.contractAddress,
210
- contractName: options.contractName,
211
- functionName: options.functionName,
212
- functionArgs: options.functionArgs
213
- }
214
- };
215
- if (options.publicKeys) {
216
- tx._multisig = { publicKeys: options.publicKeys };
217
- }
218
- return tx;
219
- }
220
- function buildContractDeploy(options) {
221
- const { version, chainId } = resolveVersionAndChainId(options.chain);
222
- const fee = intToBigInt(options.fee);
223
- const nonce = intToBigInt(options.nonce);
224
- const spendingCondition = resolveSpendingCondition(options, nonce, fee);
225
- const useVersioned = options.clarityVersion !== undefined;
226
- const tx = {
227
- version,
228
- chainId,
229
- auth: resolveAuth(spendingCondition, options.sponsored),
230
- anchorMode: AnchorMode.Any,
231
- postConditionMode: resolvePcMode(options.postConditionMode),
232
- postConditions: convertPostConditions(options.postConditions),
233
- payload: {
234
- payloadType: useVersioned ? PayloadType.VersionedSmartContract : PayloadType.SmartContract,
235
- clarityVersion: options.clarityVersion,
236
- contractName: options.contractName,
237
- codeBody: options.codeBody
238
- }
239
- };
240
- if (options.publicKeys) {
241
- tx._multisig = { publicKeys: options.publicKeys };
242
- }
243
- return tx;
244
- }
245
-
246
- //# debugId=DF40EDBE3A72C83764756E2164756E21
247
- //# sourceMappingURL=stacks-kgesjxq4.cjs.map
@@ -1,11 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/transactions/signer.ts", "../src/transactions/build.ts"],
4
- "sourcesContent": [
5
- "import { bytesToHex, hexToBytes } from \"../utils/encoding.ts\";\nimport { txidFromBytes } from \"../utils/hash.ts\";\nimport {\n intoInitialSighashAuth,\n nextSignature,\n sigHashPreSign,\n sigHashPostSign,\n} from \"./authorization.ts\";\nimport { replayMultiSigSigHash } from \"./multisig.ts\";\nimport { serializeTransaction } from \"./wire/serialize.ts\";\nimport {\n AuthType,\n type StacksTransaction,\n type SingleSigSpendingCondition,\n type SponsoredAuthorization,\n} from \"./types.ts\";\nimport type { LocalAccount, CustomAccount } from \"../accounts/types.ts\";\n\nfunction txid(tx: StacksTransaction): string {\n return txidFromBytes(serializeTransaction(tx));\n}\n\n/** Compute the initial sighash for a transaction */\nexport function signBegin(tx: StacksTransaction): string {\n const cleared: StacksTransaction = {\n ...tx,\n auth: intoInitialSighashAuth(tx.auth),\n };\n return txid(cleared);\n}\n\n/** Sign a single-sig transaction with a private key, returning the signed transaction */\nexport function signTransaction(\n tx: StacksTransaction,\n privateKey: string\n): StacksTransaction {\n const sigHash = signBegin(tx);\n const condition = tx.auth.spendingCondition as SingleSigSpendingCondition;\n\n // Origin always signs with AuthType.Standard (even for sponsored txs)\n const { nextSig } = nextSignature(\n sigHash,\n AuthType.Standard,\n condition.fee,\n condition.nonce,\n privateKey\n );\n\n return {\n ...tx,\n auth: {\n ...tx.auth,\n spendingCondition: {\n ...condition,\n signature: nextSig,\n },\n },\n };\n}\n\n/** Sign a single-sig transaction using an account (LocalAccount or CustomAccount) */\nexport async function signTransactionWithAccount(\n tx: StacksTransaction,\n account: LocalAccount | CustomAccount\n): Promise<StacksTransaction> {\n const sigHash = signBegin(tx);\n const condition = tx.auth.spendingCondition as SingleSigSpendingCondition;\n\n // Origin always signs with AuthType.Standard (even for sponsored txs)\n const sigHashPre = sigHashPreSign(\n sigHash,\n AuthType.Standard,\n condition.fee,\n condition.nonce\n );\n\n // account.sign returns 65-byte VRS (recovery + r + s)\n const sigBytes = await account.sign(hexToBytes(sigHashPre));\n const nextSig = bytesToHex(sigBytes);\n\n return {\n ...tx,\n auth: {\n ...tx.auth,\n spendingCondition: {\n ...condition,\n signature: nextSig,\n },\n },\n };\n}\n\n/** Get the txid of a transaction */\nexport function getTransactionId(tx: StacksTransaction): string {\n return txid(tx);\n}\n\n/** Reconstruct the sighash after origin signing (needed for sponsor signing) */\nexport function getOriginSigHash(tx: StacksTransaction): string {\n const condition = tx.auth.spendingCondition;\n\n // Multi-sig: replay through all fields\n if (\"fields\" in condition) {\n return replayMultiSigSigHash(tx);\n }\n\n // Single-sig\n const initialSigHash = signBegin(tx);\n const sc = condition as SingleSigSpendingCondition;\n const preSign = sigHashPreSign(initialSigHash, AuthType.Standard, sc.fee, sc.nonce);\n return sigHashPostSign(preSign, sc.keyEncoding, sc.signature);\n}\n\n/** Sign a sponsored transaction as the sponsor with a private key */\nexport function signSponsor(tx: StacksTransaction, privateKey: string): StacksTransaction {\n if (tx.auth.authType !== AuthType.Sponsored) {\n throw new Error(\"Transaction must be sponsored\");\n }\n const auth = tx.auth as SponsoredAuthorization;\n const sponsorCondition = auth.sponsorSpendingCondition as SingleSigSpendingCondition;\n const originSigHash = getOriginSigHash(tx);\n\n const { nextSig } = nextSignature(\n originSigHash,\n AuthType.Sponsored,\n sponsorCondition.fee,\n sponsorCondition.nonce,\n privateKey\n );\n\n return {\n ...tx,\n auth: {\n ...auth,\n sponsorSpendingCondition: {\n ...sponsorCondition,\n signature: nextSig,\n },\n },\n };\n}\n\n/** Sign a sponsored transaction as the sponsor using an account */\nexport async function signSponsorWithAccount(\n tx: StacksTransaction,\n account: LocalAccount | CustomAccount\n): Promise<StacksTransaction> {\n if (tx.auth.authType !== AuthType.Sponsored) {\n throw new Error(\"Transaction must be sponsored\");\n }\n const auth = tx.auth as SponsoredAuthorization;\n const sponsorCondition = auth.sponsorSpendingCondition as SingleSigSpendingCondition;\n const originSigHash = getOriginSigHash(tx);\n\n const sigHashPre = sigHashPreSign(\n originSigHash,\n AuthType.Sponsored,\n sponsorCondition.fee,\n sponsorCondition.nonce\n );\n\n const sigBytes = await account.sign(hexToBytes(sigHashPre));\n const nextSig = bytesToHex(sigBytes);\n\n return {\n ...tx,\n auth: {\n ...auth,\n sponsorSpendingCondition: {\n ...sponsorCondition,\n signature: nextSig,\n },\n },\n };\n}\n",
6
- "import type { StacksChain } from \"../chains/types.ts\";\nimport type { ClarityValue } from \"../clarity/types.ts\";\nimport type { PostCondition } from \"../postconditions/types.ts\";\nimport type { MultiSigHashMode, SpendingCondition } from \"./types.ts\";\nimport {\n createSingleSigSpendingCondition,\n createStandardAuth,\n createSponsoredAuth,\n} from \"./authorization.ts\";\nimport { createMultiSigSpendingCondition } from \"./multisig.ts\";\nimport {\n PayloadType,\n AnchorMode,\n PostConditionModeWire,\n FungibleConditionCode,\n NonFungibleConditionCode,\n type StacksTransaction,\n type PostConditionWire,\n type PostConditionPrincipalWire,\n type ClarityVersion,\n} from \"./types.ts\";\nimport { Cl } from \"../clarity/values.ts\";\nimport { intToBigInt, type IntegerType } from \"../utils/encoding.ts\";\nimport { parseContractId } from \"../utils/address.ts\";\n\ntype MultiSigOptions = {\n publicKeys?: string[];\n signaturesRequired?: number;\n hashMode?: MultiSigHashMode;\n};\n\nexport type BuildTokenTransferOptions = MultiSigOptions & {\n recipient: string;\n amount: IntegerType;\n memo?: string;\n fee: IntegerType;\n nonce: IntegerType;\n publicKey?: string;\n chain?: StacksChain;\n postConditionMode?: \"allow\" | \"deny\";\n postConditions?: PostCondition[];\n sponsored?: boolean;\n};\n\nexport type BuildContractCallOptions = MultiSigOptions & {\n contractAddress: string;\n contractName: string;\n functionName: string;\n functionArgs: ClarityValue[];\n fee: IntegerType;\n nonce: IntegerType;\n publicKey?: string;\n chain?: StacksChain;\n postConditionMode?: \"allow\" | \"deny\";\n postConditions?: PostCondition[];\n sponsored?: boolean;\n};\n\nexport type BuildContractDeployOptions = MultiSigOptions & {\n contractName: string;\n codeBody: string;\n clarityVersion?: ClarityVersion;\n fee: IntegerType;\n nonce: IntegerType;\n publicKey?: string;\n chain?: StacksChain;\n postConditionMode?: \"allow\" | \"deny\";\n postConditions?: PostCondition[];\n sponsored?: boolean;\n};\n\nfunction resolvePcMode(mode?: \"allow\" | \"deny\"): PostConditionModeWire {\n return mode === \"allow\" ? PostConditionModeWire.Allow : PostConditionModeWire.Deny;\n}\n\nfunction convertPostConditions(pcs?: PostCondition[]): PostConditionWire[] {\n if (!pcs || pcs.length === 0) return [];\n return pcs.map(convertPostCondition);\n}\n\nfunction resolvePrincipal(address: string): PostConditionPrincipalWire {\n if (address === \"origin\") return { type: \"origin\" };\n const [addr, name] = address.split(\".\");\n if (name) {\n return { type: \"contract\", address: addr!, contractName: name };\n }\n return { type: \"standard\", address: addr! };\n}\n\nconst FUNGIBLE_CODE_MAP: Record<string, number> = {\n eq: FungibleConditionCode.Equal,\n gt: FungibleConditionCode.Greater,\n gte: FungibleConditionCode.GreaterEqual,\n lt: FungibleConditionCode.Less,\n lte: FungibleConditionCode.LessEqual,\n};\n\nfunction convertPostCondition(pc: PostCondition): PostConditionWire {\n switch (pc.type) {\n case \"stx-postcondition\":\n return {\n type: \"stx\",\n principal: resolvePrincipal(pc.address),\n conditionCode: FUNGIBLE_CODE_MAP[pc.condition]!,\n amount: intToBigInt(pc.amount),\n };\n case \"ft-postcondition\": {\n const [contractId, tokenName] = pc.asset.split(\"::\");\n const [addr, name] = parseContractId(contractId!);\n return {\n type: \"ft\",\n principal: resolvePrincipal(pc.address),\n asset: { address: addr, contractName: name, assetName: tokenName! },\n conditionCode: FUNGIBLE_CODE_MAP[pc.condition]!,\n amount: intToBigInt(pc.amount),\n };\n }\n case \"nft-postcondition\": {\n const [contractId, tokenName] = pc.asset.split(\"::\");\n const [addr, name] = parseContractId(contractId!);\n return {\n type: \"nft\",\n principal: resolvePrincipal(pc.address),\n asset: { address: addr, contractName: name, assetName: tokenName! },\n conditionCode: pc.condition === \"sent\" ? NonFungibleConditionCode.Sends : NonFungibleConditionCode.DoesNotSend,\n assetId: pc.assetId,\n };\n }\n }\n}\n\nimport type { Authorization } from \"./types.ts\";\n\nfunction resolveSpendingCondition(\n opts: MultiSigOptions & { publicKey?: string },\n nonce: bigint,\n fee: bigint\n): SpendingCondition {\n if (opts.publicKeys) {\n return createMultiSigSpendingCondition(\n opts.publicKeys,\n opts.signaturesRequired!,\n nonce,\n fee,\n opts.hashMode\n );\n }\n return createSingleSigSpendingCondition(opts.publicKey!, nonce, fee);\n}\n\nfunction resolveAuth(spendingCondition: any, sponsored?: boolean): Authorization {\n return sponsored\n ? createSponsoredAuth(spendingCondition)\n : createStandardAuth(spendingCondition);\n}\n\nfunction resolveVersionAndChainId(chain?: StacksChain): { version: number; chainId: number } {\n if (!chain) return { version: 0x00, chainId: 0x00000001 }; // mainnet defaults\n return { version: chain.transactionVersion, chainId: chain.id };\n}\n\nexport function buildTokenTransfer(options: BuildTokenTransferOptions): StacksTransaction {\n const { version, chainId } = resolveVersionAndChainId(options.chain);\n const fee = intToBigInt(options.fee);\n const nonce = intToBigInt(options.nonce);\n\n const spendingCondition = resolveSpendingCondition(options, nonce, fee);\n const recipient = Cl.principal(options.recipient);\n\n const tx: StacksTransaction = {\n version,\n chainId,\n auth: resolveAuth(spendingCondition, options.sponsored),\n anchorMode: AnchorMode.Any,\n postConditionMode: resolvePcMode(options.postConditionMode),\n postConditions: convertPostConditions(options.postConditions),\n payload: {\n payloadType: PayloadType.TokenTransfer,\n recipient,\n amount: intToBigInt(options.amount),\n memo: options.memo ?? \"\",\n },\n };\n\n if (options.publicKeys) {\n (tx as any)._multisig = { publicKeys: options.publicKeys };\n }\n return tx;\n}\n\nexport function buildContractCall(options: BuildContractCallOptions): StacksTransaction {\n const { version, chainId } = resolveVersionAndChainId(options.chain);\n const fee = intToBigInt(options.fee);\n const nonce = intToBigInt(options.nonce);\n\n const spendingCondition = resolveSpendingCondition(options, nonce, fee);\n\n const tx: StacksTransaction = {\n version,\n chainId,\n auth: resolveAuth(spendingCondition, options.sponsored),\n anchorMode: AnchorMode.Any,\n postConditionMode: resolvePcMode(options.postConditionMode),\n postConditions: convertPostConditions(options.postConditions),\n payload: {\n payloadType: PayloadType.ContractCall,\n contractAddress: options.contractAddress,\n contractName: options.contractName,\n functionName: options.functionName,\n functionArgs: options.functionArgs,\n },\n };\n\n if (options.publicKeys) {\n (tx as any)._multisig = { publicKeys: options.publicKeys };\n }\n return tx;\n}\n\nexport function buildContractDeploy(options: BuildContractDeployOptions): StacksTransaction {\n const { version, chainId } = resolveVersionAndChainId(options.chain);\n const fee = intToBigInt(options.fee);\n const nonce = intToBigInt(options.nonce);\n\n const spendingCondition = resolveSpendingCondition(options, nonce, fee);\n const useVersioned = options.clarityVersion !== undefined;\n\n const tx: StacksTransaction = {\n version,\n chainId,\n auth: resolveAuth(spendingCondition, options.sponsored),\n anchorMode: AnchorMode.Any,\n postConditionMode: resolvePcMode(options.postConditionMode),\n postConditions: convertPostConditions(options.postConditions),\n payload: {\n payloadType: useVersioned ? PayloadType.VersionedSmartContract : PayloadType.SmartContract,\n clarityVersion: options.clarityVersion,\n contractName: options.contractName,\n codeBody: options.codeBody,\n },\n };\n\n if (options.publicKeys) {\n (tx as any)._multisig = { publicKeys: options.publicKeys };\n }\n return tx;\n}\n"
7
- ],
8
- "mappings": "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",
9
- "debugId": "DF40EDBE3A72C83764756E2164756E21",
10
- "names": []
11
- }
@@ -1,282 +0,0 @@
1
- import {
2
- Cl
3
- } from "./stacks-j2cy7qtt.js";
4
- import {
5
- txidFromBytes
6
- } from "./stacks-bycy6t9k.js";
7
- import {
8
- parseContractId
9
- } from "./stacks-gjvbq6w7.js";
10
- import {
11
- bytesToHex,
12
- hexToBytes,
13
- intToBigInt
14
- } from "./stacks-nqytwfcc.js";
15
- import {
16
- AnchorMode,
17
- AuthType,
18
- FungibleConditionCode,
19
- NonFungibleConditionCode,
20
- PayloadType,
21
- PostConditionModeWire,
22
- createMultiSigSpendingCondition,
23
- createSingleSigSpendingCondition,
24
- createSponsoredAuth,
25
- createStandardAuth,
26
- intoInitialSighashAuth,
27
- nextSignature,
28
- replayMultiSigSigHash,
29
- serializeTransaction,
30
- sigHashPostSign,
31
- sigHashPreSign
32
- } from "./stacks-xtz0n62y.js";
33
-
34
- // src/transactions/signer.ts
35
- function txid(tx) {
36
- return txidFromBytes(serializeTransaction(tx));
37
- }
38
- function signBegin(tx) {
39
- const cleared = {
40
- ...tx,
41
- auth: intoInitialSighashAuth(tx.auth)
42
- };
43
- return txid(cleared);
44
- }
45
- function signTransaction(tx, privateKey) {
46
- const sigHash = signBegin(tx);
47
- const condition = tx.auth.spendingCondition;
48
- const { nextSig } = nextSignature(sigHash, AuthType.Standard, condition.fee, condition.nonce, privateKey);
49
- return {
50
- ...tx,
51
- auth: {
52
- ...tx.auth,
53
- spendingCondition: {
54
- ...condition,
55
- signature: nextSig
56
- }
57
- }
58
- };
59
- }
60
- async function signTransactionWithAccount(tx, account) {
61
- const sigHash = signBegin(tx);
62
- const condition = tx.auth.spendingCondition;
63
- const sigHashPre = sigHashPreSign(sigHash, AuthType.Standard, condition.fee, condition.nonce);
64
- const sigBytes = await account.sign(hexToBytes(sigHashPre));
65
- const nextSig = bytesToHex(sigBytes);
66
- return {
67
- ...tx,
68
- auth: {
69
- ...tx.auth,
70
- spendingCondition: {
71
- ...condition,
72
- signature: nextSig
73
- }
74
- }
75
- };
76
- }
77
- function getTransactionId(tx) {
78
- return txid(tx);
79
- }
80
- function getOriginSigHash(tx) {
81
- const condition = tx.auth.spendingCondition;
82
- if ("fields" in condition) {
83
- return replayMultiSigSigHash(tx);
84
- }
85
- const initialSigHash = signBegin(tx);
86
- const sc = condition;
87
- const preSign = sigHashPreSign(initialSigHash, AuthType.Standard, sc.fee, sc.nonce);
88
- return sigHashPostSign(preSign, sc.keyEncoding, sc.signature);
89
- }
90
- function signSponsor(tx, privateKey) {
91
- if (tx.auth.authType !== AuthType.Sponsored) {
92
- throw new Error("Transaction must be sponsored");
93
- }
94
- const auth = tx.auth;
95
- const sponsorCondition = auth.sponsorSpendingCondition;
96
- const originSigHash = getOriginSigHash(tx);
97
- const { nextSig } = nextSignature(originSigHash, AuthType.Sponsored, sponsorCondition.fee, sponsorCondition.nonce, privateKey);
98
- return {
99
- ...tx,
100
- auth: {
101
- ...auth,
102
- sponsorSpendingCondition: {
103
- ...sponsorCondition,
104
- signature: nextSig
105
- }
106
- }
107
- };
108
- }
109
- async function signSponsorWithAccount(tx, account) {
110
- if (tx.auth.authType !== AuthType.Sponsored) {
111
- throw new Error("Transaction must be sponsored");
112
- }
113
- const auth = tx.auth;
114
- const sponsorCondition = auth.sponsorSpendingCondition;
115
- const originSigHash = getOriginSigHash(tx);
116
- const sigHashPre = sigHashPreSign(originSigHash, AuthType.Sponsored, sponsorCondition.fee, sponsorCondition.nonce);
117
- const sigBytes = await account.sign(hexToBytes(sigHashPre));
118
- const nextSig = bytesToHex(sigBytes);
119
- return {
120
- ...tx,
121
- auth: {
122
- ...auth,
123
- sponsorSpendingCondition: {
124
- ...sponsorCondition,
125
- signature: nextSig
126
- }
127
- }
128
- };
129
- }
130
-
131
- // src/transactions/build.ts
132
- function resolvePcMode(mode) {
133
- return mode === "allow" ? PostConditionModeWire.Allow : PostConditionModeWire.Deny;
134
- }
135
- function convertPostConditions(pcs) {
136
- if (!pcs || pcs.length === 0)
137
- return [];
138
- return pcs.map(convertPostCondition);
139
- }
140
- function resolvePrincipal(address) {
141
- if (address === "origin")
142
- return { type: "origin" };
143
- const [addr, name] = address.split(".");
144
- if (name) {
145
- return { type: "contract", address: addr, contractName: name };
146
- }
147
- return { type: "standard", address: addr };
148
- }
149
- var FUNGIBLE_CODE_MAP = {
150
- eq: FungibleConditionCode.Equal,
151
- gt: FungibleConditionCode.Greater,
152
- gte: FungibleConditionCode.GreaterEqual,
153
- lt: FungibleConditionCode.Less,
154
- lte: FungibleConditionCode.LessEqual
155
- };
156
- function convertPostCondition(pc) {
157
- switch (pc.type) {
158
- case "stx-postcondition":
159
- return {
160
- type: "stx",
161
- principal: resolvePrincipal(pc.address),
162
- conditionCode: FUNGIBLE_CODE_MAP[pc.condition],
163
- amount: intToBigInt(pc.amount)
164
- };
165
- case "ft-postcondition": {
166
- const [contractId, tokenName] = pc.asset.split("::");
167
- const [addr, name] = parseContractId(contractId);
168
- return {
169
- type: "ft",
170
- principal: resolvePrincipal(pc.address),
171
- asset: { address: addr, contractName: name, assetName: tokenName },
172
- conditionCode: FUNGIBLE_CODE_MAP[pc.condition],
173
- amount: intToBigInt(pc.amount)
174
- };
175
- }
176
- case "nft-postcondition": {
177
- const [contractId, tokenName] = pc.asset.split("::");
178
- const [addr, name] = parseContractId(contractId);
179
- return {
180
- type: "nft",
181
- principal: resolvePrincipal(pc.address),
182
- asset: { address: addr, contractName: name, assetName: tokenName },
183
- conditionCode: pc.condition === "sent" ? NonFungibleConditionCode.Sends : NonFungibleConditionCode.DoesNotSend,
184
- assetId: pc.assetId
185
- };
186
- }
187
- }
188
- }
189
- function resolveSpendingCondition(opts, nonce, fee) {
190
- if (opts.publicKeys) {
191
- return createMultiSigSpendingCondition(opts.publicKeys, opts.signaturesRequired, nonce, fee, opts.hashMode);
192
- }
193
- return createSingleSigSpendingCondition(opts.publicKey, nonce, fee);
194
- }
195
- function resolveAuth(spendingCondition, sponsored) {
196
- return sponsored ? createSponsoredAuth(spendingCondition) : createStandardAuth(spendingCondition);
197
- }
198
- function resolveVersionAndChainId(chain) {
199
- if (!chain)
200
- return { version: 0, chainId: 1 };
201
- return { version: chain.transactionVersion, chainId: chain.id };
202
- }
203
- function buildTokenTransfer(options) {
204
- const { version, chainId } = resolveVersionAndChainId(options.chain);
205
- const fee = intToBigInt(options.fee);
206
- const nonce = intToBigInt(options.nonce);
207
- const spendingCondition = resolveSpendingCondition(options, nonce, fee);
208
- const recipient = Cl.principal(options.recipient);
209
- const tx = {
210
- version,
211
- chainId,
212
- auth: resolveAuth(spendingCondition, options.sponsored),
213
- anchorMode: AnchorMode.Any,
214
- postConditionMode: resolvePcMode(options.postConditionMode),
215
- postConditions: convertPostConditions(options.postConditions),
216
- payload: {
217
- payloadType: PayloadType.TokenTransfer,
218
- recipient,
219
- amount: intToBigInt(options.amount),
220
- memo: options.memo ?? ""
221
- }
222
- };
223
- if (options.publicKeys) {
224
- tx._multisig = { publicKeys: options.publicKeys };
225
- }
226
- return tx;
227
- }
228
- function buildContractCall(options) {
229
- const { version, chainId } = resolveVersionAndChainId(options.chain);
230
- const fee = intToBigInt(options.fee);
231
- const nonce = intToBigInt(options.nonce);
232
- const spendingCondition = resolveSpendingCondition(options, nonce, fee);
233
- const tx = {
234
- version,
235
- chainId,
236
- auth: resolveAuth(spendingCondition, options.sponsored),
237
- anchorMode: AnchorMode.Any,
238
- postConditionMode: resolvePcMode(options.postConditionMode),
239
- postConditions: convertPostConditions(options.postConditions),
240
- payload: {
241
- payloadType: PayloadType.ContractCall,
242
- contractAddress: options.contractAddress,
243
- contractName: options.contractName,
244
- functionName: options.functionName,
245
- functionArgs: options.functionArgs
246
- }
247
- };
248
- if (options.publicKeys) {
249
- tx._multisig = { publicKeys: options.publicKeys };
250
- }
251
- return tx;
252
- }
253
- function buildContractDeploy(options) {
254
- const { version, chainId } = resolveVersionAndChainId(options.chain);
255
- const fee = intToBigInt(options.fee);
256
- const nonce = intToBigInt(options.nonce);
257
- const spendingCondition = resolveSpendingCondition(options, nonce, fee);
258
- const useVersioned = options.clarityVersion !== undefined;
259
- const tx = {
260
- version,
261
- chainId,
262
- auth: resolveAuth(spendingCondition, options.sponsored),
263
- anchorMode: AnchorMode.Any,
264
- postConditionMode: resolvePcMode(options.postConditionMode),
265
- postConditions: convertPostConditions(options.postConditions),
266
- payload: {
267
- payloadType: useVersioned ? PayloadType.VersionedSmartContract : PayloadType.SmartContract,
268
- clarityVersion: options.clarityVersion,
269
- contractName: options.contractName,
270
- codeBody: options.codeBody
271
- }
272
- };
273
- if (options.publicKeys) {
274
- tx._multisig = { publicKeys: options.publicKeys };
275
- }
276
- return tx;
277
- }
278
-
279
- export { signBegin, signTransaction, signTransactionWithAccount, getTransactionId, getOriginSigHash, signSponsor, signSponsorWithAccount, buildTokenTransfer, buildContractCall, buildContractDeploy };
280
-
281
- //# debugId=BE3B7051404532DA64756E2164756E21
282
- //# sourceMappingURL=stacks-nbz193yk.js.map
@@ -1,11 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/transactions/signer.ts", "../src/transactions/build.ts"],
4
- "sourcesContent": [
5
- "import { bytesToHex, hexToBytes } from \"../utils/encoding.ts\";\nimport { txidFromBytes } from \"../utils/hash.ts\";\nimport {\n intoInitialSighashAuth,\n nextSignature,\n sigHashPreSign,\n sigHashPostSign,\n} from \"./authorization.ts\";\nimport { replayMultiSigSigHash } from \"./multisig.ts\";\nimport { serializeTransaction } from \"./wire/serialize.ts\";\nimport {\n AuthType,\n type StacksTransaction,\n type SingleSigSpendingCondition,\n type SponsoredAuthorization,\n} from \"./types.ts\";\nimport type { LocalAccount, CustomAccount } from \"../accounts/types.ts\";\n\nfunction txid(tx: StacksTransaction): string {\n return txidFromBytes(serializeTransaction(tx));\n}\n\n/** Compute the initial sighash for a transaction */\nexport function signBegin(tx: StacksTransaction): string {\n const cleared: StacksTransaction = {\n ...tx,\n auth: intoInitialSighashAuth(tx.auth),\n };\n return txid(cleared);\n}\n\n/** Sign a single-sig transaction with a private key, returning the signed transaction */\nexport function signTransaction(\n tx: StacksTransaction,\n privateKey: string\n): StacksTransaction {\n const sigHash = signBegin(tx);\n const condition = tx.auth.spendingCondition as SingleSigSpendingCondition;\n\n // Origin always signs with AuthType.Standard (even for sponsored txs)\n const { nextSig } = nextSignature(\n sigHash,\n AuthType.Standard,\n condition.fee,\n condition.nonce,\n privateKey\n );\n\n return {\n ...tx,\n auth: {\n ...tx.auth,\n spendingCondition: {\n ...condition,\n signature: nextSig,\n },\n },\n };\n}\n\n/** Sign a single-sig transaction using an account (LocalAccount or CustomAccount) */\nexport async function signTransactionWithAccount(\n tx: StacksTransaction,\n account: LocalAccount | CustomAccount\n): Promise<StacksTransaction> {\n const sigHash = signBegin(tx);\n const condition = tx.auth.spendingCondition as SingleSigSpendingCondition;\n\n // Origin always signs with AuthType.Standard (even for sponsored txs)\n const sigHashPre = sigHashPreSign(\n sigHash,\n AuthType.Standard,\n condition.fee,\n condition.nonce\n );\n\n // account.sign returns 65-byte VRS (recovery + r + s)\n const sigBytes = await account.sign(hexToBytes(sigHashPre));\n const nextSig = bytesToHex(sigBytes);\n\n return {\n ...tx,\n auth: {\n ...tx.auth,\n spendingCondition: {\n ...condition,\n signature: nextSig,\n },\n },\n };\n}\n\n/** Get the txid of a transaction */\nexport function getTransactionId(tx: StacksTransaction): string {\n return txid(tx);\n}\n\n/** Reconstruct the sighash after origin signing (needed for sponsor signing) */\nexport function getOriginSigHash(tx: StacksTransaction): string {\n const condition = tx.auth.spendingCondition;\n\n // Multi-sig: replay through all fields\n if (\"fields\" in condition) {\n return replayMultiSigSigHash(tx);\n }\n\n // Single-sig\n const initialSigHash = signBegin(tx);\n const sc = condition as SingleSigSpendingCondition;\n const preSign = sigHashPreSign(initialSigHash, AuthType.Standard, sc.fee, sc.nonce);\n return sigHashPostSign(preSign, sc.keyEncoding, sc.signature);\n}\n\n/** Sign a sponsored transaction as the sponsor with a private key */\nexport function signSponsor(tx: StacksTransaction, privateKey: string): StacksTransaction {\n if (tx.auth.authType !== AuthType.Sponsored) {\n throw new Error(\"Transaction must be sponsored\");\n }\n const auth = tx.auth as SponsoredAuthorization;\n const sponsorCondition = auth.sponsorSpendingCondition as SingleSigSpendingCondition;\n const originSigHash = getOriginSigHash(tx);\n\n const { nextSig } = nextSignature(\n originSigHash,\n AuthType.Sponsored,\n sponsorCondition.fee,\n sponsorCondition.nonce,\n privateKey\n );\n\n return {\n ...tx,\n auth: {\n ...auth,\n sponsorSpendingCondition: {\n ...sponsorCondition,\n signature: nextSig,\n },\n },\n };\n}\n\n/** Sign a sponsored transaction as the sponsor using an account */\nexport async function signSponsorWithAccount(\n tx: StacksTransaction,\n account: LocalAccount | CustomAccount\n): Promise<StacksTransaction> {\n if (tx.auth.authType !== AuthType.Sponsored) {\n throw new Error(\"Transaction must be sponsored\");\n }\n const auth = tx.auth as SponsoredAuthorization;\n const sponsorCondition = auth.sponsorSpendingCondition as SingleSigSpendingCondition;\n const originSigHash = getOriginSigHash(tx);\n\n const sigHashPre = sigHashPreSign(\n originSigHash,\n AuthType.Sponsored,\n sponsorCondition.fee,\n sponsorCondition.nonce\n );\n\n const sigBytes = await account.sign(hexToBytes(sigHashPre));\n const nextSig = bytesToHex(sigBytes);\n\n return {\n ...tx,\n auth: {\n ...auth,\n sponsorSpendingCondition: {\n ...sponsorCondition,\n signature: nextSig,\n },\n },\n };\n}\n",
6
- "import type { StacksChain } from \"../chains/types.ts\";\nimport type { ClarityValue } from \"../clarity/types.ts\";\nimport type { PostCondition } from \"../postconditions/types.ts\";\nimport type { MultiSigHashMode, SpendingCondition } from \"./types.ts\";\nimport {\n createSingleSigSpendingCondition,\n createStandardAuth,\n createSponsoredAuth,\n} from \"./authorization.ts\";\nimport { createMultiSigSpendingCondition } from \"./multisig.ts\";\nimport {\n PayloadType,\n AnchorMode,\n PostConditionModeWire,\n FungibleConditionCode,\n NonFungibleConditionCode,\n type StacksTransaction,\n type PostConditionWire,\n type PostConditionPrincipalWire,\n type ClarityVersion,\n} from \"./types.ts\";\nimport { Cl } from \"../clarity/values.ts\";\nimport { intToBigInt, type IntegerType } from \"../utils/encoding.ts\";\nimport { parseContractId } from \"../utils/address.ts\";\n\ntype MultiSigOptions = {\n publicKeys?: string[];\n signaturesRequired?: number;\n hashMode?: MultiSigHashMode;\n};\n\nexport type BuildTokenTransferOptions = MultiSigOptions & {\n recipient: string;\n amount: IntegerType;\n memo?: string;\n fee: IntegerType;\n nonce: IntegerType;\n publicKey?: string;\n chain?: StacksChain;\n postConditionMode?: \"allow\" | \"deny\";\n postConditions?: PostCondition[];\n sponsored?: boolean;\n};\n\nexport type BuildContractCallOptions = MultiSigOptions & {\n contractAddress: string;\n contractName: string;\n functionName: string;\n functionArgs: ClarityValue[];\n fee: IntegerType;\n nonce: IntegerType;\n publicKey?: string;\n chain?: StacksChain;\n postConditionMode?: \"allow\" | \"deny\";\n postConditions?: PostCondition[];\n sponsored?: boolean;\n};\n\nexport type BuildContractDeployOptions = MultiSigOptions & {\n contractName: string;\n codeBody: string;\n clarityVersion?: ClarityVersion;\n fee: IntegerType;\n nonce: IntegerType;\n publicKey?: string;\n chain?: StacksChain;\n postConditionMode?: \"allow\" | \"deny\";\n postConditions?: PostCondition[];\n sponsored?: boolean;\n};\n\nfunction resolvePcMode(mode?: \"allow\" | \"deny\"): PostConditionModeWire {\n return mode === \"allow\" ? PostConditionModeWire.Allow : PostConditionModeWire.Deny;\n}\n\nfunction convertPostConditions(pcs?: PostCondition[]): PostConditionWire[] {\n if (!pcs || pcs.length === 0) return [];\n return pcs.map(convertPostCondition);\n}\n\nfunction resolvePrincipal(address: string): PostConditionPrincipalWire {\n if (address === \"origin\") return { type: \"origin\" };\n const [addr, name] = address.split(\".\");\n if (name) {\n return { type: \"contract\", address: addr!, contractName: name };\n }\n return { type: \"standard\", address: addr! };\n}\n\nconst FUNGIBLE_CODE_MAP: Record<string, number> = {\n eq: FungibleConditionCode.Equal,\n gt: FungibleConditionCode.Greater,\n gte: FungibleConditionCode.GreaterEqual,\n lt: FungibleConditionCode.Less,\n lte: FungibleConditionCode.LessEqual,\n};\n\nfunction convertPostCondition(pc: PostCondition): PostConditionWire {\n switch (pc.type) {\n case \"stx-postcondition\":\n return {\n type: \"stx\",\n principal: resolvePrincipal(pc.address),\n conditionCode: FUNGIBLE_CODE_MAP[pc.condition]!,\n amount: intToBigInt(pc.amount),\n };\n case \"ft-postcondition\": {\n const [contractId, tokenName] = pc.asset.split(\"::\");\n const [addr, name] = parseContractId(contractId!);\n return {\n type: \"ft\",\n principal: resolvePrincipal(pc.address),\n asset: { address: addr, contractName: name, assetName: tokenName! },\n conditionCode: FUNGIBLE_CODE_MAP[pc.condition]!,\n amount: intToBigInt(pc.amount),\n };\n }\n case \"nft-postcondition\": {\n const [contractId, tokenName] = pc.asset.split(\"::\");\n const [addr, name] = parseContractId(contractId!);\n return {\n type: \"nft\",\n principal: resolvePrincipal(pc.address),\n asset: { address: addr, contractName: name, assetName: tokenName! },\n conditionCode: pc.condition === \"sent\" ? NonFungibleConditionCode.Sends : NonFungibleConditionCode.DoesNotSend,\n assetId: pc.assetId,\n };\n }\n }\n}\n\nimport type { Authorization } from \"./types.ts\";\n\nfunction resolveSpendingCondition(\n opts: MultiSigOptions & { publicKey?: string },\n nonce: bigint,\n fee: bigint\n): SpendingCondition {\n if (opts.publicKeys) {\n return createMultiSigSpendingCondition(\n opts.publicKeys,\n opts.signaturesRequired!,\n nonce,\n fee,\n opts.hashMode\n );\n }\n return createSingleSigSpendingCondition(opts.publicKey!, nonce, fee);\n}\n\nfunction resolveAuth(spendingCondition: any, sponsored?: boolean): Authorization {\n return sponsored\n ? createSponsoredAuth(spendingCondition)\n : createStandardAuth(spendingCondition);\n}\n\nfunction resolveVersionAndChainId(chain?: StacksChain): { version: number; chainId: number } {\n if (!chain) return { version: 0x00, chainId: 0x00000001 }; // mainnet defaults\n return { version: chain.transactionVersion, chainId: chain.id };\n}\n\nexport function buildTokenTransfer(options: BuildTokenTransferOptions): StacksTransaction {\n const { version, chainId } = resolveVersionAndChainId(options.chain);\n const fee = intToBigInt(options.fee);\n const nonce = intToBigInt(options.nonce);\n\n const spendingCondition = resolveSpendingCondition(options, nonce, fee);\n const recipient = Cl.principal(options.recipient);\n\n const tx: StacksTransaction = {\n version,\n chainId,\n auth: resolveAuth(spendingCondition, options.sponsored),\n anchorMode: AnchorMode.Any,\n postConditionMode: resolvePcMode(options.postConditionMode),\n postConditions: convertPostConditions(options.postConditions),\n payload: {\n payloadType: PayloadType.TokenTransfer,\n recipient,\n amount: intToBigInt(options.amount),\n memo: options.memo ?? \"\",\n },\n };\n\n if (options.publicKeys) {\n (tx as any)._multisig = { publicKeys: options.publicKeys };\n }\n return tx;\n}\n\nexport function buildContractCall(options: BuildContractCallOptions): StacksTransaction {\n const { version, chainId } = resolveVersionAndChainId(options.chain);\n const fee = intToBigInt(options.fee);\n const nonce = intToBigInt(options.nonce);\n\n const spendingCondition = resolveSpendingCondition(options, nonce, fee);\n\n const tx: StacksTransaction = {\n version,\n chainId,\n auth: resolveAuth(spendingCondition, options.sponsored),\n anchorMode: AnchorMode.Any,\n postConditionMode: resolvePcMode(options.postConditionMode),\n postConditions: convertPostConditions(options.postConditions),\n payload: {\n payloadType: PayloadType.ContractCall,\n contractAddress: options.contractAddress,\n contractName: options.contractName,\n functionName: options.functionName,\n functionArgs: options.functionArgs,\n },\n };\n\n if (options.publicKeys) {\n (tx as any)._multisig = { publicKeys: options.publicKeys };\n }\n return tx;\n}\n\nexport function buildContractDeploy(options: BuildContractDeployOptions): StacksTransaction {\n const { version, chainId } = resolveVersionAndChainId(options.chain);\n const fee = intToBigInt(options.fee);\n const nonce = intToBigInt(options.nonce);\n\n const spendingCondition = resolveSpendingCondition(options, nonce, fee);\n const useVersioned = options.clarityVersion !== undefined;\n\n const tx: StacksTransaction = {\n version,\n chainId,\n auth: resolveAuth(spendingCondition, options.sponsored),\n anchorMode: AnchorMode.Any,\n postConditionMode: resolvePcMode(options.postConditionMode),\n postConditions: convertPostConditions(options.postConditions),\n payload: {\n payloadType: useVersioned ? PayloadType.VersionedSmartContract : PayloadType.SmartContract,\n clarityVersion: options.clarityVersion,\n contractName: options.contractName,\n codeBody: options.codeBody,\n },\n };\n\n if (options.publicKeys) {\n (tx as any)._multisig = { publicKeys: options.publicKeys };\n }\n return tx;\n}\n"
7
- ],
8
- "mappings": "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",
9
- "debugId": "BE3B7051404532DA64756E2164756E21",
10
- "names": []
11
- }
@@ -1,23 +0,0 @@
1
- import { createRequire } from "node:module";
2
- var __create = Object.create;
3
- var __getProtoOf = Object.getPrototypeOf;
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __toESM = (mod, isNodeMode, target) => {
8
- target = mod != null ? __create(__getProtoOf(mod)) : {};
9
- const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
10
- for (let key of __getOwnPropNames(mod))
11
- if (!__hasOwnProp.call(to, key))
12
- __defProp(to, key, {
13
- get: () => mod[key],
14
- enumerable: true
15
- });
16
- return to;
17
- };
18
- var __require = /* @__PURE__ */ createRequire(import.meta.url);
19
-
20
- export { __toESM, __require };
21
-
22
- //# debugId=3D8B6E2927A7752164756E2164756E21
23
- //# sourceMappingURL=stacks-njvyj3ab.js.map
@@ -1,9 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [
5
- ],
6
- "mappings": "",
7
- "debugId": "3D8B6E2927A7752164756E2164756E21",
8
- "names": []
9
- }