@chainvue/verus-sdk 0.15.0 → 0.17.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 (54) hide show
  1. package/README.md +9 -0
  2. package/dist/assemble/assembler.d.ts +2 -8
  3. package/dist/assemble/assembler.d.ts.map +1 -1
  4. package/dist/assemble/assembler.js +30 -20
  5. package/dist/assemble/assembler.js.map +1 -1
  6. package/dist/assemble/fundedIdentityUpdate.d.ts +0 -3
  7. package/dist/assemble/fundedIdentityUpdate.d.ts.map +1 -1
  8. package/dist/assemble/fundedIdentityUpdate.js +22 -14
  9. package/dist/assemble/fundedIdentityUpdate.js.map +1 -1
  10. package/dist/bundle.js +179 -160
  11. package/dist/constants/index.d.ts +31 -3
  12. package/dist/constants/index.d.ts.map +1 -1
  13. package/dist/constants/index.js +32 -4
  14. package/dist/constants/index.js.map +1 -1
  15. package/dist/currency/index.d.ts.map +1 -1
  16. package/dist/currency/index.js +0 -3
  17. package/dist/currency/index.js.map +1 -1
  18. package/dist/currency/launch.d.ts.map +1 -1
  19. package/dist/currency/launch.js +0 -2
  20. package/dist/currency/launch.js.map +1 -1
  21. package/dist/fee/index.d.ts +116 -0
  22. package/dist/fee/index.d.ts.map +1 -0
  23. package/dist/fee/index.js +228 -0
  24. package/dist/fee/index.js.map +1 -0
  25. package/dist/identity/index.d.ts.map +1 -1
  26. package/dist/identity/index.js +2 -16
  27. package/dist/identity/index.js.map +1 -1
  28. package/dist/identity/multisig.d.ts.map +1 -1
  29. package/dist/identity/multisig.js +23 -18
  30. package/dist/identity/multisig.js.map +1 -1
  31. package/dist/index.d.ts +3 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +41 -33
  34. package/dist/index.js.map +1 -1
  35. package/dist/offers/identity.d.ts.map +1 -1
  36. package/dist/offers/identity.js +40 -32
  37. package/dist/offers/identity.js.map +1 -1
  38. package/dist/offers/reclaim.d.ts.map +1 -1
  39. package/dist/offers/reclaim.js +29 -21
  40. package/dist/offers/reclaim.js.map +1 -1
  41. package/dist/offers/taker.d.ts.map +1 -1
  42. package/dist/offers/taker.js +22 -17
  43. package/dist/offers/taker.js.map +1 -1
  44. package/dist/transfer/index.d.ts.map +1 -1
  45. package/dist/transfer/index.js +26 -3
  46. package/dist/transfer/index.js.map +1 -1
  47. package/dist/types/index.d.ts +12 -1
  48. package/dist/types/index.d.ts.map +1 -1
  49. package/dist/types/index.js.map +1 -1
  50. package/dist/utxo/index.d.ts +11 -8
  51. package/dist/utxo/index.d.ts.map +1 -1
  52. package/dist/utxo/index.js +20 -37
  53. package/dist/utxo/index.js.map +1 -1
  54. package/package.json +1 -1
@@ -36,19 +36,20 @@ exports.completeSwapIdentityOffer = completeSwapIdentityOffer;
36
36
  */
37
37
  const boundary_js_1 = require("../fork/boundary.js");
38
38
  const index_js_1 = require("../utxo/index.js");
39
- const index_js_2 = require("../signing/index.js");
40
- const index_js_3 = require("../identity/index.js");
39
+ const index_js_2 = require("../fee/index.js");
40
+ const index_js_3 = require("../signing/index.js");
41
+ const index_js_4 = require("../identity/index.js");
41
42
  const sign_js_1 = require("./sign.js");
42
43
  const maker_js_1 = require("./maker.js");
43
- const index_js_4 = require("../utils/index.js");
44
+ const index_js_5 = require("../utils/index.js");
44
45
  const brands_js_1 = require("../core/brands.js");
45
- const index_js_5 = require("../constants/index.js");
46
+ const index_js_6 = require("../constants/index.js");
46
47
  const errors_js_1 = require("../errors.js");
47
48
  /** A native payment script to an R-address (P2PKH) or i-address (pay-to-identity). */
48
49
  function nativePaymentScript(address) {
49
50
  return address.startsWith('i')
50
- ? (0, index_js_3.identityPaymentScript)((0, brands_js_1.parseIAddress)(address, 'address'))
51
- : (0, index_js_4.addressToScriptPubKey)(address);
51
+ ? (0, index_js_4.identityPaymentScript)((0, brands_js_1.parseIAddress)(address, 'address'))
52
+ : (0, index_js_5.addressToScriptPubKey)(address);
52
53
  }
53
54
  /**
54
55
  * Build the TRANSFERRED identity output: the given identity with its primary
@@ -58,7 +59,7 @@ function nativePaymentScript(address) {
58
59
  function buildTransferredIdentity(identityJson, newPrimaryAddresses) {
59
60
  const identity = boundary_js_1.Identity.fromJson(identityJson);
60
61
  identity.setPrimaryAddresses(newPrimaryAddresses);
61
- return (0, index_js_3.buildIdentityScript)(identity);
62
+ return (0, index_js_4.buildIdentityScript)(identity);
62
63
  }
63
64
  /** An offer MUST expire at a real future height; the daemon rejects 0 as expired. */
