@cityofzion/bs-neo3 0.9.3 → 0.10.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.
@@ -1,3 +1,3 @@
1
1
  {
2
- "nonCachedDurationMs": 2163.905144000004
2
+ "nonCachedDurationMs": 2233.4630860000034
3
3
  }
@@ -2,19 +2,20 @@
2
2
  "files": {
3
3
  "packages/bs-neo3/.eslintignore": "3ee402c88b68258919e4f4b4eef4f25e5d078d90",
4
4
  "packages/bs-neo3/.eslintrc.cjs": "5ec0bf6332ec01b3e02beb532bb47025c4c1bf7b",
5
- "packages/bs-neo3/CHANGELOG.json": "fe967428d8fb2326ccc4371d53cabdd9c68d31fe",
6
- "packages/bs-neo3/CHANGELOG.md": "7416e2621144cbf7dd6acf3cfa2c4c7db100099b",
5
+ "packages/bs-neo3/CHANGELOG.json": "0688f602e3434f9ed65b1ead92b26ee7e44fc684",
6
+ "packages/bs-neo3/CHANGELOG.md": "b6c76db44e9267156107719375c84649dd1bb5e1",
7
7
  "packages/bs-neo3/jest.config.ts": "d944475db93cbe41a9339187fd94b9962e411c43",
8
8
  "packages/bs-neo3/jest.setup.ts": "9a1976a32050616d4d2ee95b1aa21041bc4daca3",
9
- "packages/bs-neo3/package.json": "e2fc69e335ba275a7b37d19750e934dc8cd9179a",
10
- "packages/bs-neo3/src/BSNeo3.ts": "0d19be834f0739e2b57e73e74c517d624f9508bb",
9
+ "packages/bs-neo3/package.json": "bec4d27adae5e4f00064c6d66c75b41e09befa43",
10
+ "packages/bs-neo3/src/BSNeo3.ts": "aba770bbc30b53f63b5dc7eb57ecdde1e75c4c64",
11
11
  "packages/bs-neo3/src/DoraBDSNeo3.ts": "35c2e26cc2c19e41c4dceb226e00238bdca45c87",
12
12
  "packages/bs-neo3/src/DoraESNeo3.ts": "c3d36ee5c38cda45c08f517c49976af6d69c5711",
13
13
  "packages/bs-neo3/src/FlamingoEDSNeo3.ts": "2a67c9716bc005210dbb9c0e5208a7576af44686",
14
14
  "packages/bs-neo3/src/GhostMarketNDSNeo3.ts": "fb7109adfc16c652c56fa06ee14bbd58b9b61ceb",
15
- "packages/bs-neo3/src/RpcBDSNeo3.ts": "7ff90a9ee86468a854def2779ed1e99a5b4517de",
15
+ "packages/bs-neo3/src/LedgerServiceNeo3.ts": "afd3b243d286c53c5a37d0949bf648f4ebb1b331",
16
+ "packages/bs-neo3/src/RpcBDSNeo3.ts": "402c3fdaa09992e6ebc8241db8633e12b285c8c9",
16
17
  "packages/bs-neo3/src/__tests__/BDSNeo3.spec.ts": "5dc529cc41f64df6b603821c48fae282fed99220",
17
- "packages/bs-neo3/src/__tests__/BSNeo3.spec.ts": "02e8c195cf4ab73eb6ae49e330f411e74746533f",
18
+ "packages/bs-neo3/src/__tests__/BSNeo3.spec.ts": "ecd2ad60cdb1123c5eb9b8001bfc5a088f4b014b",
18
19
  "packages/bs-neo3/src/__tests__/DoraESNeo3.spec.ts": "450e087014c22b1a289e64dd80ff3e6ddfd8c932",
19
20
  "packages/bs-neo3/src/__tests__/FlamingoEDSNeo3.spec.ts": "473b1aafe03031a28a8414dfa681b06f843acdf6",
20
21
  "packages/bs-neo3/src/__tests__/GhostMarketNDSNeo3.spec.ts": "c1e835ab5016e8b8d7b3747cc0ed752093dbb967",
@@ -25,7 +26,7 @@
25
26
  "packages/bs-neo3/src/index.ts": "bad314a9ba14b57075684c9b823a934863bac6b2",
26
27
  "packages/bs-neo3/tsconfig.build.json": "4dc23fb9c4c5e4d19a9bc3947a47c523f4bd967c",
27
28
  "packages/bs-neo3/tsconfig.json": "77cf2b789e9c665b62792f9992cc81ae86296ef7",
28
- "packages/bs-neo3/.rush/temp/shrinkwrap-deps.json": "810e2df700cbea7151155fd9f9921531111a73e8"
29
+ "packages/bs-neo3/.rush/temp/shrinkwrap-deps.json": "d7141f31b9d802b7f2128a871ea0fe2b4b4f8c6b"
29
30
  },
30
31
  "arguments": "tsc --project tsconfig.build.json "
31
32
  }
