From c02080d12a8eb354196ad33a741af60bf75d435e Mon Sep 17 00:00:00 2001 From: Chris Troutner Date: Wed, 26 Nov 2025 13:27:45 -0800 Subject: [PATCH] fix(scripts.js): Removing @psf/bitcoincash-ops as a dependency --- package-lock.json | 5 +- package.json | 1 - src/script.js | 134 ++++++++++++++++++++++++++++++++++++++++++---- 3 files changed, 127 insertions(+), 13 deletions(-) diff --git a/package-lock.json b/package-lock.json index de56b96..5846198 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,16 @@ { "name": "@psf/bch-js", - "version": "6.0.0", + "version": "7.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@psf/bch-js", - "version": "6.0.0", + "version": "7.0.0", "license": "MIT", "dependencies": { "@chris.troutner/bip32-utils": "1.0.5", "@psf/bip21": "2.0.1", - "@psf/bitcoincash-ops": "2.0.0", "@psf/bitcoincashjs-lib": "4.0.3", "@psf/coininfo": "4.0.0", "axios": "1.13.2", diff --git a/package.json b/package.json index 4132c9a..7af6ea9 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,6 @@ "dependencies": { "@chris.troutner/bip32-utils": "1.0.5", "@psf/bip21": "2.0.1", - "@psf/bitcoincash-ops": "2.0.0", "@psf/bitcoincashjs-lib": "4.0.3", "@psf/coininfo": "4.0.0", "axios": "1.13.2", diff --git a/src/script.js b/src/script.js index d2e7bc7..36e8c72 100644 --- a/src/script.js +++ b/src/script.js @@ -1,14 +1,130 @@ -import { readFileSync } from 'fs' -import { fileURLToPath } from 'url' -import { dirname, join } from 'path' import Bitcoin from '@psf/bitcoincashjs-lib' -// Import the bitcoincash-ops library using ESM methods that don't piss off -// the standard linter. -const __dirname = dirname(fileURLToPath(import.meta.url)) -const opcodes = JSON.parse( - readFileSync(join(__dirname, '../node_modules/@psf/bitcoincash-ops/index.json'), 'utf8') -) +// Inline opcodes data to avoid fs/import.meta issues in browser builds. +// This data is from @psf/bitcoincash-ops/index.json +const opcodes = { + OP_FALSE: 0, + OP_0: 0, + OP_PUSHDATA1: 76, + OP_PUSHDATA2: 77, + OP_PUSHDATA4: 78, + OP_1NEGATE: 79, + OP_RESERVED: 80, + OP_TRUE: 81, + OP_1: 81, + OP_2: 82, + OP_3: 83, + OP_4: 84, + OP_5: 85, + OP_6: 86, + OP_7: 87, + OP_8: 88, + OP_9: 89, + OP_10: 90, + OP_11: 91, + OP_12: 92, + OP_13: 93, + OP_14: 94, + OP_15: 95, + OP_16: 96, + OP_NOP: 97, + OP_VER: 98, + OP_IF: 99, + OP_NOTIF: 100, + OP_VERIF: 101, + OP_VERNOTIF: 102, + OP_ELSE: 103, + OP_ENDIF: 104, + OP_VERIFY: 105, + OP_RETURN: 106, + OP_TOALTSTACK: 107, + OP_FROMALTSTACK: 108, + OP_2DROP: 109, + OP_2DUP: 110, + OP_3DUP: 111, + OP_2OVER: 112, + OP_2ROT: 113, + OP_2SWAP: 114, + OP_IFDUP: 115, + OP_DEPTH: 116, + OP_DROP: 117, + OP_DUP: 118, + OP_NIP: 119, + OP_OVER: 120, + OP_PICK: 121, + OP_ROLL: 122, + OP_ROT: 123, + OP_SWAP: 124, + OP_TUCK: 125, + OP_CAT: 126, + OP_SPLIT: 127, + OP_NUM2BIN: 128, + OP_BIN2NUM: 129, + OP_SIZE: 130, + OP_INVERT: 131, + OP_AND: 132, + OP_OR: 133, + OP_XOR: 134, + OP_EQUAL: 135, + OP_EQUALVERIFY: 136, + OP_RESERVED1: 137, + OP_RESERVED2: 138, + OP_1ADD: 139, + OP_1SUB: 140, + OP_2MUL: 141, + OP_2DIV: 142, + OP_NEGATE: 143, + OP_ABS: 144, + OP_NOT: 145, + OP_0NOTEQUAL: 146, + OP_ADD: 147, + OP_SUB: 148, + OP_MUL: 149, + OP_DIV: 150, + OP_MOD: 151, + OP_LSHIFT: 152, + OP_RSHIFT: 153, + OP_BOOLAND: 154, + OP_BOOLOR: 155, + OP_NUMEQUAL: 156, + OP_NUMEQUALVERIFY: 157, + OP_NUMNOTEQUAL: 158, + OP_LESSTHAN: 159, + OP_GREATERTHAN: 160, + OP_LESSTHANOREQUAL: 161, + OP_GREATERTHANOREQUAL: 162, + OP_MIN: 163, + OP_MAX: 164, + OP_WITHIN: 165, + OP_RIPEMD160: 166, + OP_SHA1: 167, + OP_SHA256: 168, + OP_HASH160: 169, + OP_HASH256: 170, + OP_CODESEPARATOR: 171, + OP_CHECKSIG: 172, + OP_CHECKSIGVERIFY: 173, + OP_CHECKMULTISIG: 174, + OP_CHECKMULTISIGVERIFY: 175, + OP_NOP1: 176, + OP_NOP2: 177, + OP_CHECKLOCKTIMEVERIFY: 177, + OP_NOP3: 178, + OP_CHECKSEQUENCEVERIFY: 178, + OP_NOP4: 179, + OP_NOP5: 180, + OP_NOP6: 181, + OP_NOP7: 182, + OP_NOP8: 183, + OP_NOP9: 184, + OP_NOP10: 185, + OP_CHECKDATASIG: 186, + OP_CHECKDATASIGVERIFY: 187, + OP_REVERSEBYTES: 188, + OP_PUBKEYHASH: 253, + OP_PUBKEY: 254, + OP_INVALIDOPCODE: 255 +} class Script { constructor () {