@mem-cash/electrum 0.0.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 (70) hide show
  1. package/README.md +143 -0
  2. package/dist/address.d.ts +20 -0
  3. package/dist/address.d.ts.map +1 -0
  4. package/dist/address.js +51 -0
  5. package/dist/address.js.map +1 -0
  6. package/dist/dispatch.d.ts +18 -0
  7. package/dist/dispatch.d.ts.map +1 -0
  8. package/dist/dispatch.js +108 -0
  9. package/dist/dispatch.js.map +1 -0
  10. package/dist/headers.d.ts +14 -0
  11. package/dist/headers.d.ts.map +1 -0
  12. package/dist/headers.js +156 -0
  13. package/dist/headers.js.map +1 -0
  14. package/dist/index.d.ts +16 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +11 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/indexer.d.ts +42 -0
  19. package/dist/indexer.d.ts.map +1 -0
  20. package/dist/indexer.js +216 -0
  21. package/dist/indexer.js.map +1 -0
  22. package/dist/memCash.d.ts +40 -0
  23. package/dist/memCash.d.ts.map +1 -0
  24. package/dist/memCash.js +212 -0
  25. package/dist/memCash.js.map +1 -0
  26. package/dist/mempool.d.ts +6 -0
  27. package/dist/mempool.d.ts.map +1 -0
  28. package/dist/mempool.js +46 -0
  29. package/dist/mempool.js.map +1 -0
  30. package/dist/schema.d.ts +638 -0
  31. package/dist/schema.d.ts.map +1 -0
  32. package/dist/schema.js +3 -0
  33. package/dist/schema.js.map +1 -0
  34. package/dist/scripthash.d.ts +18 -0
  35. package/dist/scripthash.d.ts.map +1 -0
  36. package/dist/scripthash.js +164 -0
  37. package/dist/scripthash.js.map +1 -0
  38. package/dist/server.d.ts +20 -0
  39. package/dist/server.d.ts.map +1 -0
  40. package/dist/server.js +120 -0
  41. package/dist/server.js.map +1 -0
  42. package/dist/stubs.d.ts +12 -0
  43. package/dist/stubs.d.ts.map +1 -0
  44. package/dist/stubs.js +16 -0
  45. package/dist/stubs.js.map +1 -0
  46. package/dist/test.d.ts +8 -0
  47. package/dist/test.d.ts.map +1 -0
  48. package/dist/test.js +240 -0
  49. package/dist/test.js.map +1 -0
  50. package/dist/testUtils.d.ts +20 -0
  51. package/dist/testUtils.d.ts.map +1 -0
  52. package/dist/testUtils.js +29 -0
  53. package/dist/testUtils.js.map +1 -0
  54. package/dist/transaction.d.ts +28 -0
  55. package/dist/transaction.d.ts.map +1 -0
  56. package/dist/transaction.js +318 -0
  57. package/dist/transaction.js.map +1 -0
  58. package/dist/transport.d.ts +24 -0
  59. package/dist/transport.d.ts.map +1 -0
  60. package/dist/transport.js +16 -0
  61. package/dist/transport.js.map +1 -0
  62. package/dist/types.d.ts +85 -0
  63. package/dist/types.d.ts.map +1 -0
  64. package/dist/types.js +58 -0
  65. package/dist/types.js.map +1 -0
  66. package/dist/utxo.d.ts +4 -0
  67. package/dist/utxo.d.ts.map +1 -0
  68. package/dist/utxo.js +39 -0
  69. package/dist/utxo.js.map +1 -0
  70. package/package.json +53 -0
package/dist/utxo.js ADDED
@@ -0,0 +1,39 @@
1
+ import { makeOutpointKey } from "@mem-cash/types";
2
+ import { invalidParams, ok, validateTxid, } from "./types.js";
3
+ /** blockchain.utxo.get_info */
4
+ export function getInfo(ctx, params) {
5
+ const txHash = validateTxid(params[0]);
6
+ if (txHash === null)
7
+ return invalidParams("Invalid tx hash");
8
+ const outN = params[1];
9
+ if (typeof outN !== "number" || !Number.isInteger(outN) || outN < 0) {
10
+ return invalidParams("Invalid output index");
11
+ }
12
+ const key = makeOutpointKey(txHash, outN);
13
+ // Check confirmed UTXOs first, then mempool
14
+ const utxo = ctx.node.getUtxoByOutpoint(key) ?? ctx.node.getMempoolUtxo(key);
15
+ if (!utxo)
16
+ return ok(null);
17
+ const result = {
18
+ scripthash: utxo.scriptHash,
19
+ value: Number(utxo.satoshis),
20
+ };
21
+ if (utxo.height > 0) {
22
+ result.confirmed_height = utxo.height;
23
+ }
24
+ if (utxo.tokenData) {
25
+ const td = {
26
+ category: utxo.tokenData.category,
27
+ amount: utxo.tokenData.amount.toString(),
28
+ };
29
+ if (utxo.tokenData.nft) {
30
+ td.nft = {
31
+ capability: utxo.tokenData.nft.capability,
32
+ commitment: utxo.tokenData.nft.commitment,
33
+ };
34
+ }
35
+ result.token_data = td;
36
+ }
37
+ return ok(result);
38
+ }
39
+ //# sourceMappingURL=utxo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utxo.js","sourceRoot":"","sources":["../src/utxo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAEN,aAAa,EACb,EAAE,EAEF,YAAY,GACZ,MAAM,YAAY,CAAC;AAEpB,+BAA+B;AAC/B,MAAM,UAAU,OAAO,CAAC,GAAoB,EAAE,MAAiB;IAC9D,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAE7D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAC;QACrE,OAAO,aAAa,CAAC,sBAAsB,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE1C,4CAA4C;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7E,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;IAE3B,MAAM,MAAM,GASR;QACH,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;KAC5B,CAAC;IAEF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC;IACvC,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACpB,MAAM,EAAE,GAA+C;YACtD,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ;YACjC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE;SACxC,CAAC;QACF,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YACxB,EAAE,CAAC,GAAG,GAAG;gBACR,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU;gBACzC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU;aACzC,CAAC;QACH,CAAC;QACD,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;AACnB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@mem-cash/electrum",
3
+ "version": "0.0.1",
4
+ "description": "Fulcrum-compatible Electrum Cash protocol handlers and dispatch for mem-cash",
5
+ "type": "module",
6
+ "sideEffects": false,
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist/",
17
+ "README.md",
18
+ "LICENSE"
19
+ ],
20
+ "license": "MIT",
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "https://github.com/mainnet-pat/mem-cash.git",
24
+ "directory": "packages/electrum"
25
+ },
26
+ "keywords": [
27
+ "bitcoin-cash",
28
+ "electrum",
29
+ "fulcrum",
30
+ "rpc",
31
+ "protocol"
32
+ ],
33
+ "engines": {
34
+ "node": ">=20"
35
+ },
36
+ "scripts": {
37
+ "prepublishOnly": "tsc -b"
38
+ },
39
+ "dependencies": {
40
+ "@bitauth/libauth": "^3.1.0-next.8",
41
+ "@mem-cash/core": "0.0.1",
42
+ "@mem-cash/storage": "0.0.1",
43
+ "@mem-cash/types": "0.0.1"
44
+ },
45
+ "peerDependencies": {
46
+ "@mem-cash/validation": "0.0.1"
47
+ },
48
+ "peerDependenciesMeta": {
49
+ "@mem-cash/validation": {
50
+ "optional": true
51
+ }
52
+ }
53
+ }