@mem-cash/validation 0.0.4 → 0.0.6

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.
package/dist/checks.d.ts CHANGED
@@ -85,6 +85,13 @@ export declare function checkAbsurdFee(fee: bigint, maxFee: bigint): CheckResult
85
85
  export declare function checkDustOutputs(outputs: readonly {
86
86
  readonly lockingBytecode: Uint8Array;
87
87
  readonly valueSatoshis: bigint;
88
- }[], dustRelayFeePerKb: bigint): CheckResult;
88
+ }[], dustRelayFeePerKb?: bigint): CheckResult;
89
+ /**
90
+ * Minimum (dust) value for an output - BCHN `GetDustThreshold`: 3 * fee for (outputSize + 148) bytes.
91
+ * Token-aware via encoded size; returns 0n for unspendable outputs (OP_RETURN / empty), exempt from dust.
92
+ */
93
+ export declare function getDustThreshold(output: {
94
+ readonly lockingBytecode: Uint8Array;
95
+ }, dustRelayFeePerKb?: bigint): bigint;
89
96
  export {};
90
97
  //# sourceMappingURL=checks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"AAmBA;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACpB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAIrE,+CAA+C;AAC/C,UAAU,YAAY;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,WAAW,CAO7E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CAYjF;AAED,oDAAoD;AACpD,UAAU,aAAa;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,WAAW,EAAE,MAAM,GACjB,WAAW,CAeb;AAED,8CAA8C;AAC9C,UAAU,WAAW;IACpB,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,WAAW,CAqBlF;AAED,oDAAoD;AACpD,UAAU,aAAa;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACpC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,GACT,WAAW,CAkBb;AAED,sDAAsD;AACtD,UAAU,iBAAiB;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,iBAAiB,EAAE,EACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACd,WAAW,CA2Bb;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,WAAW,CAO9F;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAUvE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,SAAS;IAAE,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EAAE,EAC5F,iBAAiB,EAAE,MAAM,GACvB,WAAW,CA2Bb"}
