Skip to content

Commit 99a7964

Browse files
committed
Add coin id helper
1 parent a7d6360 commit 99a7964

File tree

3 files changed

+98
-1
lines changed

3 files changed

+98
-1
lines changed

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@rigidity/chia",
33
"author": "rigidity",
4-
"version": "1.5.1",
4+
"version": "1.6.0",
55
"description": "Chia RPC client and various helper utilities.",
66
"repository": "https://github.com/Rigidity/chia.git",
77
"main": "dist/index.js",
@@ -15,6 +15,7 @@
1515
"source-map-support": "^0.5.21"
1616
},
1717
"dependencies": {
18+
"@rigidity/bls-signatures": "^2.0.3",
1819
"@types/node": "^17.0.21",
1920
"axios": "^0.24.0",
2021
"bech32": "^2.0.0",

src/utils/hash.ts

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import {
2+
concatBytes,
3+
encodeInt,
4+
fromHex,
5+
hash256,
6+
} from '@rigidity/bls-signatures';
7+
import { Coin } from '../types/Coin';
8+
import { sanitizeHex } from './hex';
9+
10+
export function toCoinId(coin: Coin): Uint8Array {
11+
return hash256(
12+
concatBytes(
13+
fromHex(sanitizeHex(coin.parent_coin_info)),
14+
fromHex(sanitizeHex(coin.puzzle_hash)),
15+
encodeInt(coin.amount)
16+
)
17+
);
18+
}

yarn.lock

+78
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@
22
# yarn lockfile v1
33

44

5+
"@rigidity/bls-signatures@^2.0.3":
6+
version "2.0.3"
7+
resolved "https://registry.yarnpkg.com/@rigidity/bls-signatures/-/bls-signatures-2.0.3.tgz#178e96cfaabd73c593ac215629a37623ea9e4513"
8+
integrity sha512-ZNV5mhtBRxZ6IzRbEbBNB6vuv7mKhdX7hJYd3gLdw5y6x5S8waKJhcizRoiUWm8wn9AnefsQymWGdSCgC51d7g==
9+
dependencies:
10+
chai "^4.3.4"
11+
jssha "^3.2.0"
12+
randombytes "^2.1.0"
13+
514
"@types/js-yaml@^4.0.5":
615
version "4.0.5"
716
resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138"
@@ -17,6 +26,11 @@ argparse@^2.0.1:
1726
resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
1827
integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
1928

29+
assertion-error@^1.1.0:
30+
version "1.1.0"
31+
resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b"
32+
integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==
33+
2034
axios@^0.24.0:
2135
version "0.24.0"
2236
resolved "https://registry.yarnpkg.com/axios/-/axios-0.24.0.tgz#804e6fa1e4b9c5288501dd9dff56a7a0940d20d6"
@@ -34,18 +48,77 @@ buffer-from@^1.0.0:
3448
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
3549
integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
3650

51+
chai@^4.3.4:
52+
version "4.3.6"
53+
resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.6.tgz#ffe4ba2d9fa9d6680cc0b370adae709ec9011e9c"
54+
integrity sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==
55+
dependencies:
56+
assertion-error "^1.1.0"
57+
check-error "^1.0.2"
58+
deep-eql "^3.0.1"
59+
get-func-name "^2.0.0"
60+
loupe "^2.3.1"
61+
pathval "^1.1.1"
62+
type-detect "^4.0.5"
63+
64+
check-error@^1.0.2:
65+
version "1.0.2"
66+
resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
67+
integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==
68+
69+
deep-eql@^3.0.1:
70+
version "3.0.1"
71+
resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
72+
integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==
73+
dependencies:
74+
type-detect "^4.0.0"
75+
3776
follow-redirects@^1.14.4:
3877
version "1.14.7"
3978
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685"
4079
integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ==
4180

81+
get-func-name@^2.0.0:
82+
version "2.0.0"
83+
resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
84+
integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=
85+
4286
js-yaml@^4.1.0:
4387
version "4.1.0"
4488
resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
4589
integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
4690
dependencies:
4791
argparse "^2.0.1"
4892

93+
jssha@^3.2.0:
94+
version "3.2.0"
95+
resolved "https://registry.yarnpkg.com/jssha/-/jssha-3.2.0.tgz#88ec50b866dd1411deaddbe6b3e3692e4c710f16"
96+
integrity sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q==
97+
98+
loupe@^2.3.1:
99+
version "2.3.4"
100+
resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.4.tgz#7e0b9bffc76f148f9be769cb1321d3dcf3cb25f3"
101+
integrity sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==
102+
dependencies:
103+
get-func-name "^2.0.0"
104+
105+
pathval@^1.1.1:
106+
version "1.1.1"
107+
resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d"
108+
integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==
109+
110+
randombytes@^2.1.0:
111+
version "2.1.0"
112+
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
113+
integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
114+
dependencies:
115+
safe-buffer "^5.1.0"
116+
117+
safe-buffer@^5.1.0:
118+
version "5.2.1"
119+
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
120+
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
121+
49122
source-map-support@^0.5.21:
50123
version "0.5.21"
51124
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
@@ -58,3 +131,8 @@ source-map@^0.6.0:
58131
version "0.6.1"
59132
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
60133
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
134+
135+
type-detect@^4.0.0, type-detect@^4.0.5:
136+
version "4.0.8"
137+
resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
138+
integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==

0 commit comments

Comments
 (0)