@@ -1,5 +1,5 @@
1
1
  {
2
- "../../packages/bs-neo3": "../../packages/bs-neo3:E1TWq4yaQmn2BPZX4iSJ36VXpR5S7aJ/9iO1nzKEH5w=:",
2
+ "../../packages/bs-neo3": "../../packages/bs-neo3:hPpOd6A7ug1tp/DUghV5Bau5gBlIUJLSvHGFRpTUKnk=:",
3
3
  "/@aashutoshrathi/word-wrap@1.2.6": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==",
4
4
  "/@ampproject/remapping@2.2.1": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==",
5
5
  "/@babel/code-frame@7.23.5": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==",
@@ -40,13 +40,11 @@
40
40
  "/@babel/types@7.23.9": "sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==",
41
41
  "/@bcoe/v8-coverage@0.2.3": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
42
42
  "/@cityofzion/dora-ts@0.0.11": "sha512-LJWGU29BHPTHkt0i/OwhNdMfUGM/rgAa4rqlDwBy95spxSoUHGSoAtOD5k4aSVKmLFwq77ghNna0Lpc7lEuHBA==",
43
- "/@cityofzion/neo3-invoker@1.6.0": "sha512-QyJ978dtjIK3PSeL0ve5LqcbAsU+3J7zZVtAvAy+Xja0YsnT/DNieqpGG+rm5f625OpsV2PA71JrXtvhwxhShg==",
44
- "/@cityofzion/neo3-parser@1.6.0": "sha512-K+j3qaZEuq1cxit+fFziwAAc0hMQTdACbtllU1HUKJZ89dw7z/FY3Bmg12cyZ8tXuiktCloXvUT0Mg/IzoYqdg==",
45
- "/@cityofzion/neon-api@5.4.0(@cityofzion/neon-core@5.3.0)": "sha512-FHjdq2RnZLK37Hpd71yhVMkmbhl/iyPrmmAiEKb4mf5/rLtbNaKEEEJsxRkSNasio9+14cd7+BecIZ/35L1Sbg==",
46
- "/@cityofzion/neon-core@5.3.0": "sha512-iOHY7rFuDZavH87klFIxOYpu3PnPm6pS1xY7qhkFrRtcuTqRBMzhoZstE70XLDh01ujC5y2+gXvgz4OOpzgdXQ==",
47
- "/@cityofzion/neon-invoker@1.6.0": "sha512-QHdwMKMwk/dAke2tBTz8cd6Mv3vF0s/L81y/lAkUm7A33MHJiZcBaf5p/BtyV4chSFbhOim+/A84tZH0GrBUfQ==",
48
- "/@cityofzion/neon-js@5.3.0": "sha512-mtKBtYJoTJjJFnGw6Lrlo0OU2XGfPR4w71XIFfDfmoroadbRrZdVDn8KLhuJRXJP+atYJB3f0DmW6e6Ptp0M6g==",
49
- "/@cityofzion/neon-parser@1.6.2": "sha512-1wG6qfRR3PNYm3eFqf0/sRSjLBJLVYDnXFnaWvgc31PzTrcCifUUR9ZJr2YWINmV9qnGuGCKlL2Cz+vkFfOA1g==",
43
+ "/@cityofzion/neon-api@5.4.0(@cityofzion/neon-core@5.5.1)": "sha512-FHjdq2RnZLK37Hpd71yhVMkmbhl/iyPrmmAiEKb4mf5/rLtbNaKEEEJsxRkSNasio9+14cd7+BecIZ/35L1Sbg==",
44
+ "/@cityofzion/neon-core@5.5.1": "sha512-cqJ+RYTdUVoUl2e3I5bqgAvYFuqGd2M8lmgUgH/+kf0zS0b8EuKwliauJ2EA56fudwaXtCmmHZTfRBFs+RJ2vw==",
45
+ "/@cityofzion/neon-dappkit-types@0.3.1": "sha512-bQA/EBQUU6ZPmDARXB0w6I2iJqdo4S2s3xERPN91wCHd9WMkCIrtec269X1Yjd9qGoVibLMyA3xjqrOTyUBpxw==",
46
+ "/@cityofzion/neon-dappkit@0.4.1": "sha512-cQy1y2zoTukK9fK4r7MfIXDRWy402ITVWuY9YhaQFz/XfFB9t6XqVwe3XcpTiePqBrgBRoeyGw79P3KCg3ZgZw==",
47
+ "/@cityofzion/neon-js@5.5.1": "sha512-iCoE5PGKy3Kj36dR3aevkVOKK4yB1Mq/0WEUQzrzMkGOGBNJXa2+cTtmSi39tDkgxSHibvS77S5oZ6QGIXMCdg==",
50
48
  "/@cspotcode/source-map-support@0.8.1": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
51
49
  "/@eslint-community/eslint-utils@4.4.0(eslint@8.56.0)": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==",
52
50
  "/@eslint-community/regexpp@4.10.0": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==",
@@ -77,9 +75,21 @@
77
75
  "/@jridgewell/sourcemap-codec@1.4.15": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
78
76
  "/@jridgewell/trace-mapping@0.3.22": "sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==",
79
77
  "/@jridgewell/trace-mapping@0.3.9": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
78
+ "/@ledgerhq/devices@8.2.2": "sha512-SKahGA4p0mZ3ovypOJ2wa5mUvUkArE3HBrwWKYf+cRs+t/Licp3OJfhj+DHIxP3AfyH2xR6CFFWECYHeKwGsDQ==",
79
+ "/@ledgerhq/errors@6.16.3": "sha512-3w7/SJVXOPa9mpzyll7VKoKnGwDD3BzWgN1Nom8byR40DiQvOKjHX+kKQausCedTHVNBn9euzPCNsftZ9+mxfw==",
80
+ "/@ledgerhq/hw-transport-node-hid-noevents@6.29.5": "sha512-KzLJtH4gzt8AROQm2x9GSPrlqH+Mf7e/UlgQI3ldLcZFJQIaXZUCVjn4EyhMMTwggqjLvczEQNDwZ0zvEiXWuA==",
81
+ "/@ledgerhq/hw-transport-node-hid@6.28.5": "sha512-vH5fu0SiM27gE5UqRwO4aySS2qu1tiCYMf4/XkkYafac4FLwqMIg03RyU7Wp+SQ3srMeXjSCsLbijF1kPSyTKQ==",
82
+ "/@ledgerhq/hw-transport@6.30.5": "sha512-JMl//7BgPBvWxrWyMu82jj6JEYtsQyOyhYtonWNgtxn6KUZWht3gU4gxmLpeIRr+DiS7e50mW7m3GA+EudZmmA==",
83
+ "/@ledgerhq/logs@6.12.0": "sha512-ExDoj1QV5eC6TEbMdLUMMk9cfvNKhhv5gXol4SmULRVCx/3iyCPhJ74nsb3S0Vb+/f+XujBEj3vQn5+cwS0fNA==",
84
+ "/@noble/curves@1.0.0": "sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==",
85
+ "/@noble/hashes@1.3.0": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==",
86
+ "/@noble/hashes@1.3.3": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==",
80
87
  "/@nodelib/fs.scandir@2.1.5": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
81
88
  "/@nodelib/fs.stat@2.0.5": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
82
89
  "/@nodelib/fs.walk@1.2.8": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
90
+ "/@scure/base@1.1.6": "sha512-ok9AWwhcgYuGG3Zfhyqg+zwl+Wn5uE+dwC0NV/2qQkx4dABbb/bx96vWu8NSj+BNjjSjno+JRYRjle1jV08k3g==",
91
+ "/@scure/bip32@1.3.0": "sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==",
92
+ "/@scure/bip39@1.2.0": "sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==",
83
93
  "/@sinclair/typebox@0.27.8": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
84
94
  "/@sinonjs/commons@3.0.1": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
85
95
  "/@sinonjs/fake-timers@10.3.0": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
@@ -100,6 +110,7 @@
100
110
  "/@types/node@20.2.6": "sha512-GQBWUtGoefMEOx/vu+emHEHU5aw6JdDoEtZhoBrHFPZbA/YNRFfN996XbBASEWdvmLSLyv9FKYppYGyZjCaq/g==",
101
111
  "/@types/semver@7.5.6": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==",
102
112
  "/@types/stack-utils@2.0.3": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
113
+ "/@types/w3c-web-usb@1.0.10": "sha512-CHgUI5kTc/QLMP8hODUHhge0D4vx+9UiAwIGiT0sTy/B2XpdX1U5rJt6JSISgr6ikRT7vxV9EVAFeYZqUnl1gQ==",
103
114
  "/@types/yargs-parser@21.0.3": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
104
115
  "/@types/yargs@17.0.32": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==",
105
116
  "/@typescript-eslint/eslint-plugin@6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@4.9.5)": "sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==",
@@ -126,7 +137,7 @@
126
137
  "/argparse@1.0.10": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
127
138
  "/argparse@2.0.1": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
128
139
  "/array-union@2.1.0": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
129
- "/assertion-error@1.1.0": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
140
+ "/asn1.js@4.10.1": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==",
130
141
  "/asynckit@0.4.0": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
131
142
  "/axios@0.21.4": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
132
143
  "/axios@1.5.1": "sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A==",
@@ -138,28 +149,37 @@
138
149
  "/balanced-match@1.0.2": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
139
150
  "/base-x@4.0.0": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==",
140
151
  "/base64-js@1.5.1": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
152
+ "/bindings@1.5.0": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
153
+ "/bl@4.1.0": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
141
154
  "/bn.js@4.12.0": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==",
142
- "/bn.js@5.2.0": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==",
155
+ "/bn.js@5.2.1": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==",
143
156
  "/brace-expansion@1.1.11": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
144
157
  "/brace-expansion@2.0.1": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
145
158
  "/braces@3.0.2": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
146
159
  "/brorand@1.1.0": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
160
+ "/browserify-aes@1.2.0": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==",
161
+ "/browserify-cipher@1.0.1": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==",
162
+ "/browserify-des@1.0.2": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==",
163
+ "/browserify-rsa@4.1.0": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==",
164
+ "/browserify-sign@4.2.3": "sha512-JWCZW6SKhfhjJxO8Tyiiy+XYB7cqd2S5/+WeYHsKdNKFlCBhKbblba1A/HN/90YwtxKc8tCErjffZl++UNmGiw==",
147
165
  "/browserslist@4.22.3": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==",
148
166
  "/bs-logger@0.2.6": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
149
167
  "/bs58@5.0.0": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==",
150
168
  "/bser@2.1.1": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
151
169
  "/buffer-from@1.1.2": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
170
+ "/buffer-xor@1.0.3": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==",
171
+ "/buffer@5.7.1": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
152
172
  "/buffer@6.0.3": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
153
173
  "/callsites@3.1.0": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
154
174
  "/camelcase@5.3.1": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
155
175
  "/camelcase@6.3.0": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
156
176
  "/caniuse-lite@1.0.30001582": "sha512-vsJG3V5vgfduaQGVxL53uSX/HUzxyr2eA8xCo36OLal7sRcSZbibJtLeh0qja4sFOr/QQGt4opB4tOy+eOgAxg==",
157
- "/chai@4.3.10": "sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g==",
158
177
  "/chalk@2.4.2": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
159
178
  "/chalk@4.1.2": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
160
179
  "/char-regex@1.0.2": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
161
- "/check-error@1.0.3": "sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==",
180
+ "/chownr@1.1.4": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
162
181
  "/ci-info@3.9.0": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
182
+ "/cipher-base@1.0.4": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==",
163
183
  "/cjs-module-lexer@1.2.3": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==",
164
184
  "/cliui@8.0.1": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
165
185
  "/co@4.6.0": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
@@ -171,28 +191,40 @@
171
191
  "/combined-stream@1.0.8": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
172
192
  "/concat-map@0.0.1": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
173
193
  "/convert-source-map@2.0.0": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
194
+ "/core-util-is@1.0.3": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==",
195
+ "/create-ecdh@4.0.4": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==",
196
+ "/create-hash@1.2.0": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==",
197
+ "/create-hmac@1.1.7": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==",
174
198
  "/create-jest@29.7.0(@types/node@20.2.6)(ts-node@10.9.1)": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==",
175
199
  "/create-require@1.1.1": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
176
200
  "/cross-fetch@3.1.8": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==",
177
201
  "/cross-spawn@7.0.3": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
202
+ "/crypto-browserify@3.12.0": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==",
178
203
  "/crypto-js@4.1.1": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==",
179
204
  "/debug@4.3.4": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
180
205
  "/decode-uri-component@0.2.2": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==",
206
+ "/decompress-response@6.0.0": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
181
207
  "/dedent@1.5.1": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==",
182
- "/deep-eql@4.1.3": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==",
208
+ "/deep-extend@0.6.0": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
183
209
  "/deep-is@0.1.4": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
184
210
  "/deepmerge@4.3.1": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
185
211
  "/delayed-stream@1.0.0": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
212
+ "/des.js@1.1.0": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==",
213
+ "/detect-libc@2.0.3": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==",
186
214
  "/detect-newline@3.1.0": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
187
215
  "/diff-sequences@29.6.3": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
188
216
  "/diff@4.0.2": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
217
+ "/diffie-hellman@5.0.3": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==",
189
218
  "/dir-glob@3.0.1": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
190
219
  "/doctrine@3.0.0": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
191
220
  "/dotenv@16.3.1": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==",
192
221
  "/electron-to-chromium@1.4.654": "sha512-hjfFa+Vj4WGLRVTlCQa+IivBkpcp+boGxMQfusOC/me5Y5NfU4wX7wyw+K9p8Cw4tl0BVIZGH2n7y/jMc3w4pg==",
193
222
  "/elliptic@6.5.4": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
223
+ "/elliptic@6.5.5": "sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==",
224
+ "/emitter-component@1.1.2": "sha512-QdXO3nXOzZB4pAjM0n6ZE+R9/+kPpECA/XSELIcc54NeYVnBqIk+4DFiBgK+8QbV3mdvTG6nedl7dTYgO+5wDw==",
194
225
  "/emittery@0.13.1": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
195
226
  "/emoji-regex@8.0.0": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
227
+ "/end-of-stream@1.4.4": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
196
228
  "/error-ex@1.3.2": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
197
229
  "/escalade@3.1.1": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
198
230
  "/escape-string-regexp@1.0.5": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
@@ -207,9 +239,13 @@
207
239
  "/esrecurse@4.3.0": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
208
240
  "/estraverse@5.3.0": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
209
241
  "/esutils@2.0.3": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
242
+ "/ethereum-cryptography@2.0.0": "sha512-g25m4EtfQGjstWgVE1aIz7XYYjf3kH5kG17ULWVB5dH6uLahsoltOhACzSxyDV+fhn4gbR4xRrOXGe6r2uh4Bg==",
210
243
  "/event-target-shim@5.0.1": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==",
244
+ "/events@3.3.0": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==",
245
+ "/evp_bytestokey@1.0.3": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==",
211
246
  "/execa@5.1.1": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
212
247
  "/exit@0.1.2": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
248
+ "/expand-template@2.0.3": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
213
249
  "/expect@29.7.0": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
214
250
  "/fast-deep-equal@3.1.3": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
215
251
  "/fast-glob@3.3.2": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
@@ -218,6 +254,7 @@
218
254
  "/fastq@1.17.0": "sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==",
219
255
  "/fb-watchman@2.0.2": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
220
256
  "/file-entry-cache@6.0.1": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
257
+ "/file-uri-to-path@1.0.0": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
221
258
  "/fill-range@7.0.1": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
222
259
  "/filter-obj@1.1.0": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==",
223
260
  "/find-up@4.1.0": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
@@ -226,14 +263,15 @@
226
263
  "/flatted@3.2.9": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
227
264
  "/follow-redirects@1.15.5": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
228
265
  "/form-data@4.0.0": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
266
+ "/fs-constants@1.0.0": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
229
267
  "/fs.realpath@1.0.0": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
230
268
  "/fsevents@2.3.3": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
231
269
  "/function-bind@1.1.2": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
232
270
  "/gensync@1.0.0-beta.2": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
233
271
  "/get-caller-file@2.0.5": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
234
- "/get-func-name@2.0.2": "sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==",
235
272
  "/get-package-type@0.1.0": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
236
273
  "/get-stream@6.0.1": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
274
+ "/github-from-package@0.0.0": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
237
275
  "/glob-parent@5.1.2": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
238
276
  "/glob-parent@6.0.2": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
239
277
  "/glob@7.2.3": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
@@ -244,6 +282,8 @@
244
282
  "/graphemer@1.4.0": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
245
283
  "/has-flag@3.0.0": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
246
284
  "/has-flag@4.0.0": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
285
+ "/hash-base@3.0.4": "sha512-EeeoJKjTyt868liAlVmcv2ZsUfGHlE3Q+BICOXcZiwN3osr5Q/zFGYmTJpoIzuaSTAwndFy+GqhEwlU4L3j4Ow==",
286
+ "/hash-base@3.1.0": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==",
247
287
  "/hash.js@1.1.7": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
248
288
  "/hasown@2.0.0": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
249
289
  "/hmac-drbg@1.0.1": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
@@ -256,6 +296,7 @@
256
296
  "/imurmurhash@0.1.4": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
257
297
  "/inflight@1.0.6": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
258
298
  "/inherits@2.0.4": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
299
+ "/ini@1.3.8": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
259
300
  "/is-arrayish@0.2.1": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
260
301
  "/is-core-module@2.13.1": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==",
261
302
  "/is-extglob@2.1.1": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
@@ -265,6 +306,7 @@
265
306
  "/is-number@7.0.0": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
266
307
  "/is-path-inside@3.0.3": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
267
308
  "/is-stream@2.0.1": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
309
+ "/isarray@1.0.0": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
268
310
  "/isexe@2.0.0": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
269
311
  "/istanbul-lib-coverage@3.2.2": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
270
312
  "/istanbul-lib-instrument@5.2.1": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
@@ -318,26 +360,36 @@
318
360
  "/lodash.merge@4.6.2": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
319
361
  "/lodash@4.17.21": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
320
362
  "/loglevel-plugin-prefix@0.8.4": "sha512-WpG9CcFAOjz/FtNht+QJeGpvVl/cdR6P0z6OcXSkr8wFJOsV2GRj2j10JLfjuA4aYkcKCNIEqRGCyTife9R8/g==",
321
- "/loglevel@1.8.0": "sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==",
322
- "/loupe@2.3.7": "sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==",
363
+ "/loglevel@1.8.1": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==",
323
364
  "/lru-cache@5.1.1": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
324
365
  "/lru-cache@6.0.0": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
325
366
  "/make-dir@4.0.0": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
326
367
  "/make-error@1.3.6": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
327
368
  "/makeerror@1.0.12": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
369
+ "/md5.js@1.3.5": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==",
328
370
  "/merge-stream@2.0.0": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
329
371
  "/merge2@1.4.1": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
330
372
  "/micromatch@4.0.5": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
373
+ "/miller-rabin@4.0.1": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==",
331
374
  "/mime-db@1.52.0": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
332
375
  "/mime-types@2.1.35": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
333
376
  "/mimic-fn@2.1.0": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
377
+ "/mimic-response@3.1.0": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
334
378
  "/minimalistic-assert@1.0.1": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
335
379
  "/minimalistic-crypto-utils@1.0.1": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
336
380
  "/minimatch@3.1.2": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
337
381
  "/minimatch@9.0.3": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
382
+ "/minimist@1.2.8": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
383
+ "/mkdirp-classic@0.5.3": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
338
384
  "/ms@2.1.2": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
385
+ "/napi-build-utils@1.0.2": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==",
339
386
  "/natural-compare@1.4.0": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
387
+ "/node-abi@3.57.0": "sha512-Dp+A9JWxRaKuHP35H77I4kCKesDy5HUDEmScia2FyncMTOXASMyg251F5PhFoDA5uqBrDDffiLpbqnrZmNXW+g==",
388
+ "/node-addon-api@3.2.1": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==",
389
+ "/node-addon-api@6.1.0": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
340
390
  "/node-fetch@2.7.0": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
391
+ "/node-gyp-build@4.8.0": "sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==",
392
+ "/node-hid@2.2.0": "sha512-vj48zh9j555DZzUhMc8tk/qw6xPFrDyPBH1ST1Z/hWaA/juBJw7IuSxPeOgpzNFNU36mGYj+THioRMt1xOdm/g==",
341
393
  "/node-int64@0.4.0": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
342
394
  "/node-releases@2.0.14": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==",
343
395
  "/normalize-path@3.0.0": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
@@ -351,26 +403,38 @@
351
403
  "/p-locate@5.0.0": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
352
404
  "/p-try@2.2.0": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
353
405
  "/parent-module@1.0.1": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
406
+ "/parse-asn1@5.1.7": "sha512-CTM5kuWR3sx9IFamcl5ErfPl6ea/N8IYwiJ+vpeB2g+1iknv7zBl5uPwbMbRVznRVbrNY6lGuDoE5b30grmbqg==",
354
407
  "/parse-json@5.2.0": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
355
408
  "/path-exists@4.0.0": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
356
409
  "/path-is-absolute@1.0.1": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
357
410
  "/path-key@3.1.1": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
358
411
  "/path-parse@1.0.7": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
359
412
  "/path-type@4.0.0": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
360
- "/pathval@1.1.1": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
413
+ "/pbkdf2@3.1.2": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==",
361
414
  "/picocolors@1.0.0": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
362
415
  "/picomatch@2.3.1": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
363
416
  "/pirates@4.0.6": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
364
417
  "/pkg-dir@4.2.0": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
418
+ "/prebuild-install@7.1.2": "sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==",
365
419
  "/prelude-ls@1.2.1": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
366
420
  "/pretty-format@29.7.0": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
421
+ "/process-nextick-args@2.0.1": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
422
+ "/process@0.11.10": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==",
367
423
  "/prompts@2.4.2": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
368
424
  "/proxy-from-env@1.1.0": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
425
+ "/public-encrypt@4.0.3": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==",
426
+ "/pump@3.0.0": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
369
427
  "/punycode@2.3.1": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
370
428
  "/pure-rand@6.0.4": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==",
371
429
  "/query-string@7.1.3": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==",
372
430
  "/queue-microtask@1.2.3": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
431
+ "/randombytes@2.1.0": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
432
+ "/randomfill@1.0.4": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==",
433
+ "/rc@1.2.8": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
373
434
  "/react-is@18.2.0": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
435
+ "/readable-stream@2.3.8": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
436
+ "/readable-stream@3.6.2": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
437
+ "/readable-stream@4.5.2": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==",
374
438
  "/require-directory@2.1.1": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
375
439
  "/resolve-cwd@3.0.0": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
376
440
  "/resolve-from@4.0.0": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
@@ -379,13 +443,19 @@
379
443
  "/resolve@1.22.8": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==",
380
444
  "/reusify@1.0.4": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
381
445
  "/rimraf@3.0.2": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
446
+ "/ripemd160@2.0.2": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==",
382
447
  "/run-parallel@1.2.0": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
383
- "/scrypt-js@3.0.1": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==",
448
+ "/rxjs@7.8.1": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==",
449
+ "/safe-buffer@5.1.2": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
450
+ "/safe-buffer@5.2.1": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
384
451
  "/semver@6.3.1": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
385
452
  "/semver@7.5.4": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
453
+ "/sha.js@2.4.11": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==",
386
454
  "/shebang-command@2.0.0": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
387
455
  "/shebang-regex@3.0.0": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
388
456
  "/signal-exit@3.0.7": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
457
+ "/simple-concat@1.0.1": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
458
+ "/simple-get@4.0.1": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
389
459
  "/sisteransi@1.0.5": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
390
460
  "/slash@3.0.0": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
391
461
  "/source-map-support@0.5.13": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
@@ -393,17 +463,24 @@
393
463
  "/split-on-first@1.1.0": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==",
394
464
  "/sprintf-js@1.0.3": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
395
465
  "/stack-utils@2.0.6": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
466
+ "/stream-browserify@3.0.0": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==",
467
+ "/stream@0.0.2": "sha512-gCq3NDI2P35B2n6t76YJuOp7d6cN/C7Rt0577l91wllh0sY9ZBuw9KaSGqH/b0hzn3CWWJbpbW0W0WvQ1H/Q7g==",
396
468
  "/strict-uri-encode@2.0.0": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==",
397
469
  "/string-length@4.0.2": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
398
470
  "/string-width@4.2.3": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
471
+ "/string_decoder@1.1.1": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
472
+ "/string_decoder@1.3.0": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
399
473
  "/strip-ansi@6.0.1": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
400
474
  "/strip-bom@4.0.0": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
401
475
  "/strip-final-newline@2.0.0": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
476
+ "/strip-json-comments@2.0.1": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
402
477
  "/strip-json-comments@3.1.1": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
403
478
  "/supports-color@5.5.0": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
404
479
  "/supports-color@7.2.0": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
405
480
  "/supports-color@8.1.1": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
406
481
  "/supports-preserve-symlinks-flag@1.0.0": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
482
+ "/tar-fs@2.1.1": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
483
+ "/tar-stream@2.2.0": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
407
484
  "/test-exclude@6.0.0": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
408
485
  "/text-table@0.2.0": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
409
486
  "/tmpl@1.0.5": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
@@ -413,6 +490,8 @@
413
490
  "/ts-api-utils@1.0.3(typescript@4.9.5)": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==",
414
491
  "/ts-jest@29.1.1(@babel/core@7.23.9)(jest@29.6.2)(typescript@4.9.5)": "sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==",
415
492
  "/ts-node@10.9.1(@types/node@20.2.6)(typescript@4.9.5)": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
493
+ "/tslib@2.6.2": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
494
+ "/tunnel-agent@0.6.0": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
416
495
  "/type-check@0.4.0": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
417
496
  "/type-detect@4.0.8": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
418
497
  "/type-fest@0.20.2": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
@@ -420,6 +499,8 @@
420
499
  "/typescript@4.9.5": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==",
421
500
  "/update-browserslist-db@1.0.13(browserslist@4.22.3)": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
422
501
  "/uri-js@4.4.1": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
502
+ "/usb@2.9.0": "sha512-G0I/fPgfHUzWH8xo2KkDxTTFruUWfppgSFJ+bQxz/kVY2x15EQ/XDB7dqD1G432G4gBG4jYQuF3U7j/orSs5nw==",
503
+ "/util-deprecate@1.0.2": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
423
504
  "/v8-compile-cache-lib@3.0.1": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
424
505
  "/v8-to-istanbul@9.2.0": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==",
425
506
  "/walker@1.0.8": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
package/CHANGELOG.json CHANGED
@@ -1,6 +1,23 @@
1
1
  {
2
2
  "name": "@cityofzion/bs-neo3",
3
3
  "entries": [
4
+ {
5
+ "version": "0.10.0",
6
+ "tag": "@cityofzion/bs-neo3_v0.10.0",
7
+ "date": "Thu, 04 Apr 2024 19:52:20 GMT",
8
+ "comments": {
9
+ "minor": [
10
+ {
11
+ "comment": "Add ledger support"
12
+ }
13
+ ],
14
+ "dependency": [
15
+ {
16
+ "comment": "Updating dependency \"@cityofzion/blockchain-service\" to `0.10.0`"
17
+ }
18
+ ]
19
+ }
20
+ },
4
21
  {
5
22
  "version": "0.9.3",
6
23
  "tag": "@cityofzion/bs-neo3_v0.9.3",
package/CHANGELOG.md CHANGED
@@ -1,6 +1,13 @@
1
1
  # Change Log - @cityofzion/bs-neo3
2
2
 
3
- This log was last generated on Wed, 28 Feb 2024 17:43:01 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 04 Apr 2024 19:52:20 GMT and should not be manually modified.
4
+
5
+ ## 0.10.0
6
+ Thu, 04 Apr 2024 19:52:20 GMT
7
+
8
+ ### Minor changes
9
+
10
+ - Add ledger support
4
11
 
5
12
  ## 0.9.3
6
13
  Wed, 28 Feb 2024 17:43:01 GMT
package/dist/BSNeo3.d.ts CHANGED
@@ -1,5 +1,6 @@
1
- import { BlockchainDataService, BlockchainService, BSClaimable, Account, ExchangeDataService, BDSClaimable, Token, BSWithNameService, Network, PartialBy, TransferParam, BSCalculableFee, NftDataService, BSWithNft, AccountWithDerivationPath, BSWithExplorerService, ExplorerService } from '@cityofzion/blockchain-service';
2
- export declare class BSNeo3<BSCustomName extends string = string> implements BlockchainService, BSClaimable, BSWithNameService, BSCalculableFee, BSWithNft, BSWithExplorerService {
1
+ import { BlockchainDataService, BlockchainService, BSClaimable, Account, ExchangeDataService, BDSClaimable, Token, BSWithNameService, Network, PartialBy, TransferParam, BSCalculableFee, NftDataService, BSWithNft, AccountWithDerivationPath, BSWithExplorerService, ExplorerService, BSWithLedger } from '@cityofzion/blockchain-service';
2
+ import { LedgerServiceNeo3 } from './LedgerServiceNeo3';
3
+ export declare class BSNeo3<BSCustomName extends string = string> implements BlockchainService, BSClaimable, BSWithNameService, BSCalculableFee, BSWithNft, BSWithExplorerService, BSWithLedger {
3
4
  readonly blockchainName: BSCustomName;
4
5
  readonly feeToken: Token;
5
6
  readonly claimToken: Token;
@@ -7,6 +8,7 @@ export declare class BSNeo3<BSCustomName extends string = string> implements Blo
7
8
  readonly derivationPath: string;
8
9
  blockchainDataService: BlockchainDataService & BDSClaimable;
9
10
  nftDataService: NftDataService;
11
+ ledgerService: LedgerServiceNeo3;
10
12
  exchangeDataService: ExchangeDataService;
11
13
  explorerService: ExplorerService;
12
14
  tokens: Token[];
@@ -18,6 +20,7 @@ export declare class BSNeo3<BSCustomName extends string = string> implements Blo
18
20
  validateKey(key: string): boolean;
19
21
  validateNameServiceDomainFormat(domainName: string): boolean;
20
22
  generateAccountFromMnemonic(mnemonic: string[] | string, index: number): AccountWithDerivationPath;
23
+ generateAccountFromPublicKey(publicKey: string): Account;
21
24
  generateAccountFromKey(key: string): Account;
22
25
  decrypt(encryptedKey: string, password: string): Promise<Account>;
23
26
  encrypt(key: string, password: string): Promise<string>;
package/dist/BSNeo3.js CHANGED
@@ -11,9 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.BSNeo3 = void 0;
13
13
  const neon_js_1 = require("@cityofzion/neon-js");
14
- const neon_invoker_1 = require("@cityofzion/neon-invoker");
15
- const neon_parser_1 = require("@cityofzion/neon-parser");
16
- const neo3_parser_1 = require("@cityofzion/neo3-parser");
14
+ const neon_dappkit_1 = require("@cityofzion/neon-dappkit");
17
15
  const RpcBDSNeo3_1 = require("./RpcBDSNeo3");
18
16
  const DoraBDSNeo3_1 = require("./DoraBDSNeo3");
19
17
  const constants_1 = require("./constants");
@@ -21,8 +19,10 @@ const FlamingoEDSNeo3_1 = require("./FlamingoEDSNeo3");
21
19
  const GhostMarketNDSNeo3_1 = require("./GhostMarketNDSNeo3");
22
20
  const bs_asteroid_sdk_1 = require("@cityofzion/bs-asteroid-sdk");
23
21
  const DoraESNeo3_1 = require("./DoraESNeo3");
22
+ const LedgerServiceNeo3_1 = require("./LedgerServiceNeo3");
24
23
  class BSNeo3 {
25
24
  constructor(blockchainName, network) {
25
+ this.ledgerService = new LedgerServiceNeo3_1.LedgerServiceNeo3();
26
26
  this.blockchainName = blockchainName;
27
27
  this.tokens = constants_1.TOKENS[network.type];
28
28
  this.derivationPath = constants_1.DERIVATION_PATH;
@@ -70,6 +70,16 @@ class BSNeo3 {
70
70
  const { address } = new neon_js_1.wallet.Account(key);
71
71
  return { address, key, type: 'wif', derivationPath: path };
72
72
  }
73
+ generateAccountFromPublicKey(publicKey) {
74
+ if (!neon_js_1.wallet.isPublicKey(publicKey))
75
+ throw new Error('Invalid public key');
76
+ const account = new neon_js_1.wallet.Account(publicKey);
77
+ return {
78
+ address: account.address,
79
+ key: account.publicKey,
80
+ type: 'publicKey',
81
+ };
82
+ }
73
83
  generateAccountFromKey(key) {
74
84
  const type = neon_js_1.wallet.isWIF(key) ? 'wif' : neon_js_1.wallet.isPrivateKey(key) ? 'privateKey' : undefined;
75
85
  if (!type)
@@ -101,24 +111,25 @@ class BSNeo3 {
101
111
  calculateTransferFee(param) {
102
112
  return __awaiter(this, void 0, void 0, function* () {
103
113
  const account = new neon_js_1.wallet.Account(param.senderAccount.key);
104
- const invoker = yield neon_invoker_1.NeonInvoker.init({
114
+ const invoker = yield neon_dappkit_1.NeonInvoker.init({
105
115
  rpcAddress: this.network.url,
106
116
  account,
107
117
  });
108
118
  const invocations = this.buildTransferInvocation(param, account);
109
- const { networkFee, systemFee } = yield invoker.calculateFee({
119
+ const { total } = yield invoker.calculateFee({
110
120
  invocations,
111
121
  signers: [],
112
122
  });
113
- return networkFee.add(systemFee).toDecimal(this.feeToken.decimals);
123
+ return total.toString();
114
124
  });
115
125
  }
116
126
  transfer(param) {
117
127
  return __awaiter(this, void 0, void 0, function* () {
118
128
  const account = new neon_js_1.wallet.Account(param.senderAccount.key);
119
- const invoker = yield neon_invoker_1.NeonInvoker.init({
129
+ const invoker = yield neon_dappkit_1.NeonInvoker.init({
120
130
  rpcAddress: this.network.url,
121
131
  account,
132
+ signingCallback: param.isLedger ? this.ledgerService.getSigningCallback(param.ledgerTransport) : undefined,
122
133
  });
123
134
  const invocations = this.buildTransferInvocation(param, account);
124
135
  const transactionHash = yield invoker.invokeFunction({
@@ -141,8 +152,8 @@ class BSNeo3 {
141
152
  resolveNameServiceDomain(domainName) {
142
153
  var _a;
143
154
  return __awaiter(this, void 0, void 0, function* () {
144
- const parser = neon_parser_1.NeonParser;
145
- const invoker = yield neon_invoker_1.NeonInvoker.init({ rpcAddress: this.network.url });
155
+ const parser = neon_dappkit_1.NeonParser;
156
+ const invoker = yield neon_dappkit_1.NeonInvoker.init({ rpcAddress: this.network.url });
146
157
  const response = yield invoker.testInvoke({
147
158
  invocations: [
148
159
  {
@@ -156,7 +167,7 @@ class BSNeo3 {
156
167
  throw new Error((_a = response.exception) !== null && _a !== void 0 ? _a : 'unrecognized response');
157
168
  }
158
169
  const parsed = parser.parseRpcResponse(response.stack[0], {
159
- type: neo3_parser_1.ABI_TYPES.HASH160.name,
170
+ type: 'Hash160',
160
171
  });
161
172
  const address = parser.accountInputToAddress(parsed.replace('0x', ''));
162
173
  return address;
@@ -0,0 +1,12 @@
1
+ import { LedgerService } from '@cityofzion/blockchain-service';
2
+ import Transport from '@ledgerhq/hw-transport';
3
+ import { api } from '@cityofzion/neon-js';
4
+ export declare class LedgerServiceNeo3 implements LedgerService {
5
+ getAddress(transport: Transport): Promise<string>;
6
+ getSigningCallback(transport: Transport): api.SigningFunction;
7
+ getSignature(transport: Transport, serializedTransaction: string, networkMagic: number, addressIndex?: number): Promise<string>;
8
+ getPublicKey(transport: Transport, addressIndex?: number): Promise<string>;
9
+ private toBip44Buffer;
10
+ private to8BitHex;
11
+ private derSignatureToHex;
12
+ }
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.LedgerServiceNeo3 = void 0;
13
+ const neon_js_1 = require("@cityofzion/neon-js");
14
+ const neon_dappkit_1 = require("@cityofzion/neon-dappkit");
15
+ class LedgerServiceNeo3 {
16
+ getAddress(transport) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ const publicKey = yield this.getPublicKey(transport);
19
+ const { address } = new neon_js_1.wallet.Account(publicKey);
20
+ return address;
21
+ });
22
+ }
23
+ getSigningCallback(transport) {
24
+ return (transaction, { witnessIndex, network }) => __awaiter(this, void 0, void 0, function* () {
25
+ const publicKey = yield this.getPublicKey(transport);
26
+ const account = new neon_js_1.wallet.Account(publicKey);
27
+ const witnessScriptHash = neon_js_1.wallet.getScriptHashFromVerificationScript(transaction.witnesses[witnessIndex].verificationScript.toString());
28
+ if (account.scriptHash !== witnessScriptHash) {
29
+ throw new Error('Invalid witness script hash');
30
+ }
31
+ const signature = yield this.getSignature(transport, transaction.serialize(false), network, witnessIndex);
32
+ return signature;
33
+ });
34
+ }
35
+ getSignature(transport, serializedTransaction, networkMagic, addressIndex = 0) {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ const bip44Buffer = this.toBip44Buffer(addressIndex);
38
+ yield transport.send(0x80, 0x02, 0, 0x80, bip44Buffer, [0x9000]);
39
+ yield transport.send(0x80, 0x02, 1, 0x80, Buffer.from(neon_dappkit_1.NeonParser.numToHex(networkMagic, 4, true), 'hex'), [0x9000]);
40
+ const chunks = serializedTransaction.match(/.{1,510}/g) || [];
41
+ for (let i = 0; i < chunks.length - 1; i++) {
42
+ yield transport.send(0x80, 0x02, 2 + i, 0x80, Buffer.from(chunks[i], 'hex'), [0x9000]);
43
+ }
44
+ const response = yield transport.send(0x80, 0x02, 2 + chunks.length, 0x00, Buffer.from(chunks[chunks.length - 1], 'hex'), [0x9000]);
45
+ if (response.length <= 2) {
46
+ throw new Error(`No more data but Ledger did not return signature!`);
47
+ }
48
+ return this.derSignatureToHex(response.toString('hex'));
49
+ });
50
+ }
51
+ getPublicKey(transport, addressIndex = 0) {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ const bip44Buffer = this.toBip44Buffer(addressIndex);
54
+ const result = yield transport.send(0x80, 0x04, 0x00, 0x00, bip44Buffer, [0x9000]);
55
+ const publicKey = result.toString('hex').substring(0, 130);
56
+ return publicKey;
57
+ });
58
+ }
59
+ toBip44Buffer(addressIndex = 0, changeIndex = 0, accountIndex = 0) {
60
+ const accountHex = this.to8BitHex(accountIndex + 0x80000000);
61
+ const changeHex = this.to8BitHex(changeIndex);
62
+ const addressHex = this.to8BitHex(addressIndex);
63
+ return Buffer.from('8000002C' + '80000378' + accountHex + changeHex + addressHex, 'hex');
64
+ }
65
+ to8BitHex(num) {
66
+ const hex = num.toString(16);
67
+ return '0'.repeat(8 - hex.length) + hex;
68
+ }
69
+ derSignatureToHex(response) {
70
+ const ss = new neon_js_1.u.StringStream(response);
71
+ // The first byte is format. It is usually 0x30 (SEQ) or 0x31 (SET)
72
+ // The second byte represents the total length of the DER module.
73
+ ss.read(2);
74
+ // Now we read each field off
75
+ // Each field is encoded with a type byte, length byte followed by the data itself
76
+ ss.read(1); // Read and drop the type
77
+ const r = ss.readVarBytes();
78
+ ss.read(1);
79
+ const s = ss.readVarBytes();
80
+ // We will need to ensure both integers are 32 bytes long
81
+ const integers = [r, s].map(i => {
82
+ if (i.length < 64) {
83
+ i = '0'.repeat(i.length - 64) + i;
84
+ }
85
+ if (i.length > 64) {
86
+ i = i.substr(-64);
87
+ }
88
+ return i;
89
+ });
90
+ return integers.join('');
91
+ }
92
+ }
93
+ exports.LedgerServiceNeo3 = LedgerServiceNeo3;
@@ -11,7 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.RPCBDSNeo3 = void 0;
13
13
  const neon_core_1 = require("@cityofzion/neon-core");
14
- const neon_invoker_1 = require("@cityofzion/neon-invoker");
14
+ const neon_dappkit_1 = require("@cityofzion/neon-dappkit");
15
15
  const constants_1 = require("./constants");
16
16
  class RPCBDSNeo3 {
17
17
  constructor(network, feeToken, claimToken) {
@@ -82,7 +82,7 @@ class RPCBDSNeo3 {
82
82
  try {
83
83
  const rpcClient = new neon_core_1.rpc.RPCClient(this.network.url);
84
84
  const contractState = yield rpcClient.getContractState(tokenHash);
85
- const invoker = yield neon_invoker_1.NeonInvoker.init({
85
+ const invoker = yield neon_dappkit_1.NeonInvoker.init({
86
86
  rpcAddress: this.network.url,
87
87
  });
88
88
  const response = yield invoker.testInvoke({
@@ -95,6 +95,10 @@ class RPCBDSNeo3 {
95
95
  { scriptHash: tokenHash, operation: 'symbol', args: [] },
96
96
  ],
97
97
  });
98
+ if (!neon_dappkit_1.TypeChecker.isStackTypeInteger(response.stack[0]))
99
+ throw new Error('Invalid decimals');
100
+ if (!neon_dappkit_1.TypeChecker.isStackTypeByteString(response.stack[1]))
101
+ throw new Error('Invalid symbol');
98
102
  const decimals = Number(response.stack[0].value);
99
103
  const symbol = neon_core_1.u.base642utf8(response.stack[1].value);
100
104
  const token = {
package/package.json CHANGED
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "name": "@cityofzion/bs-neo3",
3
- "version": "0.9.3",
3
+ "version": "0.10.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "repository": "https://github.com/CityOfZion/blockchain-services",
7
7
  "author": "Coz",
8
8
  "license": "MIT",
9
9
  "dependencies": {
10
- "@cityofzion/neon-js": "5.3.0",
11
- "@cityofzion/neon-core": "5.3.0",
12
- "@cityofzion/neon-invoker": "1.6.0",
13
- "@cityofzion/neo3-invoker": "1.6.0",
14
- "@cityofzion/neon-parser": "1.6.2",
15
- "@cityofzion/neo3-parser": "1.6.0",
10
+ "@cityofzion/neon-js": "5.5.1",
11
+ "@cityofzion/neon-core": "5.5.1",
16
12
  "@cityofzion/dora-ts": "0.0.11",
17
13
  "axios": "1.5.1",
18
14
  "query-string": "7.1.3",
15
+ "@ledgerhq/hw-transport": "~6.30.5",
16
+ "@cityofzion/neon-dappkit": "0.4.1",
17
+ "@cityofzion/neon-dappkit-types": "~0.3.1",
18
+ "@ledgerhq/hw-transport-node-hid": "~6.28.5",
19
19
  "@cityofzion/bs-asteroid-sdk": "0.7.3",
20
- "@cityofzion/blockchain-service": "0.9.1"
20
+ "@cityofzion/blockchain-service": "0.10.0"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@types/jest": "29.5.3",
package/src/BSNeo3.ts CHANGED
@@ -16,14 +16,11 @@ import {
16
16
  AccountWithDerivationPath,
17
17
  BSWithExplorerService,
18
18
  ExplorerService,
19
+ BSWithLedger,
19
20
  } from '@cityofzion/blockchain-service'
20
21
  import { api, u, wallet } from '@cityofzion/neon-js'
21
22
  import Neon from '@cityofzion/neon-core'
22
- import { NeonInvoker } from '@cityofzion/neon-invoker'
23
- import { NeonParser } from '@cityofzion/neon-parser'
24
- import { ABI_TYPES } from '@cityofzion/neo3-parser'
25
- import { ContractInvocation } from '@cityofzion/neo3-invoker'
26
-
23
+ import { NeonInvoker, NeonParser } from '@cityofzion/neon-dappkit'
27
24
  import { RPCBDSNeo3 } from './RpcBDSNeo3'
28
25
  import { DoraBDSNeo3 } from './DoraBDSNeo3'
29
26
  import { DEFAULT_URL_BY_NETWORK_TYPE, DERIVATION_PATH, NEO_NS_HASH, TOKENS } from './constants'
@@ -31,9 +28,18 @@ import { FlamingoEDSNeo3 } from './FlamingoEDSNeo3'
31
28
  import { GhostMarketNDSNeo3 } from './GhostMarketNDSNeo3'
32
29
  import { keychain } from '@cityofzion/bs-asteroid-sdk'
33
30
  import { DoraESNeo3 } from './DoraESNeo3'
31
+ import { ContractInvocation } from '@cityofzion/neon-dappkit-types'
32
+ import { LedgerServiceNeo3 } from './LedgerServiceNeo3'
34
33
 
35
34
  export class BSNeo3<BSCustomName extends string = string>
36
- implements BlockchainService, BSClaimable, BSWithNameService, BSCalculableFee, BSWithNft, BSWithExplorerService
35
+ implements
36
+ BlockchainService,
37
+ BSClaimable,
38
+ BSWithNameService,
39
+ BSCalculableFee,
40
+ BSWithNft,
41
+ BSWithExplorerService,
42
+ BSWithLedger
37
43
  {
38
44
  readonly blockchainName: BSCustomName
39
45
  readonly feeToken: Token
@@ -43,6 +49,7 @@ export class BSNeo3<BSCustomName extends string = string>
43
49
 
44
50
  blockchainDataService!: BlockchainDataService & BDSClaimable
45
51
  nftDataService!: NftDataService
52
+ ledgerService: LedgerServiceNeo3 = new LedgerServiceNeo3()
46
53
  exchangeDataService!: ExchangeDataService
47
54
  explorerService!: ExplorerService
48
55
  tokens: Token[]
@@ -103,6 +110,18 @@ export class BSNeo3<BSCustomName extends string = string>
103
110
  return { address, key, type: 'wif', derivationPath: path }
104
111
  }
105
112
 
113
+ generateAccountFromPublicKey(publicKey: string): Account {
114
+ if (!wallet.isPublicKey(publicKey)) throw new Error('Invalid public key')
115
+
116
+ const account = new wallet.Account(publicKey)
117
+
118
+ return {
119
+ address: account.address,
120
+ key: account.publicKey,
121
+ type: 'publicKey',
122
+ }
123
+ }
124
+
106
125
  generateAccountFromKey(key: string): Account {
107
126
  const type = wallet.isWIF(key) ? 'wif' : wallet.isPrivateKey(key) ? 'privateKey' : undefined
108
127
  if (!type) throw new Error('Invalid key')
@@ -136,6 +155,7 @@ export class BSNeo3<BSCustomName extends string = string>
136
155
 
137
156
  async calculateTransferFee(param: TransferParam): Promise<string> {
138
157
  const account = new wallet.Account(param.senderAccount.key)
158
+
139
159
  const invoker = await NeonInvoker.init({
140
160
  rpcAddress: this.network.url,
141
161
  account,
@@ -143,19 +163,21 @@ export class BSNeo3<BSCustomName extends string = string>
143
163
 
144
164
  const invocations = this.buildTransferInvocation(param, account)
145
165
 
146
- const { networkFee, systemFee } = await invoker.calculateFee({
166
+ const { total } = await invoker.calculateFee({
147
167
  invocations,
148
168
  signers: [],
149
169
  })
150
170
 
151
- return networkFee.add(systemFee).toDecimal(this.feeToken.decimals)
171
+ return total.toString()
152
172
  }
153
173
 
154
174
  async transfer(param: TransferParam): Promise<string> {
155
175
  const account = new wallet.Account(param.senderAccount.key)
176
+
156
177
  const invoker = await NeonInvoker.init({
157
178
  rpcAddress: this.network.url,
158
179
  account,
180
+ signingCallback: param.isLedger ? this.ledgerService.getSigningCallback(param.ledgerTransport) : undefined,
159
181
  })
160
182
 
161
183
  const invocations = this.buildTransferInvocation(param, account)
@@ -197,7 +219,7 @@ export class BSNeo3<BSCustomName extends string = string>
197
219
  }
198
220
 
199
221
  const parsed = parser.parseRpcResponse(response.stack[0] as any, {
200
- type: ABI_TYPES.HASH160.name,
222
+ type: 'Hash160',
201
223
  })
202
224
  const address = parser.accountInputToAddress(parsed.replace('0x', ''))
203
225
  return address
@@ -0,0 +1,107 @@
1
+ import { LedgerService } from '@cityofzion/blockchain-service'
2
+ import Transport from '@ledgerhq/hw-transport'
3
+ import { wallet, api, u } from '@cityofzion/neon-js'
4
+ import { NeonParser } from '@cityofzion/neon-dappkit'
5
+
6
+ export class LedgerServiceNeo3 implements LedgerService {
7
+ async getAddress(transport: Transport): Promise<string> {
8
+ const publicKey = await this.getPublicKey(transport)
9
+ const { address } = new wallet.Account(publicKey)
10
+
11
+ return address
12
+ }
13
+
14
+ getSigningCallback(transport: Transport): api.SigningFunction {
15
+ return async (transaction, { witnessIndex, network }) => {
16
+ const publicKey = await this.getPublicKey(transport)
17
+ const account = new wallet.Account(publicKey)
18
+
19
+ const witnessScriptHash = wallet.getScriptHashFromVerificationScript(
20
+ transaction.witnesses[witnessIndex].verificationScript.toString()
21
+ )
22
+
23
+ if (account.scriptHash !== witnessScriptHash) {
24
+ throw new Error('Invalid witness script hash')
25
+ }
26
+
27
+ const signature = await this.getSignature(transport, transaction.serialize(false), network, witnessIndex)
28
+
29
+ return signature
30
+ }
31
+ }
32
+
33
+ async getSignature(transport: Transport, serializedTransaction: string, networkMagic: number, addressIndex = 0) {
34
+ const bip44Buffer = this.toBip44Buffer(addressIndex)
35
+ await transport.send(0x80, 0x02, 0, 0x80, bip44Buffer, [0x9000])
36
+ await transport.send(0x80, 0x02, 1, 0x80, Buffer.from(NeonParser.numToHex(networkMagic, 4, true), 'hex'), [0x9000])
37
+
38
+ const chunks = serializedTransaction.match(/.{1,510}/g) || []
39
+
40
+ for (let i = 0; i < chunks.length - 1; i++) {
41
+ await transport.send(0x80, 0x02, 2 + i, 0x80, Buffer.from(chunks[i], 'hex'), [0x9000])
42
+ }
43
+
44
+ const response = await transport.send(
45
+ 0x80,
46
+ 0x02,
47
+ 2 + chunks.length,
48
+ 0x00,
49
+ Buffer.from(chunks[chunks.length - 1], 'hex'),
50
+ [0x9000]
51
+ )
52
+
53
+ if (response.length <= 2) {
54
+ throw new Error(`No more data but Ledger did not return signature!`)
55
+ }
56
+
57
+ return this.derSignatureToHex(response.toString('hex'))
58
+ }
59
+
60
+ async getPublicKey(transport: Transport, addressIndex = 0): Promise<string> {
61
+ const bip44Buffer = this.toBip44Buffer(addressIndex)
62
+
63
+ const result = await transport.send(0x80, 0x04, 0x00, 0x00, bip44Buffer, [0x9000])
64
+ const publicKey = result.toString('hex').substring(0, 130)
65
+
66
+ return publicKey
67
+ }
68
+
69
+ private toBip44Buffer(addressIndex = 0, changeIndex = 0, accountIndex = 0) {
70
+ const accountHex = this.to8BitHex(accountIndex + 0x80000000)
71
+ const changeHex = this.to8BitHex(changeIndex)
72
+ const addressHex = this.to8BitHex(addressIndex)
73
+
74
+ return Buffer.from('8000002C' + '80000378' + accountHex + changeHex + addressHex, 'hex')
75
+ }
76
+
77
+ private to8BitHex(num: number): string {
78
+ const hex = num.toString(16)
79
+ return '0'.repeat(8 - hex.length) + hex
80
+ }
81
+
82
+ private derSignatureToHex(response: string): string {
83
+ const ss = new u.StringStream(response)
84
+ // The first byte is format. It is usually 0x30 (SEQ) or 0x31 (SET)
85
+ // The second byte represents the total length of the DER module.
86
+ ss.read(2)
87
+ // Now we read each field off
88
+ // Each field is encoded with a type byte, length byte followed by the data itself
89
+ ss.read(1) // Read and drop the type
90
+ const r = ss.readVarBytes()
91
+ ss.read(1)
92
+ const s = ss.readVarBytes()
93
+
94
+ // We will need to ensure both integers are 32 bytes long
95
+ const integers = [r, s].map(i => {
96
+ if (i.length < 64) {
97
+ i = '0'.repeat(i.length - 64) + i
98
+ }
99
+ if (i.length > 64) {
100
+ i = i.substr(-64)
101
+ }
102
+ return i
103
+ })
104
+
105
+ return integers.join('')
106
+ }
107
+ }
package/src/RpcBDSNeo3.ts CHANGED
@@ -12,7 +12,7 @@ import {
12
12
  TransactionsByAddressResponse,
13
13
  } from '@cityofzion/blockchain-service'
14
14
  import { rpc, u } from '@cityofzion/neon-core'
15
- import { NeonInvoker } from '@cityofzion/neon-invoker'
15
+ import { NeonInvoker, TypeChecker } from '@cityofzion/neon-dappkit'
16
16
  import { TOKENS } from './constants'
17
17
 
18
18
  export class RPCBDSNeo3 implements BlockchainDataService, BDSClaimable {
@@ -102,8 +102,10 @@ export class RPCBDSNeo3 implements BlockchainDataService, BDSClaimable {
102
102
  ],
103
103
  })
104
104
 
105
+ if (!TypeChecker.isStackTypeInteger(response.stack[0])) throw new Error('Invalid decimals')
106
+ if (!TypeChecker.isStackTypeByteString(response.stack[1])) throw new Error('Invalid symbol')
105
107
  const decimals = Number(response.stack[0].value)
106
- const symbol = u.base642utf8(response.stack[1].value as string)
108
+ const symbol = u.base642utf8(response.stack[1].value)
107
109
  const token = {
108
110
  name: contractState.manifest.name,
109
111
  symbol,
@@ -1,6 +1,7 @@
1
1
  import { sleep } from './utils/sleep'
2
2
  import { BSNeo3 } from '../BSNeo3'
3
3
  import { generateMnemonic } from '@cityofzion/bs-asteroid-sdk'
4
+ import TransportNodeHid from '@ledgerhq/hw-transport-node-hid'
4
5
 
5
6
  let bsNeo3: BSNeo3
6
7
 
@@ -120,6 +121,31 @@ describe('BSNeo3', () => {
120
121
  expect(transactionHash).toEqual(expect.any(String))
121
122
  })
122
123
 
124
+ it.skip('Should be able to transfer with ledger', async () => {
125
+ const transport = await TransportNodeHid.create()
126
+ const publicKey = await bsNeo3.ledgerService.getPublicKey(transport)
127
+
128
+ const account = bsNeo3.generateAccountFromPublicKey(publicKey)
129
+
130
+ const balance = await bsNeo3.blockchainDataService.getBalance(account.address)
131
+ const gasBalance = balance.find(b => b.token.symbol === bsNeo3.feeToken.symbol)
132
+ expect(Number(gasBalance?.amount)).toBeGreaterThan(0.00000001)
133
+
134
+ const transactionHash = await bsNeo3.transfer({
135
+ senderAccount: account,
136
+ intent: {
137
+ amount: '1',
138
+ receiverAddress: 'NPRMF5bmYuW23DeDJqsDJenhXkAPSJyuYe',
139
+ tokenHash: bsNeo3.feeToken.hash,
140
+ tokenDecimals: bsNeo3.feeToken.decimals,
141
+ },
142
+ isLedger: true,
143
+ ledgerTransport: transport,
144
+ })
145
+
146
+ expect(transactionHash).toEqual(expect.any(String))
147
+ }, 60000)
148
+
123
149
  it.skip('Should be able to claim', async () => {
124
150
  const account = bsNeo3.generateAccountFromKey(process.env.TESTNET_PRIVATE_KEY as string)
125
151