1
+ {"version":3,"file":"checks.d.ts","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"AAoBA;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GACpB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAIrE,+CAA+C;AAC/C,UAAU,YAAY;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,GAAG,WAAW,CAO7E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,CAYjF;AAED,oDAAoD;AACpD,UAAU,aAAa;IACtB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACpC,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,WAAW,EAAE,MAAM,GACjB,WAAW,CAeb;AAED,8CAA8C;AAC9C,UAAU,WAAW;IACpB,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,WAAW,EAAE,GAAG,WAAW,CAqBlF;AAED,oDAAoD;AACpD,UAAU,aAAa;IACtB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACpC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,SAAS,aAAa,EAAE,EAChC,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,GACT,WAAW,CAkBb;AAED,sDAAsD;AACtD,UAAU,iBAAiB;IAC1B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CACjC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,SAAS,iBAAiB,EAAE,EACpC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACd,WAAW,CA2Bb;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,WAAW,CAO9F;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAUvE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,SAAS;IAAE,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAAE,EAAE,EAC5F,iBAAiB,GAAE,MAA8B,GAC/C,WAAW,CASb;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE;IAAE,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAA;CAAE,EAChD,iBAAiB,GAAE,MAA8B,GAC/C,MAAM,CAaR"}
package/dist/checks.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { REJECT_HIGHFEE, REJECT_INSUFFICIENTFEE, REJECT_INVALID, REJECT_NONSTANDARD, } from "@mem-cash/types";
2
- import { COINBASE_MATURITY, LOCKTIME_THRESHOLD, MAX_MONEY, MAX_SCRIPT_SIZE, OP_RETURN, SEQUENCE_FINAL, SEQUENCE_LOCKTIME_DISABLE_FLAG, SEQUENCE_LOCKTIME_GRANULARITY, SEQUENCE_LOCKTIME_MASK, SEQUENCE_LOCKTIME_TYPE_FLAG, } from "./constants.js";
2
+ import { COINBASE_MATURITY, DUST_RELAY_FEE_PER_KB, LOCKTIME_THRESHOLD, MAX_MONEY, MAX_SCRIPT_SIZE, OP_RETURN, SEQUENCE_FINAL, SEQUENCE_LOCKTIME_DISABLE_FLAG, SEQUENCE_LOCKTIME_GRANULARITY, SEQUENCE_LOCKTIME_MASK, SEQUENCE_LOCKTIME_TYPE_FLAG, } from "./constants.js";
3
3
  const CHECK_OK = { ok: true };
4
4
  /**
5
5
  * Reject inputs referencing the null outpoint (all-zero txid + vout 0xFFFFFFFF).
@@ -163,31 +163,34 @@ export function checkAbsurdFee(fee, maxFee) {
163
163
  * Check that no non-OP_RETURN output is dust.
164
164
  * BCHN: IsStandardTx → "dust" (REJECT_NONSTANDARD, DoS 0).
165
165
  */
166
- export function checkDustOutputs(outputs, dustRelayFeePerKb) {
166
+ export function checkDustOutputs(outputs, dustRelayFeePerKb = DUST_RELAY_FEE_PER_KB) {
167
167
  for (const output of outputs) {
168
- // OP_RETURN outputs are exempt from dust checks
169
- if (output.lockingBytecode.length > 0 && output.lockingBytecode[0] === OP_RETURN) {
170
- continue;
171
- }
172
- // Empty scripts are unspendable — also exempt
173
- if (output.lockingBytecode.length === 0) {
174
- continue;
175
- }
176
- // Serialize size of a CTxOut: 8 (value) + compactSize(scriptLen) + scriptLen
177
- // For scripts < 253 bytes, compactSize is 1 byte
178
- const scriptLen = output.lockingBytecode.length;
179
- const outputSize = 8 + (scriptLen < 253 ? 1 : 3) + scriptLen;
180
- // 148 = estimated input size to spend (32 prevhash + 4 previndex + 1 scriptLen + 107 sigScript + 4 sequence)
181
- const spendSize = outputSize + 148;
182
- // Match BCHN: 3 * CFeeRate::GetFee(nSize) — floor division with min 1 sat
183
- let feePerOutput = (dustRelayFeePerKb * BigInt(spendSize)) / 1000n;
184
- if (feePerOutput === 0n && spendSize > 0 && dustRelayFeePerKb > 0n)
185
- feePerOutput = 1n;
186
- const dustThreshold = 3n * feePerOutput;
187
- if (output.valueSatoshis < dustThreshold) {
168
+ const threshold = getDustThreshold(output, dustRelayFeePerKb);
169
+ if (threshold === 0n)
170
+ continue; // exempt (OP_RETURN / empty script)
171
+ if (output.valueSatoshis < threshold) {
188
172
  return { ok: false, code: REJECT_NONSTANDARD, error: "dust" };
189
173
  }
190
174
  }
191
175
  return CHECK_OK;
192
176
  }
177
+ /**
178
+ * Minimum (dust) value for an output - BCHN `GetDustThreshold`: 3 * fee for (outputSize + 148) bytes.
179
+ * Token-aware via encoded size; returns 0n for unspendable outputs (OP_RETURN / empty), exempt from dust.
180
+ */
181
+ export function getDustThreshold(output, dustRelayFeePerKb = DUST_RELAY_FEE_PER_KB) {
182
+ const script = output.lockingBytecode;
183
+ // OP_RETURN and empty scripts are unspendable, hence exempt from dust.
184
+ if (script.length === 0 || script[0] === OP_RETURN)
185
+ return 0n;
186
+ // Serialize size of a CTxOut: 8 (value) + compactSize(scriptLen) + scriptLen (1 byte for <253).
187
+ const outputSize = 8 + (script.length < 253 ? 1 : 3) + script.length;
188
+ // 148 = estimated input size to spend (32 prevhash + 4 previndex + 1 scriptLen + 107 sig + 4 seq).
189
+ const spendSize = outputSize + 148;
190
+ // Match BCHN: 3 * CFeeRate::GetFee(nSize) — floor division with min 1 sat.
191
+ let feePerOutput = (dustRelayFeePerKb * BigInt(spendSize)) / 1000n;
192
+ if (feePerOutput === 0n && spendSize > 0 && dustRelayFeePerKb > 0n)
193
+ feePerOutput = 1n;
194
+ return 3n * feePerOutput;
195
+ }
193
196
  //# sourceMappingURL=checks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"checks.js","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"checks.js","sourceRoot":"","sources":["../src/checks.ts"],"names":[],"mappings":"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"}
@@ -28,4 +28,6 @@ export declare const MTP_BLOCK_COUNT = 11;
28
28
  export declare const DEFAULT_MIN_RELAY_FEE_PER_KB = 1000n;
29
29
  /** Default maximum acceptable fee in satoshis (0.1 BCH). */
30
30
  export declare const DEFAULT_MAX_FEE = 10000000n;
31
+ /** Fixed dust relay fee in sat/KB. BCHN's `dustRelayFee`, separate from `minRelayTxFee`. */
32
+ export declare const DUST_RELAY_FEE_PER_KB = 1000n;
31
33
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,eAAO,MAAM,SAAS,oBAAyB,CAAC;AAEhD,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,YAAc,CAAC;AAE9C,oEAAoE;AACpE,eAAO,MAAM,cAAc,aAAa,CAAC;AAEzC,yEAAyE;AACzE,eAAO,MAAM,8BAA8B,QAAU,CAAC;AAEtD,2EAA2E;AAC3E,eAAO,MAAM,2BAA2B,QAAU,CAAC;AAEnD,sDAAsD;AACtD,eAAO,MAAM,sBAAsB,QAAa,CAAC;AAEjD,4DAA4D;AAC5D,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD,qDAAqD;AACrD,eAAO,MAAM,SAAS,QAAkB,CAAC;AAEzC,yCAAyC;AACzC,eAAO,MAAM,SAAS,aAAa,CAAC;AAEpC,kEAAkE;AAClE,eAAO,MAAM,SAAS,MAAO,CAAC;AAE9B,4CAA4C;AAC5C,eAAO,MAAM,eAAe,QAAS,CAAC;AAEtC,0EAA0E;AAC1E,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,0DAA0D;AAC1D,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAElD,4DAA4D;AAC5D,eAAO,MAAM,eAAe,YAAc,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,eAAO,MAAM,SAAS,oBAAyB,CAAC;AAEhD,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,YAAc,CAAC;AAE9C,oEAAoE;AACpE,eAAO,MAAM,cAAc,aAAa,CAAC;AAEzC,yEAAyE;AACzE,eAAO,MAAM,8BAA8B,QAAU,CAAC;AAEtD,2EAA2E;AAC3E,eAAO,MAAM,2BAA2B,QAAU,CAAC;AAEnD,sDAAsD;AACtD,eAAO,MAAM,sBAAsB,QAAa,CAAC;AAEjD,4DAA4D;AAC5D,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAEjD,qDAAqD;AACrD,eAAO,MAAM,SAAS,QAAkB,CAAC;AAEzC,yCAAyC;AACzC,eAAO,MAAM,SAAS,aAAa,CAAC;AAEpC,kEAAkE;AAClE,eAAO,MAAM,SAAS,MAAO,CAAC;AAE9B,4CAA4C;AAC5C,eAAO,MAAM,eAAe,QAAS,CAAC;AAEtC,0EAA0E;AAC1E,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,0DAA0D;AAC1D,eAAO,MAAM,4BAA4B,QAAQ,CAAC;AAElD,4DAA4D;AAC5D,eAAO,MAAM,eAAe,YAAc,CAAC;AAE3C,4FAA4F;AAC5F,eAAO,MAAM,qBAAqB,QAAQ,CAAC"}
package/dist/constants.js CHANGED
@@ -28,4 +28,6 @@ export const MTP_BLOCK_COUNT = 11;
28
28
  export const DEFAULT_MIN_RELAY_FEE_PER_KB = 1000n;
29
29
  /** Default maximum acceptable fee in satoshis (0.1 BCH). */
30
30
  export const DEFAULT_MAX_FEE = 10000000n;
31
+ /** Fixed dust relay fee in sat/KB. BCHN's `dustRelayFee`, separate from `minRelayTxFee`. */
32
+ export const DUST_RELAY_FEE_PER_KB = 1000n;
31
33
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,MAAM,CAAC,MAAM,SAAS,GAAG,iBAAsB,CAAC;AAEhD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC,6FAA6F;AAC7F,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAE9C,oEAAoE;AACpE,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;AAEzC,yEAAyE;AACzE,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,IAAI,EAAE,CAAC;AAEtD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,IAAI,EAAE,CAAC;AAEnD,sDAAsD;AACtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC;AAEjD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAEjD,qDAAqD;AACrD,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEzC,yCAAyC;AACzC,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;AAEpC,kEAAkE;AAClE,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAE9B,4CAA4C;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AAEtC,0EAA0E;AAC1E,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAElC,0DAA0D;AAC1D,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAElD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,eAAe,GAAG,SAAW,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,MAAM,CAAC,MAAM,SAAS,GAAG,iBAAsB,CAAC;AAEhD,8DAA8D;AAC9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAErC,6FAA6F;AAC7F,MAAM,CAAC,MAAM,kBAAkB,GAAG,WAAW,CAAC;AAE9C,oEAAoE;AACpE,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;AAEzC,yEAAyE;AACzE,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,IAAI,EAAE,CAAC;AAEtD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,IAAI,EAAE,CAAC;AAEnD,sDAAsD;AACtD,MAAM,CAAC,MAAM,sBAAsB,GAAG,UAAU,CAAC;AAEjD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC;AAEjD,qDAAqD;AACrD,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEzC,yCAAyC;AACzC,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;AAEpC,kEAAkE;AAClE,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAE9B,4CAA4C;AAC5C,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AAEtC,0EAA0E;AAC1E,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,CAAC;AAElC,0DAA0D;AAC1D,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAElD,4DAA4D;AAC5D,MAAM,CAAC,MAAM,eAAe,GAAG,SAAW,CAAC;AAE3C,4FAA4F;AAC5F,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export type { CheckResult } from "./checks.js";
2
- export { checkAbsurdFee, checkCoinbaseMaturity, checkDustOutputs, checkInputValueRanges, checkLocktimeFinality, checkMinRelayFee, checkNullPrevout, checkSequenceLocks, checkUnspendableInputs, } from "./checks.js";
3
- export { COINBASE_MATURITY, DEFAULT_MAX_FEE, DEFAULT_MIN_RELAY_FEE_PER_KB, LOCKTIME_THRESHOLD, MAX_MONEY, MAX_SCRIPT_SIZE, MTP_BLOCK_COUNT, OP_RETURN, SEQUENCE_FINAL, SEQUENCE_LOCKTIME_DISABLE_FLAG, SEQUENCE_LOCKTIME_GRANULARITY, SEQUENCE_LOCKTIME_MASK, SEQUENCE_LOCKTIME_TYPE_FLAG, } from "./constants.js";
2
+ export { checkAbsurdFee, checkCoinbaseMaturity, checkDustOutputs, checkInputValueRanges, checkLocktimeFinality, checkMinRelayFee, checkNullPrevout, checkSequenceLocks, checkUnspendableInputs, getDustThreshold, } from "./checks.js";
3
+ export { COINBASE_MATURITY, DEFAULT_MAX_FEE, DEFAULT_MIN_RELAY_FEE_PER_KB, DUST_RELAY_FEE_PER_KB, LOCKTIME_THRESHOLD, MAX_MONEY, MAX_SCRIPT_SIZE, MTP_BLOCK_COUNT, OP_RETURN, SEQUENCE_FINAL, SEQUENCE_LOCKTIME_DISABLE_FLAG, SEQUENCE_LOCKTIME_GRANULARITY, SEQUENCE_LOCKTIME_MASK, SEQUENCE_LOCKTIME_TYPE_FLAG, } from "./constants.js";
4
4
  export type { ChainState, DebugFailure, DebugInputResult, DebugResult, DebugSuccess, SourceOutput, Transaction, TxVerifier, TxVerifierConfig, ValidatedTransaction, VerifyFailure, VerifyResult, VerifySuccess, VmVersion, } from "./types.js";
5
- export { createTxVerifier } from "./verifier.js";
5
+ export type { VmFacade } from "./verifier.js";
6
+ export { createTxVerifier, createVmFacade } from "./verifier.js";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EACN,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,iBAAiB,EACjB,eAAe,EACf,4BAA4B,EAC5B,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,eAAe,EACf,SAAS,EACT,cAAc,EACd,8BAA8B,EAC9B,6BAA6B,EAC7B,sBAAsB,EACtB,2BAA2B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACX,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,SAAS,GACT,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EACN,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,iBAAiB,EACjB,eAAe,EACf,4BAA4B,EAC5B,qBAAqB,EACrB,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,eAAe,EACf,SAAS,EACT,cAAc,EACd,8BAA8B,EAC9B,6BAA6B,EAC7B,sBAAsB,EACtB,2BAA2B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACX,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,SAAS,GACT,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { checkAbsurdFee, checkCoinbaseMaturity, checkDustOutputs, checkInputValueRanges, checkLocktimeFinality, checkMinRelayFee, checkNullPrevout, checkSequenceLocks, checkUnspendableInputs, } from "./checks.js";
2
- export { COINBASE_MATURITY, DEFAULT_MAX_FEE, DEFAULT_MIN_RELAY_FEE_PER_KB, LOCKTIME_THRESHOLD, MAX_MONEY, MAX_SCRIPT_SIZE, MTP_BLOCK_COUNT, OP_RETURN, SEQUENCE_FINAL, SEQUENCE_LOCKTIME_DISABLE_FLAG, SEQUENCE_LOCKTIME_GRANULARITY, SEQUENCE_LOCKTIME_MASK, SEQUENCE_LOCKTIME_TYPE_FLAG, } from "./constants.js";
3
- export { createTxVerifier } from "./verifier.js";
1
+ export { checkAbsurdFee, checkCoinbaseMaturity, checkDustOutputs, checkInputValueRanges, checkLocktimeFinality, checkMinRelayFee, checkNullPrevout, checkSequenceLocks, checkUnspendableInputs, getDustThreshold, } from "./checks.js";
2
+ export { COINBASE_MATURITY, DEFAULT_MAX_FEE, DEFAULT_MIN_RELAY_FEE_PER_KB, DUST_RELAY_FEE_PER_KB, LOCKTIME_THRESHOLD, MAX_MONEY, MAX_SCRIPT_SIZE, MTP_BLOCK_COUNT, OP_RETURN, SEQUENCE_FINAL, SEQUENCE_LOCKTIME_DISABLE_FLAG, SEQUENCE_LOCKTIME_GRANULARITY, SEQUENCE_LOCKTIME_MASK, SEQUENCE_LOCKTIME_TYPE_FLAG, } from "./constants.js";
3
+ export { createTxVerifier, createVmFacade } from "./verifier.js";
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACN,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,iBAAiB,EACjB,eAAe,EACf,4BAA4B,EAC5B,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,eAAe,EACf,SAAS,EACT,cAAc,EACd,8BAA8B,EAC9B,6BAA6B,EAC7B,sBAAsB,EACtB,2BAA2B,GAC3B,MAAM,gBAAgB,CAAC;AAiBxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACN,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EACN,iBAAiB,EACjB,eAAe,EACf,4BAA4B,EAC5B,qBAAqB,EACrB,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,eAAe,EACf,SAAS,EACT,cAAc,EACd,8BAA8B,EAC9B,6BAA6B,EAC7B,sBAAsB,EACtB,2BAA2B,GAC3B,MAAM,gBAAgB,CAAC;AAkBxB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
package/dist/types.d.ts CHANGED
@@ -11,6 +11,10 @@ export interface TxVerifierConfig {
11
11
  minRelayFeePerKb?: bigint;
12
12
  /** Maximum acceptable fee in satoshis (default: 10_000_000 = 0.1 BCH). */
13
13
  maxFee?: bigint;
14
+ /** Skip fee policy (min-relay + absurd-fee); consensus/scripts/dust still run. For unfunded txs. Default: false. */
15
+ skipFeePolicy?: boolean;
16
+ /** Dust relay fee in sat/KB (default: DUST_RELAY_FEE_PER_KB). Fixed, independent of minRelayFeePerKb. */
17
+ dustRelayFeePerKb?: bigint;
14
18
  }
15
19
  /**
16
20
  * Chain state required for consensus checks.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAErE,4EAA4E;AAC5E,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG,aAAa,GAAG,aAAa,GAAG,UAAU,CAAC;AAEnF,kDAAkD;AAClD,MAAM,WAAW,gBAAgB;IAChC,kDAAkD;IAClD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0EAA0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oHAAoH;IACpH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yGAAyG;IACzG,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU;IAC1B,gCAAgC;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CAChC;AAED;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,MAAM;IAC3C,8EAA8E;IAC9E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,iEAAiE;IACjE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,4EAA4E;AAC5E,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,EAAE,MAAM,CAAC,CAAC;AAEnF,2DAA2D;AAC3D,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,oDAAoD;IACpD,QAAQ,CAAC,aAAa,EAAE,SAAS,YAAY,EAAE,CAAC;CAChD;AAED,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;CAC3C;AAED,8CAA8C;AAC9C,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,yCAAyC;AACzC,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,aAAa,CAAC;AAEzD,6BAA6B;AAC7B,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qDAAqD;AACrD,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAC;IAC3C,QAAQ,CAAC,YAAY,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACnD;AAED,wDAAwD;AACxD,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,wBAAwB;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACpD;AAED,yCAAyC;AACzC,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,YAAY,CAAC;AAEtD,sCAAsC;AACtC,MAAM,WAAW,UAAU;IAC1B,6EAA6E;IAC7E,MAAM,CACL,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,SAAS,YAAY,EAAE,EACtC,UAAU,EAAE,UAAU,GACpB,YAAY,CAAC;IAChB,kGAAkG;IAClG,KAAK,CACJ,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,SAAS,YAAY,EAAE,EACtC,UAAU,EAAE,UAAU,GACpB,WAAW,CAAC;CACf"}
@@ -1,4 +1,22 @@
1
- import type { TxVerifier, TxVerifierConfig } from "./types.js";
1
+ import { type Output } from "@bitauth/libauth";
2
+ import type { TxVerifier, TxVerifierConfig, VmVersion } from "./types.js";
3
+ /** VM abstraction to unify the different version-specific types. */
4
+ export interface VmFacade {
5
+ verify(resolved: {
6
+ sourceOutputs: Output[];
7
+ transaction: unknown;
8
+ }): true | string;
9
+ debugInput(program: {
10
+ inputIndex: number;
11
+ sourceOutputs: Output[];
12
+ transaction: unknown;
13
+ }): {
14
+ success: boolean;
15
+ error?: string;
16
+ };
17
+ }
18
+ /** Create a libauth VM for the given version. */
19
+ export declare function createVmFacade(version: VmVersion, standard: boolean): VmFacade;
2
20
  /**
3
21
  * Create a stateless transaction verifier.
4
22
  * All context (source outputs, chain state) is provided per call.
@@ -19,5 +37,5 @@ import type { TxVerifier, TxVerifierConfig } from "./types.js";
19
37
  * 13. VM verify (most expensive — last)
20
38
  * 14. Build ValidatedTransaction
21
39
  */
22
- export declare function createTxVerifier(config?: TxVerifierConfig): Promise<TxVerifier>;
40
+ export declare function createTxVerifier(config?: TxVerifierConfig): TxVerifier;
23
41
  //# sourceMappingURL=verifier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../src/verifier.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAMX,UAAU,EACV,gBAAgB,EAIhB,MAAM,YAAY,CAAC;AAqFpB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAqTrF"}
1
+ {"version":3,"file":"verifier.d.ts","sourceRoot":"","sources":["../src/verifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAUN,KAAK,MAAM,EACX,MAAM,kBAAkB,CAAC;AAmB1B,OAAO,KAAK,EAMX,UAAU,EACV,gBAAgB,EAGhB,SAAS,EACT,MAAM,YAAY,CAAC;AAEpB,oEAAoE;AACpE,MAAM,WAAW,QAAQ;IACxB,MAAM,CAAC,QAAQ,EAAE;QAAE,aAAa,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,GAAG,MAAM,CAAC;IACnF,UAAU,CAAC,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,GAAG;QAC3F,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACF;AAED,iDAAiD;AACjD,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAkC9E;AAmCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,UAAU,CAwTtE"}
package/dist/verifier.js CHANGED
@@ -1,23 +1,19 @@
1
- import { binToHex, decodeTransactionBch, encodeTransactionBch, hashTransactionUiOrder, hexToBin, } from "@bitauth/libauth";
1
+ import { binToHex, createVirtualMachineBch2023, createVirtualMachineBch2025, createVirtualMachineBch2026, createVirtualMachineBchSpec, decodeTransactionBch, encodeTransactionBch, hashTransactionUiOrder, hexToBin, } from "@bitauth/libauth";
2
2
  import { REJECT_INVALID, REJECT_MALFORMED, REJECT_NONSTANDARD } from "@mem-cash/types";
3
3
  import { checkAbsurdFee, checkCoinbaseMaturity, checkDustOutputs, checkInputValueRanges, checkLocktimeFinality, checkMinRelayFee, checkNullPrevout, checkSequenceLocks, checkUnspendableInputs, } from "./checks.js";
4
- import { DEFAULT_MAX_FEE, DEFAULT_MIN_RELAY_FEE_PER_KB, MAX_MONEY } from "./constants.js";
5
- /**
6
- * Dynamically import and create a libauth VM for the given version.
7
- * Only the requested VM version is loaded, keeping other versions tree-shakeable.
8
- */
9
- async function createVmFacade(version, standard) {
10
- const lib = await import("@bitauth/libauth");
4
+ import { DEFAULT_MAX_FEE, DEFAULT_MIN_RELAY_FEE_PER_KB, DUST_RELAY_FEE_PER_KB, MAX_MONEY, } from "./constants.js";
5
+ /** Create a libauth VM for the given version. */
6
+ export function createVmFacade(version, standard) {
11
7
  const createFn = (() => {
12
8
  switch (version) {
13
9
  case "BCH_2023_05":
14
- return lib.createVirtualMachineBch2023;
10
+ return createVirtualMachineBch2023;
15
11
  case "BCH_2025_05":
16
- return lib.createVirtualMachineBch2025;
12
+ return createVirtualMachineBch2025;
17
13
  case "BCH_2026_05":
18
- return lib.createVirtualMachineBch2026;
14
+ return createVirtualMachineBch2026;
19
15
  case "BCH_SPEC":
20
- return lib.createVirtualMachineBchSpec;
16
+ return createVirtualMachineBchSpec;
21
17
  }
22
18
  })();
23
19
  const vm = createFn(standard);
@@ -74,22 +70,24 @@ function toVmOutputs(sourceOutputs) {
74
70
  * 13. VM verify (most expensive — last)
75
71
  * 14. Build ValidatedTransaction
76
72
  */
77
- export async function createTxVerifier(config) {
73
+ export function createTxVerifier(config) {
78
74
  const version = config?.vmVersion ?? "BCH_2025_05";
79
75
  const standard = config?.standard ?? true;
80
76
  const minRelayFeePerKb = config?.minRelayFeePerKb ?? DEFAULT_MIN_RELAY_FEE_PER_KB;
81
77
  const maxFee = config?.maxFee ?? DEFAULT_MAX_FEE;
78
+ const skipFeePolicy = config?.skipFeePolicy ?? false;
79
+ const dustRelayFeePerKb = config?.dustRelayFeePerKb ?? DUST_RELAY_FEE_PER_KB;
82
80
  if (minRelayFeePerKb <= 0n) {
83
81
  throw new Error("minRelayFeePerKb must be positive");
84
82
  }
85
83
  if (maxFee <= 0n) {
86
84
  throw new Error("maxFee must be positive");
87
85
  }
88
- const vm = await createVmFacade(version, standard);
86
+ const vm = createVmFacade(version, standard);
89
87
  // Consensus-only VM for two-pass script verification (BCHN CheckInputs pattern).
90
88
  // When standard=true, a script failure is re-checked with consensus-only flags to
91
89
  // distinguish mandatory vs non-mandatory violations.
92
- const consensusVm = standard ? await createVmFacade(version, false) : null;
90
+ const consensusVm = standard ? createVmFacade(version, false) : null;
93
91
  /** Run pre-VM pipeline steps 1-12. Returns validated data or error. */
94
92
  function preVmPipeline(rawHex, sourceOutputs, chainState) {
95
93
  const spendHeight = chainState.height + 1;
@@ -187,18 +185,19 @@ export async function createTxVerifier(config) {
187
185
  }), spendHeight, chainState.medianTimePast);
188
186
  if (!seqCheck.ok)
189
187
  return seqCheck;
190
- // 10. Min relay fee check (policy)
191
- const size = encodedBytes.length;
192
- const feeCheck = checkMinRelayFee(fee, size, minRelayFeePerKb);
193
- if (!feeCheck.ok)
194
- return feeCheck;
195
- // 11. Absurd fee guard (policy)
196
- const absurdCheck = checkAbsurdFee(fee, maxFee);
197
- if (!absurdCheck.ok)
198
- return absurdCheck;
199
- // 12. Dust output check (policy, matches BCHN IsStandardTx)
188
+ // 10-11. Fee policy checks (min-relay + absurd-fee). Skipped for unfunded txs.
189
+ if (!skipFeePolicy) {
190
+ const size = encodedBytes.length;
191
+ const feeCheck = checkMinRelayFee(fee, size, minRelayFeePerKb);
192
+ if (!feeCheck.ok)
193
+ return feeCheck;
194
+ const absurdCheck = checkAbsurdFee(fee, maxFee);
195
+ if (!absurdCheck.ok)
196
+ return absurdCheck;
197
+ }
198
+ // 12. Dust output check (policy, matches BCHN IsStandardTx). Uses the fixed dust relay fee.
200
199
  if (standard) {
201
- const dustCheck = checkDustOutputs(decoded.outputs, minRelayFeePerKb);
200
+ const dustCheck = checkDustOutputs(decoded.outputs, dustRelayFeePerKb);
202
201
  if (!dustCheck.ok)
203
202
  return dustCheck;
204
203
  }
@@ -1 +1 @@
1
- {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../src/verifier.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verifier.js","sourceRoot":"","sources":["../src/verifier.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mem-cash/validation",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "description": "Stateless BCH transaction evaluator with BCHN-compatible consensus and policy checks",
5
5
  "type": "module",
6
6
  "sideEffects": false,