64
65
  function assertExpiryHeight(expiryHeight) {
@@ -81,9 +82,13 @@ function assertExpiryHeight(expiryHeight) {
81
82
  * offered amount for a native buy offer, else 0).
82
83
  */
83
84
  function fundFeeAndSignIdentityTaker(args) {
84
- const systemId = index_js_5.NETWORK_CONFIG[args.network].chainId;
85
- const verusNetwork = (0, index_js_2.getNetwork)(args.network === 'testnet');
86
- const selection = (0, index_js_1.selectUtxos)(args.takerUtxos, 0n, new Map(), 3, systemId, undefined, true, args.extraOutputBytes);
85
+ const systemId = index_js_6.NETWORK_CONFIG[args.network].chainId;
86
+ const verusNetwork = (0, index_js_3.getNetwork)(args.network === 'testnet');
87
+ // Every non-change output of the completed swap is already on `args.tx` (the
88
+ // maker's output 0 plus the one this completion added), so the daemon's
89
+ // per-output fee — identity factors included — is exactly computable here.
90
+ const minerFee = (0, index_js_2.estimateMinerFee)(args.tx.outs.map((o) => o.script));
91
+ const selection = (0, index_js_1.selectUtxos)(args.takerUtxos, 0n, new Map(), minerFee, systemId);
87
92
  // Fee UTXOs must carry only the native coin: no reserve change output is built
88
93
  // here, so a selected token-bearing UTXO would lose its reserve value.
89
94
  if (selection.currencyChanges.size > 0) {
@@ -94,7 +99,7 @@ function fundFeeAndSignIdentityTaker(args) {
94
99
  // verified offline — fails closed with a typed error instead of a doomed,
95
100
  // daemon-rejected tx. (The identity CC input is a caller-supplied priorInput,
96
101
  // not a selected fee UTXO, and is signed by the key that controls it.)
97
- const expectedScript = (0, index_js_4.addressToScriptPubKey)(boundary_js_1.ECPair.fromWIF(args.wif, verusNetwork).getAddress()).toString('hex');
102
+ const expectedScript = (0, index_js_5.addressToScriptPubKey)(boundary_js_1.ECPair.fromWIF(args.wif, verusNetwork).getAddress()).toString('hex');
98
103
  const takerInputs = [...args.priorInputs];
99
104
  for (const u of selection.selected) {
100
105
  if (u.script !== expectedScript) {
@@ -105,10 +110,11 @@ function fundFeeAndSignIdentityTaker(args) {
105
110
  }
106
111
  // Native change, if any (no currency moves through the fee inputs).
107
112
  if (selection.nativeChange > 0n) {
108
- args.tx.addOutput(nativePaymentScript(args.changeAddress), (0, index_js_4.toSafeNumber)(selection.nativeChange));
113
+ args.tx.addOutput(nativePaymentScript(args.changeAddress), (0, index_js_5.toSafeNumber)(selection.nativeChange));
109
114
  }
110
115
  const feeNativeIn = selection.selected.reduce((s, u) => s + u.satoshis, 0n);
111
- (0, index_js_2.assertNativeConservation)([{ satoshis: args.extraInputNative + feeNativeIn }], args.tx.outs, selection.fee, args.label);
116
+ (0, index_js_3.assertNativeConservation)([{ satoshis: args.extraInputNative + feeNativeIn }], args.tx.outs, selection.fee, args.label);
117
+ (0, index_js_2.assertFeeMeetsRelayMinimum)(selection.fee, args.tx.outs.map((o) => o.script), args.label);
112
118
  const { signedTx, txid } = (0, sign_js_1.signTakerInputs)(args.tx.toHex(), takerInputs, args.wif, args.network);
113
119
  return { swapTx: signedTx, txid };
114
120
  }
@@ -131,8 +137,8 @@ function buildSellIdentityOffer(params, network) {
131
137
  * (transferred to `newPrimaryAddresses`), and sign the taker's side.
132
138
  */
133
139
  function completeSellIdentityOffer(params, network) {
134
- const verusNetwork = (0, index_js_2.getNetwork)(network === 'testnet');
135
- const systemId = index_js_5.NETWORK_CONFIG[network].chainId;
140
+ const verusNetwork = (0, index_js_3.getNetwork)(network === 'testnet');
141
+ const systemId = index_js_6.NETWORK_CONFIG[network].chainId;
136
142
  const wantingNative = params.want.currency === systemId;
137
143
  if (params.want.amount <= 0n) {
138
144
  throw new errors_js_1.TransactionBuildError('completeSellIdentityOffer: want.amount must be positive');
@@ -153,7 +159,10 @@ function completeSellIdentityOffer(params, network) {
153
159
  ? new Map()
154
160
  : new Map([[params.want.currency, params.want.amount]]);
155
161
  const requiredNative = wantingNative ? params.want.amount : 0n;
156
- const selection = (0, index_js_1.selectUtxos)(params.takerUtxos, requiredNative, wantedTokenReq, 3, systemId, undefined, true, 150);
162
+ // Both non-change outputs (the maker's wanted output 0 and the transferred
163
+ // identity added above) are on `tx` already, so the fee is exact.
164
+ const minerFee = (0, index_js_2.estimateMinerFee)(tx.outs.map((o) => o.script));
165
+ const selection = (0, index_js_1.selectUtxos)(params.takerUtxos, requiredNative, wantedTokenReq, minerFee, systemId);
157
166
  const takerInputs = [];
158
167
  for (const u of selection.selected) {
159
168
  const idx = tx.addInput(Buffer.from(u.txid, 'hex').reverse(), u.outputIndex, 0xffffffff);
@@ -163,11 +172,11 @@ function completeSellIdentityOffer(params, network) {
163
172
  const hasTokenChange = selection.currencyChanges.size > 0;
164
173
  if (hasTokenChange || selection.nativeChange > 0n) {
165
174
  if (hasTokenChange) {
166
- const change = (0, index_js_3.buildTokenChangeOutput)((0, brands_js_1.parseAddress)(params.changeAddress, 'changeAddress'), selection.currencyChanges);
167
- tx.addOutput(change.script, (0, index_js_4.toSafeNumber)(selection.nativeChange));
175
+ const change = (0, index_js_4.buildTokenChangeOutput)((0, brands_js_1.parseAddress)(params.changeAddress, 'changeAddress'), selection.currencyChanges);
176
+ tx.addOutput(change.script, (0, index_js_5.toSafeNumber)(selection.nativeChange));
168
177
  }
169
178
  else {
170
- tx.addOutput(nativePaymentScript(params.changeAddress), (0, index_js_4.toSafeNumber)(selection.nativeChange));
179
+ tx.addOutput(nativePaymentScript(params.changeAddress), (0, index_js_5.toSafeNumber)(selection.nativeChange));
171
180
  }
172
181
  }
173
182
  // Token conservation over the taker's own inputs (wanted token → output 0 + change).
@@ -175,7 +184,8 @@ function completeSellIdentityOffer(params, network) {
175
184
  // Native conservation: the identity input carries 0 native, so the taker's
176
185
  // native inputs must equal the wanted-native output (if any) + change + fee.
177
186
  const takerNativeIn = selection.selected.reduce((s, u) => s + u.satoshis, 0n);
178
- (0, index_js_2.assertNativeConservation)([{ satoshis: takerNativeIn }], tx.outs, selection.fee, 'takeSellIdentityOffer');
187
+ (0, index_js_3.assertNativeConservation)([{ satoshis: takerNativeIn }], tx.outs, selection.fee, 'takeSellIdentityOffer');
188
+ (0, index_js_2.assertFeeMeetsRelayMinimum)(selection.fee, tx.outs.map((o) => o.script), 'takeSellIdentityOffer');
179
189
  const { signedTx, txid } = (0, sign_js_1.signTakerInputs)(tx.toHex(), takerInputs, params.wif, network);
180
190
  return { swapTx: signedTx, txid };
181
191
  }
@@ -190,13 +200,13 @@ function buildBuyIdentityOffer(params, network) {
190
200
  if (params.buyerPrimaryAddresses.length === 0) {
191
201
  throw new errors_js_1.TransactionBuildError('buildBuyIdentityOffer: buyerPrimaryAddresses must not be empty');
192
202
  }
193
- const verusNetwork = (0, index_js_2.getNetwork)(network === 'testnet');
203
+ const verusNetwork = (0, index_js_3.getNetwork)(network === 'testnet');
194
204
  // The single wanted output: the identity transferred to the buyer.
195
205
  const wantedScript = buildTransferredIdentity(params.identityJson, params.buyerPrimaryAddresses);
196
206
  const txb = new boundary_js_1.TransactionBuilder(verusNetwork);
197
207
  txb.setVersion(4);
198
- txb.setExpiryHeight((0, index_js_2.resolveExpiryHeight)(params.expiryHeight));
199
- txb.setVersionGroupId(index_js_5.VERSION_GROUP_ID);
208
+ txb.setExpiryHeight((0, index_js_3.resolveExpiryHeight)(params.expiryHeight));
209
+ txb.setVersionGroupId(index_js_6.VERSION_GROUP_ID);
200
210
  txb.addInput(Buffer.from(params.commitment.txid, 'hex').reverse(), params.commitment.vout, 0xffffffff, Buffer.from(params.commitment.script, 'hex'));
201
211
  txb.addOutput(wantedScript, 0);
202
212
  const { signedTx, txid } = (0, sign_js_1.signOfferInput)(txb.buildIncomplete().toHex(), 0, Buffer.from(params.commitment.script, 'hex'), params.commitment.value, params.wif, network);
@@ -209,8 +219,8 @@ function buildBuyIdentityOffer(params, network) {
209
219
  * identity input, the currency-to-seller output, native for the fee, and change.
210
220
  */
211
221
  function completeBuyIdentityOffer(params, network) {
212
- const verusNetwork = (0, index_js_2.getNetwork)(network === 'testnet');
213
- const systemId = index_js_5.NETWORK_CONFIG[network].chainId;
222
+ const verusNetwork = (0, index_js_3.getNetwork)(network === 'testnet');
223
+ const systemId = index_js_6.NETWORK_CONFIG[network].chainId;
214
224
  const offeringNative = params.offered.currency === systemId;
215
225
  if (params.offered.amount <= 0n) {
216
226
  throw new errors_js_1.TransactionBuildError('completeBuyIdentityOffer: offered.amount must be positive');
@@ -230,10 +240,10 @@ function completeBuyIdentityOffer(params, network) {
230
240
  // Output 1: the offered currency paid to the seller — plain payment for the
231
241
  // native coin, a reserve output for a token.
232
242
  if (offeringNative) {
233
- tx.addOutput(nativePaymentScript(params.sellerReceiveAddress), (0, index_js_4.toSafeNumber)(params.offered.amount));
243
+ tx.addOutput(nativePaymentScript(params.sellerReceiveAddress), (0, index_js_5.toSafeNumber)(params.offered.amount));
234
244
  }
235
245
  else {
236
- const out = (0, index_js_3.buildTokenChangeOutput)((0, brands_js_1.parseAddress)(params.sellerReceiveAddress, 'sellerReceiveAddress'), new Map([[params.offered.currency, params.offered.amount]]));
246
+ const out = (0, index_js_4.buildTokenChangeOutput)((0, brands_js_1.parseAddress)(params.sellerReceiveAddress, 'sellerReceiveAddress'), new Map([[params.offered.currency, params.offered.amount]]));
237
247
  tx.addOutput(out.script, 0);
238
248
  }
239
249
  // The seller funds only the miner fee (native): select native-only UTXOs owned
@@ -247,7 +257,6 @@ function completeBuyIdentityOffer(params, network) {
247
257
  wif: params.wif,
248
258
  network,
249
259
  label: 'takeBuyIdentityOffer',
250
- extraOutputBytes: 300,
251
260
  });
252
261
  }
253
262
  /**
@@ -284,7 +293,7 @@ function buildSwapIdentityOffer(params, network) {
284
293
  * No currency moves — the taker funds only the miner fee.
285
294
  */
286
295
  function completeSwapIdentityOffer(params, network) {
287
- const verusNetwork = (0, index_js_2.getNetwork)(network === 'testnet');
296
+ const verusNetwork = (0, index_js_3.getNetwork)(network === 'testnet');
288
297
  if (params.takerPrimaryAddresses.length === 0) {
289
298
  throw new errors_js_1.TransactionBuildError('completeSwapIdentityOffer: takerPrimaryAddresses must not be empty');
290
299
  }
@@ -300,8 +309,8 @@ function completeSwapIdentityOffer(params, network) {
300
309
  { index: idIdx, prevOutScript: Buffer.from(params.wantedIdentityOutput.script, 'hex'), value: 0n },
301
310
  ];
302
311
  // The taker funds only the miner fee (native): both identity inputs carry 0
303
- // native. Two identity outputs + the maker input are already present but
304
- // invisible to selectUtxos, so a generous byte allowance covers their fee.
312
+ // native. Both identity outputs are already on `tx`, so the fee helper prices
313
+ // them (and their identityFeeFactors) directly.
305
314
  return fundFeeAndSignIdentityTaker({
306
315
  tx,
307
316
  priorInputs: takerInputs,
@@ -311,7 +320,6 @@ function completeSwapIdentityOffer(params, network) {
311
320
  wif: params.wif,
312
321
  network,
313
322
  label: 'takeSwapIdentityOffer',
314
- extraOutputBytes: 500,
315
323
  });
316
324
  }
317
325
  //# sourceMappingURL=identity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/offers/identity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/offers/identity.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"reclaim.d.ts","sourceRoot":"","sources":["../../src/offers/reclaim.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,mFAAmF;IACnF,UAAU,EAAE,cAAc,CAAC;IAC3B;;;;;OAKG;IACH,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAClB,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AASD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,GAAG,kBAAkB,CAkGlG"}
1
+ {"version":3,"file":"reclaim.d.ts","sourceRoot":"","sources":["../../src/offers/reclaim.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAKjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,mFAAmF;IACnF,UAAU,EAAE,cAAc,CAAC;IAC3B;;;;;OAKG;IACH,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAClB,gFAAgF;IAChF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AASD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,kBAAkB,EAAE,OAAO,EAAE,OAAO,GAAG,kBAAkB,CAyGlG"}
@@ -23,26 +23,27 @@ exports.buildReclaimOffer = buildReclaimOffer;
23
23
  */
24
24
  const boundary_js_1 = require("../fork/boundary.js");
25
25
  const index_js_1 = require("../utxo/index.js");
26
- const index_js_2 = require("../signing/index.js");
27
- const index_js_3 = require("../identity/index.js");
26
+ const index_js_2 = require("../fee/index.js");
27
+ const index_js_3 = require("../signing/index.js");
28
+ const index_js_4 = require("../identity/index.js");
28
29
  const sign_js_1 = require("./sign.js");
29
- const index_js_4 = require("../utils/index.js");
30
+ const index_js_5 = require("../utils/index.js");
30
31
  const brands_js_1 = require("../core/brands.js");
31
- const index_js_5 = require("../constants/index.js");
32
+ const index_js_6 = require("../constants/index.js");
32
33
  const errors_js_1 = require("../errors.js");
33
34
  /** A native payment script to an R-address (P2PKH) or i-address (pay-to-identity). */
34
35
  function nativePaymentScript(address) {
35
36
  return address.startsWith('i')
36
- ? (0, index_js_3.identityPaymentScript)((0, brands_js_1.parseIAddress)(address, 'address'))
37
- : (0, index_js_4.addressToScriptPubKey)(address);
37
+ ? (0, index_js_4.identityPaymentScript)((0, brands_js_1.parseIAddress)(address, 'address'))
38
+ : (0, index_js_5.addressToScriptPubKey)(address);
38
39
  }
39
40
  /**
40
41
  * Reclaim (cancel) an unaccepted offer: spend the funding commitment back to the
41
42
  * maker, signed SIGHASH_ALL. Returns the signed transaction to broadcast.
42
43
  */
43
44
  function buildReclaimOffer(params, network) {
44
- const verusNetwork = (0, index_js_2.getNetwork)(network === 'testnet');
45
- const systemId = index_js_5.NETWORK_CONFIG[network].chainId;
45
+ const verusNetwork = (0, index_js_3.getNetwork)(network === 'testnet');
46
+ const systemId = index_js_6.NETWORK_CONFIG[network].chainId;
46
47
  const offeringNative = params.offered.currency === systemId;
47
48
  if (params.offered.amount <= 0n) {
48
49
  throw new errors_js_1.TransactionBuildError('buildReclaimOffer: offered.amount must be positive');
@@ -53,22 +54,26 @@ function buildReclaimOffer(params, network) {
53
54
  const commitmentScript = Buffer.from(params.commitment.script, 'hex');
54
55
  const txb = new boundary_js_1.TransactionBuilder(verusNetwork);
55
56
  txb.setVersion(4);
56
- txb.setExpiryHeight((0, index_js_2.resolveExpiryHeight)(params.expiryHeight));
57
- txb.setVersionGroupId(index_js_5.VERSION_GROUP_ID);
57
+ txb.setExpiryHeight((0, index_js_3.resolveExpiryHeight)(params.expiryHeight));
58
+ txb.setVersionGroupId(index_js_6.VERSION_GROUP_ID);
58
59
  txb.addInput(Buffer.from(params.commitment.txid, 'hex').reverse(), params.commitment.vout, 0xffffffff, commitmentScript);
59
60
  if (offeringNative) {
60
- // The fee comes out of the reclaimed native value; one CC input, one output.
61
- const fee = (0, index_js_1.estimateFee)(1, 1, index_js_5.DEFAULT_FEE_PER_KB, false, 100);
61
+ // The fee comes out of the reclaimed native value; one output, so one
62
+ // DEFAULT_TRANSACTION_FEE. (The old estimate passed 100 extra bytes here,
63
+ // which the 10000-sat floor swallowed — it was always exactly 10000 too.)
64
+ const payScript = nativePaymentScript(params.makerAddress);
65
+ const fee = (0, index_js_2.estimateMinerFee)([payScript]);
62
66
  const outAmount = params.offered.amount - fee;
63
- if (outAmount <= index_js_5.DUST_THRESHOLD) {
67
+ if (outAmount <= index_js_6.DUST_THRESHOLD) {
64
68
  throw new errors_js_1.TransactionBuildError(`buildReclaimOffer: reclaimed native value ${params.offered.amount} is too small to cover the fee ${fee} above dust`);
65
69
  }
66
- txb.addOutput(nativePaymentScript(params.makerAddress), (0, index_js_4.toSafeNumber)(outAmount));
70
+ txb.addOutput(payScript, (0, index_js_5.toSafeNumber)(outAmount));
67
71
  const tx = boundary_js_1.Transaction.fromHex(txb.buildIncomplete().toHex(), verusNetwork);
68
72
  const takerInputs = [
69
73
  { index: 0, prevOutScript: commitmentScript, value: params.commitment.value },
70
74
  ];
71
- (0, index_js_2.assertNativeConservation)([{ satoshis: params.commitment.value }], tx.outs, fee, 'reclaimOffer');
75
+ (0, index_js_3.assertNativeConservation)([{ satoshis: params.commitment.value }], tx.outs, fee, 'reclaimOffer');
76
+ (0, index_js_2.assertFeeMeetsRelayMinimum)(fee, tx.outs.map((o) => o.script), 'reclaimOffer');
72
77
  const { signedTx, txid } = (0, sign_js_1.signTakerInputs)(tx.toHex(), takerInputs, params.wif, network);
73
78
  return { reclaimTx: signedTx, txid };
74
79
  }
@@ -79,21 +84,23 @@ function buildReclaimOffer(params, network) {
79
84
  throw new errors_js_1.TransactionBuildError('buildReclaimOffer: reclaiming a token requires feeUtxos (native UTXOs) — the token commitment carries no native coin for the fee');
80
85
  }
81
86
  // Output 0: the offered token returned to the maker (a reserve output, 0 native).
82
- const tokenOut = (0, index_js_3.buildTokenChangeOutput)((0, brands_js_1.parseAddress)(params.makerAddress, 'makerAddress'), new Map([[params.offered.currency, params.offered.amount]]));
87
+ const tokenOut = (0, index_js_4.buildTokenChangeOutput)((0, brands_js_1.parseAddress)(params.makerAddress, 'makerAddress'), new Map([[params.offered.currency, params.offered.amount]]));
83
88
  txb.addOutput(tokenOut.script, 0);
84
89
  const tx = boundary_js_1.Transaction.fromHex(txb.buildIncomplete().toHex(), verusNetwork);
85
90
  const takerInputs = [
86
91
  { index: 0, prevOutScript: commitmentScript, value: 0n },
87
92
  ];
88
- // Select native-only fee UTXOs (numOutputs = token out + native change).
89
- const selection = (0, index_js_1.selectUtxos)(feeUtxos, 0n, new Map(), 2, systemId, undefined, true, 200);
93
+ // Select native-only fee UTXOs. The token output is the only declared output;
94
+ // native change is priced by the daemon as change, i.e. free.
95
+ const minerFee = (0, index_js_2.estimateMinerFee)([tokenOut.script]);
96
+ const selection = (0, index_js_1.selectUtxos)(feeUtxos, 0n, new Map(), minerFee, systemId);
90
97
  if (selection.currencyChanges.size > 0) {
91
98
  throw new errors_js_1.TransactionBuildError('buildReclaimOffer: feeUtxos must carry only the native coin; a token-bearing UTXO was selected and its reserve value would be lost.');
92
99
  }
93
100
  // Fee UTXOs must be native P2PKH controlled by `wif`. Rejecting anything else
94
101
  // (including CryptoCondition outputs, whose control can't be verified offline)
95
102
  // fails closed with a typed error instead of a doomed, daemon-rejected tx.
96
- const expectedFeeScript = (0, index_js_4.addressToScriptPubKey)(boundary_js_1.ECPair.fromWIF(params.wif, verusNetwork).getAddress()).toString('hex');
103
+ const expectedFeeScript = (0, index_js_5.addressToScriptPubKey)(boundary_js_1.ECPair.fromWIF(params.wif, verusNetwork).getAddress()).toString('hex');
97
104
  for (const u of selection.selected) {
98
105
  if (u.script !== expectedFeeScript) {
99
106
  throw new errors_js_1.TransactionBuildError(`buildReclaimOffer: fee UTXO ${u.txid}:${u.outputIndex} must be a native P2PKH output controlled by the provided wif.`);
@@ -102,10 +109,11 @@ function buildReclaimOffer(params, network) {
102
109
  takerInputs.push({ index: idx, prevOutScript: Buffer.from(u.script, 'hex'), value: u.satoshis });
103
110
  }
104
111
  if (selection.nativeChange > 0n) {
105
- tx.addOutput(nativePaymentScript(params.changeAddress ?? params.makerAddress), (0, index_js_4.toSafeNumber)(selection.nativeChange));
112
+ tx.addOutput(nativePaymentScript(params.changeAddress ?? params.makerAddress), (0, index_js_5.toSafeNumber)(selection.nativeChange));
106
113
  }
107
114
  const feeNativeIn = selection.selected.reduce((s, u) => s + u.satoshis, 0n);
108
- (0, index_js_2.assertNativeConservation)([{ satoshis: feeNativeIn }], tx.outs, selection.fee, 'reclaimOffer');
115
+ (0, index_js_3.assertNativeConservation)([{ satoshis: feeNativeIn }], tx.outs, selection.fee, 'reclaimOffer');
116
+ (0, index_js_2.assertFeeMeetsRelayMinimum)(selection.fee, tx.outs.map((o) => o.script), 'reclaimOffer');
109
117
  const { signedTx, txid } = (0, sign_js_1.signTakerInputs)(tx.toHex(), takerInputs, params.wif, network);
110
118
  return { reclaimTx: signedTx, txid };
111
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reclaim.js","sourceRoot":"","sources":["../../src/offers/reclaim.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reclaim.js","sourceRoot":"","sources":["../../src/offers/reclaim.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"taker.d.ts","sourceRoot":"","sources":["../../src/offers/taker.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,8EAA8E;IAC9E,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,8EAA8E;IAC9E,UAAU,EAAE,IAAI,EAAE,CAAC;IACnB,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AASD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,GAAG,mBAAmB,CA4FhG"}
1
+ {"version":3,"file":"taker.d.ts","sourceRoot":"","sources":["../../src/offers/taker.ts"],"names":[],"mappings":"AAgCA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,WAAW,mBAAmB;IAClC,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,8EAA8E;IAC9E,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,8EAA8E;IAC9E,UAAU,EAAE,IAAI,EAAE,CAAC;IACnB,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AASD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,GAAG,mBAAmB,CAuFhG"}
@@ -25,18 +25,19 @@ exports.completeOffer = completeOffer;
25
25
  */
26
26
  const boundary_js_1 = require("../fork/boundary.js");
27
27
  const index_js_1 = require("../utxo/index.js");
28
- const index_js_2 = require("../signing/index.js");
29
- const index_js_3 = require("../identity/index.js");
28
+ const index_js_2 = require("../fee/index.js");
29
+ const index_js_3 = require("../signing/index.js");
30
+ const index_js_4 = require("../identity/index.js");
30
31
  const sign_js_1 = require("./sign.js");
31
- const index_js_4 = require("../utils/index.js");
32
+ const index_js_5 = require("../utils/index.js");
32
33
  const brands_js_1 = require("../core/brands.js");
33
- const index_js_5 = require("../constants/index.js");
34
+ const index_js_6 = require("../constants/index.js");
34
35
  const errors_js_1 = require("../errors.js");
35
36
  /** A native payment script to an R-address (P2PKH) or i-address (pay-to-identity). */
36
37
  function nativePaymentScript(address) {
37
38
  return address.startsWith('i')
38
- ? (0, index_js_3.identityPaymentScript)((0, brands_js_1.parseIAddress)(address, 'address'))
39
- : (0, index_js_4.addressToScriptPubKey)(address);
39
+ ? (0, index_js_4.identityPaymentScript)((0, brands_js_1.parseIAddress)(address, 'address'))
40
+ : (0, index_js_5.addressToScriptPubKey)(address);
40
41
  }
41
42
  /**
42
43
  * Complete an offer: take the maker's half-signed offer, pay the wanted asset,
@@ -44,8 +45,8 @@ function nativePaymentScript(address) {
44
45
  * assets may each be the native coin or a token (all four combinations).
45
46
  */
46
47
  function completeOffer(params, network) {
47
- const verusNetwork = (0, index_js_2.getNetwork)(network === 'testnet');
48
- const systemId = index_js_5.NETWORK_CONFIG[network].chainId;
48
+ const verusNetwork = (0, index_js_3.getNetwork)(network === 'testnet');
49
+ const systemId = index_js_6.NETWORK_CONFIG[network].chainId;
49
50
  const offeringNative = params.offered.currency === systemId;
50
51
  const wantingNative = params.want.currency === systemId;
51
52
  if (params.offered.amount <= 0n || params.want.amount <= 0n) {
@@ -62,21 +63,24 @@ function completeOffer(params, network) {
62
63
  // native coin, a reserve output (0 native) for a token. The offered asset
63
64
  // flows from input 0 to here, self-contained.
64
65
  if (offeringNative) {
65
- tx.addOutput(nativePaymentScript(params.takerAddress), (0, index_js_4.toSafeNumber)(params.offered.amount));
66
+ tx.addOutput(nativePaymentScript(params.takerAddress), (0, index_js_5.toSafeNumber)(params.offered.amount));
66
67
  }
67
68
  else {
68
- const offeredOut = (0, index_js_3.buildTokenChangeOutput)((0, brands_js_1.parseAddress)(params.takerAddress, 'takerAddress'), new Map([[params.offered.currency, params.offered.amount]]));
69
+ const offeredOut = (0, index_js_4.buildTokenChangeOutput)((0, brands_js_1.parseAddress)(params.takerAddress, 'takerAddress'), new Map([[params.offered.currency, params.offered.amount]]));
69
70
  tx.addOutput(offeredOut.script, 0);
70
71
  }
71
72
  // The taker's own UTXOs fund only the WANTED asset (paid to output 0) plus the
72
73
  // miner fee. When the wanted asset is a token it is a required currency; when
73
- // native it is required native on top of the fee. numOutputs=3 (wanted, offered,
74
- // change); +150 bytes accounts for the maker's input, which selectUtxos can't see.
74
+ // native it is required native on top of the fee. Both non-change outputs (the
75
+ // maker's wanted output 0 and the offered output 1 added above) are on `tx`, so
76
+ // the daemon's per-output fee is exact — no byte allowance for the maker's
77
+ // invisible input, because the daemon charges nothing for inputs.
75
78
  const wantedTokenReq = wantingNative
76
79
  ? new Map()
77
80
  : new Map([[params.want.currency, params.want.amount]]);
78
81
  const requiredNative = wantingNative ? params.want.amount : 0n;
79
- const selection = (0, index_js_1.selectUtxos)(params.takerUtxos, requiredNative, wantedTokenReq, 3, systemId, undefined, true, 150);
82
+ const minerFee = (0, index_js_2.estimateMinerFee)(tx.outs.map((o) => o.script));
83
+ const selection = (0, index_js_1.selectUtxos)(params.takerUtxos, requiredNative, wantedTokenReq, minerFee, systemId);
80
84
  const takerInputs = [];
81
85
  for (const u of selection.selected) {
82
86
  const idx = tx.addInput(Buffer.from(u.txid, 'hex').reverse(), u.outputIndex, 0xffffffff);
@@ -87,11 +91,11 @@ function completeOffer(params, network) {
87
91
  const hasTokenChange = selection.currencyChanges.size > 0;
88
92
  if (hasTokenChange || selection.nativeChange > 0n) {
89
93
  if (hasTokenChange) {
90
- const change = (0, index_js_3.buildTokenChangeOutput)((0, brands_js_1.parseAddress)(params.changeAddress, 'changeAddress'), selection.currencyChanges);
91
- tx.addOutput(change.script, (0, index_js_4.toSafeNumber)(selection.nativeChange));
94
+ const change = (0, index_js_4.buildTokenChangeOutput)((0, brands_js_1.parseAddress)(params.changeAddress, 'changeAddress'), selection.currencyChanges);
95
+ tx.addOutput(change.script, (0, index_js_5.toSafeNumber)(selection.nativeChange));
92
96
  }
93
97
  else {
94
- tx.addOutput(nativePaymentScript(params.changeAddress), (0, index_js_4.toSafeNumber)(selection.nativeChange));
98
+ tx.addOutput(nativePaymentScript(params.changeAddress), (0, index_js_5.toSafeNumber)(selection.nativeChange));
95
99
  }
96
100
  }
97
101
  // Token conservation over the taker's own inputs: they provide the wanted token
@@ -106,7 +110,8 @@ function completeOffer(params, network) {
106
110
  // combination.
107
111
  const takerNativeIn = selection.selected.reduce((s, u) => s + u.satoshis, 0n);
108
112
  const allInputsNative = commitmentNative + takerNativeIn;
109
- (0, index_js_2.assertNativeConservation)([{ satoshis: allInputsNative }], tx.outs, selection.fee, 'takeOffer');
113
+ (0, index_js_3.assertNativeConservation)([{ satoshis: allInputsNative }], tx.outs, selection.fee, 'takeOffer');
114
+ (0, index_js_2.assertFeeMeetsRelayMinimum)(selection.fee, tx.outs.map((o) => o.script), 'takeOffer');
110
115
  const { signedTx, txid } = (0, sign_js_1.signTakerInputs)(tx.toHex(), takerInputs, params.wif, network);
111
116
  return { swapTx: signedTx, txid };
112
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"taker.js","sourceRoot":"","sources":["../../src/offers/taker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"taker.js","sourceRoot":"","sources":["../../src/offers/taker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transfer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAYH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAOrD,OAAO,KAAK,EAEV,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAkG3B;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,OAAO,GACf,kBAAkB,CA6IpB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,OAAO,GACf,kBAAkB,CAepB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,OAAO,GACf,kBAAkB,CAcpB;AAED;;GAEG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,OAAO,GACf,kBAAkB,CAgBpB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,OAAO,GACf,cAAc,CAwEhB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transfer/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAYH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAOrD,OAAO,KAAK,EAEV,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAkG3B;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,OAAO,GACf,kBAAkB,CAkKpB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,OAAO,GACf,kBAAkB,CAepB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,OAAO,GACf,kBAAkB,CAcpB;AAED;;GAEG;AACH,wBAAgB,OAAO,CACrB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,OAAO,GACf,kBAAkB,CAgBpB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,kBAAkB,EAC1B,OAAO,EAAE,OAAO,GACf,cAAc,CAwEhB"}
@@ -152,6 +152,16 @@ function sendCurrency(params, network) {
152
152
  if (out.feeCurrency !== undefined && out.feeCurrency !== systemId && out.feeSatoshis === undefined) {
153
153
  throw new errors_js_1.TransactionBuildError('feeSatoshis is required when feeCurrency is a non-native token (the exact fee is conversion-dependent — query the node and pass it explicitly)');
154
154
  }
155
+ // A cross-chain export needs an explicit feeSatoshis too. Its fee is not the
156
+ // same-chain CalculateTransferFee: the destination system charges its own
157
+ // import fee (GetTransactionImportFee(), on the order of 1,000,000 sat for
158
+ // the ETH gateway), which is route- and chain-state-dependent and this
159
+ // offline SDK cannot read it. Both defaults available here — the fork's
160
+ // 300000 placeholder and the 20,000 same-chain floor — are *under*payments
161
+ // the daemon rejects, so fail closed instead of guessing.
162
+ if (out.exportTo !== undefined && out.feeSatoshis === undefined) {
163
+ throw new errors_js_1.TransactionBuildError('feeSatoshis is required when exportTo is set (the cross-chain import fee is set by the destination system — query the node and pass it explicitly)');
164
+ }
155
165
  }
156
166
  const txOutputs = params.outputs.map((out) => {
157
167
  // mint/burn must be carried by a reserve transfer, but the fork only builds one
@@ -160,6 +170,21 @@ function sendCurrency(params, network) {
160
170
  // native fee currency when the caller didn't set one.
161
171
  const forcesReserveTransfer = out.mintnew || out.burn || out.burnweight;
162
172
  const feecurrency = out.feeCurrency ?? (forcesReserveTransfer ? systemId : undefined);
173
+ // The fork decides reserve-transfer vs. plain output from the raw fields it
174
+ // is handed — feecurrency, feesatoshis, convertto, exportto, via — so a
175
+ // blanket feesatoshis default would silently promote an ordinary send into a
176
+ // reserve transfer. Only outputs already on that path get a fee.
177
+ const isReserveTransfer = feecurrency !== undefined ||
178
+ out.convertTo !== undefined ||
179
+ out.exportTo !== undefined ||
180
+ out.via !== undefined;
181
+ // Left unset, the fork stamps a 300000 placeholder that matches no daemon
182
+ // constant and is funded from the sender's own native inputs. The daemon's
183
+ // CReserveTransfer::CalculateTransferFee (src/pbaas/reserves.cpp:24-31) is
184
+ // (10000 << 1) + (10000 << 1) * (destSize / 128); every destination this SDK
185
+ // builds is 20 bytes, so the size term is 0 and the fee is RESERVE_TRANSFER_FEE.
186
+ // Cross-chain is excluded — the guard above already forced an explicit value.
187
+ const feesatoshis = out.feeSatoshis ?? (isReserveTransfer ? index_js_1.RESERVE_TRANSFER_FEE : undefined);
163
188
  return {
164
189
  currency: out.currency,
165
190
  satoshis: out.satoshis.toString(10),
@@ -169,7 +194,7 @@ function sendCurrency(params, network) {
169
194
  ...(out.via !== undefined ? { via: out.via } : {}),
170
195
  ...(out.bridgeId !== undefined ? { bridgeid: out.bridgeId } : {}),
171
196
  ...(feecurrency !== undefined ? { feecurrency } : {}),
172
- ...(out.feeSatoshis !== undefined ? { feesatoshis: out.feeSatoshis.toString(10) } : {}),
197
+ ...(feesatoshis !== undefined ? { feesatoshis: feesatoshis.toString(10) } : {}),
173
198
  ...(out.preconvert !== undefined ? { preconvert: out.preconvert } : {}),
174
199
  ...(out.mintnew !== undefined ? { mintnew: out.mintnew } : {}),
175
200
  ...(out.burn !== undefined ? { burn: out.burn } : {}),
@@ -178,7 +203,6 @@ function sendCurrency(params, network) {
178
203
  });
179
204
  const unfundedTxHex = createUnfundedCurrencyTransfer(systemId, txOutputs, verusNetwork, expiryHeight);
180
205
  const unfundedTx = boundary_js_1.Transaction.fromHex(unfundedTxHex, verusNetwork);
181
- const hasSmartOutputs = params.outputs.some((o) => o.convertTo || o.exportTo || o.via || o.mintnew || o.burn || o.burnweight || o.currency !== systemId);
182
206
  const requiredCurrencies = new Map();
183
207
  for (const out of params.outputs) {
184
208
  // A `mintnew` output CREATES new supply of a centralized currency; it is not
@@ -208,7 +232,6 @@ function sendCurrency(params, network) {
208
232
  funding: params.utxos,
209
233
  outputs: unfundedTx.outs.map((o) => ({ script: o.script, nativeSat: BigInt(o.value) })),
210
234
  changeAddress: params.changeAddress,
211
- hasSmartOutputs,
212
235
  requiredCurrencies,
213
236
  changeStrategy: 'separate',
214
237
  fee: { policy: 'estimate' },