multichain-address-validator 0.8.0 → 0.8.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.
- package/README.md +0 -1
- package/dist/cjs/chain-validators.js +2 -0
- package/dist/esm/chain-validators.js +2 -0
- package/package.json +3 -2
- package/.editorconfig +0 -10
- package/.travis.yml +0 -11
- package/.vscode/launch.json +0 -23
- package/index.html +0 -12
- package/package-lock.json +0 -1705
- package/src/chain-validators.ts +0 -183
- package/src/crypto/base32.ts +0 -66
- package/src/crypto/base58.ts +0 -46
- package/src/crypto/bech32.js +0 -132
- package/src/crypto/biginteger.js +0 -1426
- package/src/crypto/blake256.js +0 -188
- package/src/crypto/blake2b.js +0 -276
- package/src/crypto/cnBase58.js +0 -226
- package/src/crypto/segwit_addr.js +0 -118
- package/src/crypto/utils.ts +0 -133
- package/src/helpers.ts +0 -13
- package/src/index.ts +0 -28
- package/src/types.ts +0 -19
- package/src/validators/algorand_validator.ts +0 -28
- package/src/validators/base58_validator.ts +0 -32
- package/src/validators/bch_validator.ts +0 -66
- package/src/validators/bip173_validator.ts +0 -19
- package/src/validators/bitcoin_validator.ts +0 -93
- package/src/validators/bittensor_validator.ts +0 -8
- package/src/validators/cardano_validator.ts +0 -50
- package/src/validators/eos_validator.ts +0 -13
- package/src/validators/ethereum_validator.ts +0 -37
- package/src/validators/hedera_validator.ts +0 -10
- package/src/validators/index.ts +0 -20
- package/src/validators/monero_validator.ts +0 -72
- package/src/validators/move_validator.ts +0 -11
- package/src/validators/nano_validator.ts +0 -32
- package/src/validators/nem_validator.ts +0 -18
- package/src/validators/polkadot_validator.ts +0 -7
- package/src/validators/ripple_validator.ts +0 -44
- package/src/validators/sia_validator.ts +0 -33
- package/src/validators/solana_validator.ts +0 -21
- package/src/validators/ss58_validator.ts +0 -80
- package/src/validators/tezos_validator.ts +0 -36
- package/src/validators/tron_validator.ts +0 -59
- package/src/validators/xlm_validator.ts +0 -54
- package/src/validators/zcash_validator.ts +0 -57
- package/test/addresses/addresses.ts +0 -63
- package/test/addresses/algorand.json +0 -6
- package/test/addresses/aptos.json +0 -6
- package/test/addresses/bch-testnet.json +0 -4
- package/test/addresses/bch.json +0 -7
- package/test/addresses/bittensor.json +0 -27
- package/test/addresses/btc-testnet.json +0 -14
- package/test/addresses/btc.json +0 -18
- package/test/addresses/cardano.json +0 -8
- package/test/addresses/doge-testnet.json +0 -3
- package/test/addresses/doge.json +0 -7
- package/test/addresses/eos.json +0 -6
- package/test/addresses/evm.json +0 -20
- package/test/addresses/hbar.json +0 -11
- package/test/addresses/ltc-testnet.json +0 -10
- package/test/addresses/ltc.json +0 -9
- package/test/addresses/monero-testnet.json +0 -5
- package/test/addresses/monero.json +0 -7
- package/test/addresses/nano.json +0 -12
- package/test/addresses/nem.json +0 -4
- package/test/addresses/polkadot.json +0 -8
- package/test/addresses/ripple.json +0 -20
- package/test/addresses/sia.json +0 -5
- package/test/addresses/solana.json +0 -12
- package/test/addresses/sui.json +0 -6
- package/test/addresses/tezos.json +0 -9
- package/test/addresses/tron.json +0 -6
- package/test/addresses/xlm.json +0 -21
- package/test/addresses/zcash.json +0 -8
- package/test/multichain-address-validator.test.ts +0 -242
- package/tsconfig.cjs.json +0 -7
- package/tsconfig.esm.json +0 -7
- package/tsconfig.json +0 -24
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
"5CS9x5NsPHpb2THeS92zBYCSSk4MFoQjjx76DB8bEzeJTTSt",
|
|
3
|
-
"5CZmB94iEG4Ld7JkejAWToAw7NKEfV3YZHX7FYaqPGh7isXe",
|
|
4
|
-
"5DA7UsaYbk1UnhhtTxqpwdqjuxhQ2rW7D6GTN1S1S5tC2NRV",
|
|
5
|
-
"5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw",
|
|
6
|
-
"5DAAnrj7VHTznn2AWBemMuyBwZWs6FNFjdyVXUeYum3PTXFy",
|
|
7
|
-
"5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc",
|
|
8
|
-
"5CiPPseXPECbkjWCa6MnjNokrgYjMqmKndv2rSnekmSK2DjL",
|
|
9
|
-
"5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY",
|
|
10
|
-
"5Gs5ung9YhbXjrEx469w5V9C6V8nEVM6XS9CzMMq1tq16cMt",
|
|
11
|
-
{
|
|
12
|
-
"address": "1iQPKJmghHbrRhUiMt2cNEuxYbR6S9vYtJKqYvE4PNR9WDB",
|
|
13
|
-
"invalid": true
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
"address": "invalid_ss58_address",
|
|
17
|
-
"invalid": true
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
"address": "0x1234567890abcdef",
|
|
21
|
-
"invalid": true
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"address": "123",
|
|
25
|
-
"invalid": true
|
|
26
|
-
}
|
|
27
|
-
]
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
"mzBc4XEFSdzCDcTxAgf6EZXgsZWpztRhef",
|
|
3
|
-
"GSa5espVLNseXEfKt46zEdS6jrPkmFghBU",
|
|
4
|
-
"mptPo5AvLzJXi4T82vR6g82fT5uJ6HsQCu",
|
|
5
|
-
"mzBc4XEFSdzCDcTxAgf6EZXgsZWpztRhef",
|
|
6
|
-
"2MxKEf2su6FGAUfCEAHreGFQvEYrfYNHvL7",
|
|
7
|
-
"tb1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3q0sl5k7",
|
|
8
|
-
"GSa5espVLNseXEfKt46zEdS6jrPkmFghBU",
|
|
9
|
-
"tb1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3q0sl5k7",
|
|
10
|
-
"tb1qqqqqp399et2xygdj5xreqhjjvcmzhxw4aywxecjdzew6hylgvsesrxh6hy",
|
|
11
|
-
"2My6YWQy9Umh52TFwhRA5CXHZQVLFoB39vJ",
|
|
12
|
-
"mxHzYDeCZD8qzvfVzTqPS65p23inGkRvXT",
|
|
13
|
-
"2N3ATmqPqnHR243HiwtqpCFwSsNdTiCvmmv"
|
|
14
|
-
]
|
package/test/addresses/btc.json
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
"12KYrjTdVGjFMtaxERSk3gphreJ5US8aUP",
|
|
3
|
-
"12QeMLzSrB8XH8FvEzPMVoRxVAzTr5XM2y",
|
|
4
|
-
"15uwigGExiNQxTNr1QSZYPXJMp9Px2YnVU",
|
|
5
|
-
"3FyVFsEyyBPzHjD3qUEgX7Jsn4tcHNZFkn",
|
|
6
|
-
"38mKdURe1zcQyrFqRLzR8PRao3iLGEPVsU",
|
|
7
|
-
"BC1QW508D6QEJXTDG4Y5R3ZARVARY0C5XW7KV8F3T4",
|
|
8
|
-
"1oNLrsHnBcR6dpaBpwz3LSwutbUNkNSjs",
|
|
9
|
-
"1HVDCg2KrPBH1Mg5SK9fGjAR9KVqyMMdBC",
|
|
10
|
-
"1SQHtwR5oJRKLfiWQ2APsAd9miUc4k2ez",
|
|
11
|
-
"116CGDLddrZhMrTwhCVJXtXQpxygTT1kHd",
|
|
12
|
-
"3NJZLcZEEYBpxYEUGewU4knsQRn1WM5Fkt",
|
|
13
|
-
"bc1q2t63ewm3mvh0ztmnmezxm7s0tefknenxlrlwrk",
|
|
14
|
-
{
|
|
15
|
-
"address": "bc1pmr3w69uk09zqez3vy4l0jjws7uwa9fmljag2mwumfx9rr6045g8scr7nn3",
|
|
16
|
-
"invalid": true
|
|
17
|
-
}
|
|
18
|
-
]
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
"Ae2tdPwUPEYzs5BRbGcoS3DXvK8mwgggmESz4HqUwMyaS9eNksZGz1LMS9v",
|
|
3
|
-
"Ae2tdPwUPEYxYNJw1He1esdZYvjmr4NtPzUsGTiqL9zd8ohjZYQcwu6kom7",
|
|
4
|
-
"DdzFFzCqrhsfdzUZxvuBkhV8Lpm9p43p9ubh79GCTkxJikAjKh51qhtCFMqUniC5tv5ZExyvSmAte2Du2tGimavSo6qSgXbjiy8qZRTg",
|
|
5
|
-
"Ae2tdPwUPEZKmwoy3AU3cXb5Chnasj6mvVNxV1H11997q3VW5ihbSfQwGpm",
|
|
6
|
-
"4swhHtxKapQbj3TZEipgtp7NQzcRWDYqCxXYoPQWjGyHmhxS1w1TjUEszCQT1sQucGwmPQMYdv1FYs3d51KgoubviPBf",
|
|
7
|
-
"addr1qxy3w62dupy9pzmpdfzxz4k240w5vawyagl5m9djqquyymrtm3grn7gpnjh7rwh2dy62hk8639lt6kzn32yxq960usnq9pexvt"
|
|
8
|
-
]
|
package/test/addresses/doge.json
DELETED
package/test/addresses/eos.json
DELETED
package/test/addresses/evm.json
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
"0xE37c0D48d68da5c5b14E5c1a9f1CFE802776D9FF",
|
|
3
|
-
"0xa00354276d2fC74ee91e37D085d35748613f4748",
|
|
4
|
-
"0xAff4d6793F584a473348EbA058deb8caad77a288",
|
|
5
|
-
"0xc6d9d2cd449a754c494264e1809c50e34d64562b",
|
|
6
|
-
"0x52908400098527886E0F7030069857D2E4169EE7",
|
|
7
|
-
"0x8617E340B3D01FA5F11F306F4090FD50E238070D",
|
|
8
|
-
"0x27b1fdb04752bbc536007a920d24acb045561c26",
|
|
9
|
-
"0x5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed",
|
|
10
|
-
"0xfB6916095ca1df60bB79Ce92cE3Ea74c37c5d359",
|
|
11
|
-
"0xdbF03B407c01E7cD3CBea99509d93f8DDDC8C6FB",
|
|
12
|
-
"0xD1220A0cf47c7B9Be7A2E6BA89F429762e7b9aDb",
|
|
13
|
-
"0xE37c0D48d68da5c5b14E5c1a9f1CFE802776D9FF",
|
|
14
|
-
"0xa00354276d2fC74ee91e37D085d35748613f4748",
|
|
15
|
-
"0xAff4d6793F584a473348EbA058deb8caad77a288",
|
|
16
|
-
"0xc6d9d2cd449a754c494264e1809c50e34d64562b",
|
|
17
|
-
"0x52908400098527886E0F7030069857D2E4169EE7",
|
|
18
|
-
"0x8617E340B3D01FA5F11F306F4090FD50E238070D",
|
|
19
|
-
"0xde709f2102306220921060314715629080e2fb77"
|
|
20
|
-
]
|
package/test/addresses/hbar.json
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
"mzBc4XEFSdzCDcTxAgf6EZXgsZWpztRhef",
|
|
3
|
-
"2MxKEf2su6FGAUfCEAHreGFQvEYrfYNHvL7",
|
|
4
|
-
"2N5jUhwzndtTUXspDGJkAvP7WCCRLQkgMfX",
|
|
5
|
-
"QW2SvwjaJU8LD6GSmtm1PHnBG2xPuxwZFy",
|
|
6
|
-
"QjpzxpbLp5pCGsCczMbfh1uhC3P89QZavY",
|
|
7
|
-
"tltc1qu78xur5xnq6fjy83amy0qcjfau8m367defyhms",
|
|
8
|
-
"mipcBbFg9gMiCh81Kj8tqqdgoZub1ZJRfn",
|
|
9
|
-
"nYNZ81BicMYUDt99dFsMdPo5JjfrMB6T3k"
|
|
10
|
-
]
|
package/test/addresses/ltc.json
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
"LVg2kJoFNg45Nbpy53h7Fe1wKyeXVRhMH9",
|
|
3
|
-
"LTpYZG19YmfvY2bBDYtCKpunVRw7nVgRHW",
|
|
4
|
-
"Lb6wDP2kHGyWC7vrZuZAgV7V4ECyDdH7a6",
|
|
5
|
-
"ltc1qg42tkwuuxefutzxezdkdel39gfstuap288mfea",
|
|
6
|
-
"ltc1qg42tkwuuxefutzxezdkdel39gfstuap288mfea",
|
|
7
|
-
"ltc1qhxka8d59lylj76rpsflhagp76nvckggd8x0tt7jtnphpkmfv3snsk6suq0",
|
|
8
|
-
"LLUvRjeoNCa1gRuoVzFAzr3pWdu21JJESa"
|
|
9
|
-
]
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
"A2be3UvzMtkJtxRYgcCbQt2y7Rp2eLVGqNTWfZeankrWimSMM4y7uMP6B9oAZaHsXTj8KFSerkSkkVRuEuEca9QM8VhxCNU",
|
|
3
|
-
"9uXRFi4PZMqhsnthBF6bGdfVnBSZtfKkR7Td8qPM7jUKZeTfR1tLhCoTLqYNE12xuiQg3aWGiLw83bWsqwTRLaM4Jk47xYM",
|
|
4
|
-
"9tFTaQM39JXhULZsHauPHhjFrjcGSGXoijEPYoRgAky9Veck2mFp3EifQ2tKHmEHuuUoFfgYRNR2bVaborz5oi8JA8xkqjY"
|
|
5
|
-
]
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
"47zQ5LAivg6hNCgijXSEFVLX7mke1bgM6YGLFaANDoJbgXDymcAAZvvMNt2PmMpqEe5qRy2zyfMYXdwpmdyitiFh84xnPG2",
|
|
3
|
-
"48bWuoDG75CXMDHbmPEvUF2hm1vLDic7ZJ7hqRkL65QR9p13AQAX4eEACXNk4YP115Q4KRVZnAvmMBHrcGfv9FvKPZnH6vH",
|
|
4
|
-
"88WB4JKdQVhWfkc8cBT9EEJ6vejSAqKJHbV1dXBAXdpgQovtNDNRxfKCS7wB8rHQ5D5zH2Pd1YkyMNNQDie6ZfeZ311fPgn",
|
|
5
|
-
"4Gd4DLiXzBmbVX2FZZ3Cvu6fUaWACup1qDowprUCje1kSP4FmbftiJMSfV8kWZXNqmVwj4m52xqtgFNUudVmsmGkGvkLcCibWfVUfUFVB7",
|
|
6
|
-
"4J5sF94AzXgFgx8LuWc9dcWkJkGkD3cL3L2AuhX6QA9jFvSxxj6QhHqHXqM2b2Go7G8RyDzEbHxYd9G26XUUbuJChipEyBz9fENMU2Ua9b"
|
|
7
|
-
]
|
package/test/addresses/nano.json
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
"xrb_3t6k35gi95xu6tergt6p69ck76ogmitsa8mnijtpxm9fkcm736xtoncuohr3",
|
|
3
|
-
"xrb_13ezf4od79h1tgj9aiu4djzcmmguendtjfuhwfukhuucboua8cpoihmh8byo",
|
|
4
|
-
"xrb_35jjmmmh81kydepzeuf9oec8hzkay7msr6yxagzxpcht7thwa5bus5tomgz9",
|
|
5
|
-
"xrb_1111111111111111111111111111111111111111111111111111hifc8npp",
|
|
6
|
-
"xrb_1ipx847tk8o46pwxt5qjdbncjqcbwcc1rrmqnkztrfjy5k7z4imsrata9est",
|
|
7
|
-
"xrb_3wm37qz19zhei7nzscjcopbrbnnachs4p1gnwo5oroi3qonw6inwgoeuufdp",
|
|
8
|
-
"xrb_3arg3asgtigae3xckabaaewkx3bzsh7nwz7jkmjos79ihyaxwphhm6qgjps4",
|
|
9
|
-
"xrb_1f5e4w33ndqbkx4bw5jtp13kp5xghebfxcmw9hdt1f7goid1s4373w6tjmgu",
|
|
10
|
-
"xrb_1q79ahdr36uqn38p5tp5sqwkn73rnpj1k8obtuetdbjcx37d5gahhd1u9cuh",
|
|
11
|
-
"nano_1q79ahdr36uqn38p5tp5sqwkn73rnpj1k8obtuetdbjcx37d5gahhd1u9cuh"
|
|
12
|
-
]
|
package/test/addresses/nem.json
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
"1iQPKJmghHbrRhUiMt2cNEuxYbR6S9vYtJKqYvE4PNR9WDB",
|
|
3
|
-
"1FRMM8PEiWXYax7rpS6X4XZX1aAAxSWx1CrKTyrVYhV24fg",
|
|
4
|
-
"5CK8D1sKNwF473wbuBP6NuhQfPaWUetNsWUNAAzVwTfxqjfr",
|
|
5
|
-
"CpjsLDC1JFyrhm3ftC9Gs4QoyrkHKhZKtK7YqGTRFtTafgp",
|
|
6
|
-
"15FKUKXC6kwaXxJ1tXNywmFy4ZY6FoDFCnU3fMbibFdeqwGw",
|
|
7
|
-
"CxDDSH8gS7jecsxaRL9Txf8H5kqesLXAEAEgp76Yz632J9M"
|
|
8
|
-
]
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
"rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn",
|
|
3
|
-
"rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn",
|
|
4
|
-
"r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV",
|
|
5
|
-
"rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
|
|
6
|
-
{
|
|
7
|
-
"address": "rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh",
|
|
8
|
-
"memo": "4294967295"
|
|
9
|
-
},
|
|
10
|
-
"rDTXLQ7ZKZVKz33zJbHjgVShjsBnqMBhmN",
|
|
11
|
-
{
|
|
12
|
-
"address": "rDTXLQ7ZKZVKz33zJbHjgVShjsBnqMBhmN",
|
|
13
|
-
"memo": "50000"
|
|
14
|
-
},
|
|
15
|
-
{
|
|
16
|
-
"address": "rDTXLQ7ZKZVKz33zJbHjgVShjsBnqMBhmN",
|
|
17
|
-
"memo": "non-numeric-memo",
|
|
18
|
-
"invalidMemo": true
|
|
19
|
-
}
|
|
20
|
-
]
|
package/test/addresses/sia.json
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
"833XorXTTx5iya5B3Tr6iqEs9GbRuvVfwyLCP2vpdzhq",
|
|
3
|
-
"6ZRCB7AAqGre6c72PRz3MHLC73VMYvJ8bi9KHf1HFpNk",
|
|
4
|
-
"HgyXhqapicB8zoyyFQ23oUwwFrBACDyDc7bqUuvnEELM",
|
|
5
|
-
"833XorXTTx5iya5B3Tr6iqEs9GbRuvVfwyLCP2vpdzhq",
|
|
6
|
-
"69UwBV4LPg7hHUS5JXiXyfgVnESmDKe8KJppsLj8pRU",
|
|
7
|
-
"G4qGCGF4vWGPzYi2pxc2Djvgv3j8NiWaHQMgTVebCX6W",
|
|
8
|
-
{
|
|
9
|
-
"address": "3Yu3ULPjVc4QqS349VCs22br9zH9T6MWNnSM9RBimkw",
|
|
10
|
-
"invalid": true
|
|
11
|
-
}
|
|
12
|
-
]
|
package/test/addresses/sui.json
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
"0xaabf25b0c115130a4ad88bfa08627c5a103b7851e90869c23fadaf0512dd5133",
|
|
3
|
-
"0xdce6ab89a1d26c99491a70fd4a2536d065925114deee916a1ae7d35007f4dedf",
|
|
4
|
-
"0xd05448f15a03f25b2816c4538b72bd54752ba7522d4831a4c9ea5a613becb47a",
|
|
5
|
-
"0x39f521d22f611a4dec2f790fef2e4f8d1f96550509e85beccf8acec52c1a7219"
|
|
6
|
-
]
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
"tz1Lhf4J9Qxoe3DZ2nfe8FGDnvVj7oKjnMY6",
|
|
3
|
-
"tz1PyxsQ7xVTa5J7gtBeT7pST5Zi5nk5GSjg",
|
|
4
|
-
"tz1LcuQHNVQEWP2fZjk1QYZGNrfLDwrT3SyZ",
|
|
5
|
-
"tz1Lhf4J9Qxoe3DZ2nfe8FGDnvVj7oKjnMY6",
|
|
6
|
-
"tz1RR6wETy9BeXG3Fjk25YmkSMGHxTtKkhpX",
|
|
7
|
-
"tz1h3rQ8wBxFd8L9B3d7Jhaawu6Z568XU3xY",
|
|
8
|
-
"KT1EM2LvxxFGB3Svh9p9HCP2jEEYyHjABMbK"
|
|
9
|
-
]
|
package/test/addresses/tron.json
DELETED
package/test/addresses/xlm.json
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
[
|
|
2
|
-
"GBBM6BKZPEHWYO3E3YKREDPQXMS4VK35YLNU7NFBRI26RAN7GI5POFBB",
|
|
3
|
-
"GB7KKHHVYLDIZEKYJPAJUOTBE5E3NJAXPSDZK7O6O44WR3EBRO5HRPVT",
|
|
4
|
-
"GD6WVYRVID442Y4JVWFWKWCZKB45UGHJAABBJRS22TUSTWGJYXIUR7N2",
|
|
5
|
-
"GBCG42WTVWPO4Q6OZCYI3D6ZSTFSJIXIS6INCIUF23L6VN3ADE4337AP",
|
|
6
|
-
"GDFX463YPLCO2EY7NGFMI7SXWWDQAMASGYZXCG2LATOF3PP5NQIUKBPT",
|
|
7
|
-
"GBXEODUMM3SJ3QSX2VYUWFU3NRP7BQRC2ERWS7E2LZXDJXL2N66ZQ5PT",
|
|
8
|
-
"GAJHORKJKDDEPYCD6URDFODV7CVLJ5AAOJKR6PG2VQOLWFQOF3X7XLOG",
|
|
9
|
-
"GACXQEAXYBEZLBMQ2XETOBRO4P66FZAJENDHOQRYPUIXZIIXLKMZEXBJ",
|
|
10
|
-
"GDD3XRXU3G4DXHVRUDH7LJM4CD4PDZTVP4QHOO4Q6DELKXUATR657OZV",
|
|
11
|
-
"GDTYVCTAUQVPKEDZIBWEJGKBQHB4UGGXI2SXXUEW7LXMD4B7MK37CWLJ",
|
|
12
|
-
{
|
|
13
|
-
"address": "GDTYVCTAUQVPKEDZIBWEJGKBQHB4UGGXI2SXXUEW7LXMD4B7MK37CWLJ",
|
|
14
|
-
"memo": "3fdsfsdfasdfdsfgasdgfdsfgas"
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"address": "GDTYVCTAUQVPKEDZIBWEJGKBQHB4UGGXI2SXXUEW7LXMD4B7MK37CWLJ",
|
|
18
|
-
"memo": "really long memo that exceeds 28 bytes",
|
|
19
|
-
"invalidMemo": true
|
|
20
|
-
}
|
|
21
|
-
]
|
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
import {describe, it} from 'mocha'
|
|
2
|
-
import {expect} from 'chai'
|
|
3
|
-
|
|
4
|
-
import {Chain, NetworkType, validate, validateMemo} from '../src'
|
|
5
|
-
// @ts-ignore
|
|
6
|
-
import addresses, {TestAddress} from './addresses/addresses'
|
|
7
|
-
|
|
8
|
-
function check(address: TestAddress, chain: Chain) {
|
|
9
|
-
if (typeof address === 'string') {
|
|
10
|
-
return valid(address, chain)
|
|
11
|
-
}
|
|
12
|
-
(address.invalid || address.invalidMemo)
|
|
13
|
-
? invalid(address, chain)
|
|
14
|
-
: valid(address, chain)
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
function valid(address: TestAddress, chain: Chain) {
|
|
18
|
-
const valid = validate(address, chain);
|
|
19
|
-
expect({address, chain, valid}).to.deep.equal({address, chain, valid: true});
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
function invalid(address: TestAddress, chain: Chain) {
|
|
23
|
-
const valid = validate(address, chain);
|
|
24
|
-
expect({address, chain, valid}).to.deep.equal({address, chain, valid: false});
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function checkMemo(address: TestAddress, chain: Chain) {
|
|
28
|
-
if (typeof address === 'string') {
|
|
29
|
-
return
|
|
30
|
-
}
|
|
31
|
-
address.invalidMemo
|
|
32
|
-
? invalidMemo(address.memo, chain)
|
|
33
|
-
: validMemo(address.memo, chain)
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
function validMemo(memo: string | undefined, chain: Chain) {
|
|
37
|
-
if (!memo) {
|
|
38
|
-
return
|
|
39
|
-
}
|
|
40
|
-
const valid = validateMemo(memo, chain);
|
|
41
|
-
expect({memo, chain, valid}).to.deep.equal({memo, chain, valid: true});
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function invalidMemo(memo: string | undefined, chain: Chain) {
|
|
45
|
-
if (!memo) {
|
|
46
|
-
return
|
|
47
|
-
}
|
|
48
|
-
const valid = validateMemo(memo, chain);
|
|
49
|
-
expect({memo, chain, valid}).to.deep.equal({memo, chain, valid: false});
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
interface TestCase {
|
|
53
|
-
alternatives: string[],
|
|
54
|
-
testAddresses: keyof typeof addresses,
|
|
55
|
-
exclude?: (keyof typeof addresses)[]
|
|
56
|
-
testnet?: {
|
|
57
|
-
testAddresses: keyof typeof addresses
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
const TestCases: Record<string, TestCase> = {
|
|
62
|
-
'algorand': {
|
|
63
|
-
alternatives: [],
|
|
64
|
-
testAddresses: 'algorand',
|
|
65
|
-
},
|
|
66
|
-
'aptos': {
|
|
67
|
-
alternatives: [],
|
|
68
|
-
testAddresses: 'aptos',
|
|
69
|
-
exclude: ['sui']
|
|
70
|
-
},
|
|
71
|
-
'bitcoin': {
|
|
72
|
-
alternatives: ['btc', 'omni'],
|
|
73
|
-
testAddresses: 'btc', // corresponds to addresses.js
|
|
74
|
-
exclude: ['bch', 'ltc'],
|
|
75
|
-
testnet: {
|
|
76
|
-
testAddresses: 'btc-testnet'
|
|
77
|
-
}
|
|
78
|
-
},
|
|
79
|
-
'bitcoin-cash': {
|
|
80
|
-
alternatives: ['bch', 'bitcoincash', 'bitcoin cash'],
|
|
81
|
-
testAddresses: 'bch',
|
|
82
|
-
exclude: ['btc', 'ltc'],
|
|
83
|
-
testnet: {
|
|
84
|
-
testAddresses: 'bch-testnet',
|
|
85
|
-
}
|
|
86
|
-
},
|
|
87
|
-
'bittensor': {
|
|
88
|
-
alternatives: ['tao'],
|
|
89
|
-
testAddresses: 'bittensor',
|
|
90
|
-
exclude: ['polkadot'],
|
|
91
|
-
},
|
|
92
|
-
'cardano': {
|
|
93
|
-
alternatives: ['ada'],
|
|
94
|
-
testAddresses: 'cardano',
|
|
95
|
-
},
|
|
96
|
-
'doge': {
|
|
97
|
-
alternatives: ['dogecoin'],
|
|
98
|
-
exclude: ['btc'],
|
|
99
|
-
testAddresses: 'doge',
|
|
100
|
-
testnet: {
|
|
101
|
-
testAddresses: 'doge-testnet',
|
|
102
|
-
}
|
|
103
|
-
},
|
|
104
|
-
'eos': {
|
|
105
|
-
alternatives: [],
|
|
106
|
-
testAddresses: 'eos',
|
|
107
|
-
},
|
|
108
|
-
'ethereum': {
|
|
109
|
-
alternatives: [
|
|
110
|
-
'arbitrum',
|
|
111
|
-
'avalanche',
|
|
112
|
-
'avalanche-c',
|
|
113
|
-
'base',
|
|
114
|
-
'berachain',
|
|
115
|
-
'binance',
|
|
116
|
-
'bnb',
|
|
117
|
-
'bsc',
|
|
118
|
-
'eth',
|
|
119
|
-
'flare',
|
|
120
|
-
'monad',
|
|
121
|
-
'optimism',
|
|
122
|
-
'sonic',
|
|
123
|
-
'story',
|
|
124
|
-
],
|
|
125
|
-
testAddresses: 'evm',
|
|
126
|
-
},
|
|
127
|
-
'hedera': {
|
|
128
|
-
alternatives: [],
|
|
129
|
-
testAddresses: 'hbar'
|
|
130
|
-
},
|
|
131
|
-
'litecoin': {
|
|
132
|
-
alternatives: ['ltc'],
|
|
133
|
-
exclude: ['btc', 'bch'],
|
|
134
|
-
testAddresses: 'ltc',
|
|
135
|
-
testnet: {
|
|
136
|
-
testAddresses: 'ltc-testnet'
|
|
137
|
-
}
|
|
138
|
-
},
|
|
139
|
-
'monero': {
|
|
140
|
-
alternatives: [],
|
|
141
|
-
testAddresses: 'monero',
|
|
142
|
-
testnet: {
|
|
143
|
-
testAddresses: 'monero-testnet',
|
|
144
|
-
}
|
|
145
|
-
},
|
|
146
|
-
'monad': {
|
|
147
|
-
alternatives: ['mon'],
|
|
148
|
-
testAddresses: 'evm',
|
|
149
|
-
exclude: ['evm'],
|
|
150
|
-
},
|
|
151
|
-
'nano': {
|
|
152
|
-
alternatives: [],
|
|
153
|
-
testAddresses: 'nano',
|
|
154
|
-
},
|
|
155
|
-
'nem': {
|
|
156
|
-
alternatives: [],
|
|
157
|
-
testAddresses: 'nem',
|
|
158
|
-
},
|
|
159
|
-
'polkadot': {
|
|
160
|
-
alternatives: [],
|
|
161
|
-
testAddresses: 'polkadot',
|
|
162
|
-
exclude: ['bittensor'],
|
|
163
|
-
},
|
|
164
|
-
'ripple': {
|
|
165
|
-
alternatives: ['xrp'],
|
|
166
|
-
testAddresses: 'ripple'
|
|
167
|
-
},
|
|
168
|
-
'sia': {
|
|
169
|
-
alternatives: ['SiaCoin'],
|
|
170
|
-
testAddresses: 'sia',
|
|
171
|
-
},
|
|
172
|
-
'solana': {
|
|
173
|
-
alternatives: ['sol', 'spl'],
|
|
174
|
-
testAddresses: 'solana'
|
|
175
|
-
},
|
|
176
|
-
'sui': {
|
|
177
|
-
alternatives: [],
|
|
178
|
-
testAddresses: 'sui',
|
|
179
|
-
exclude: ['aptos']
|
|
180
|
-
},
|
|
181
|
-
'tezos': {
|
|
182
|
-
alternatives: [],
|
|
183
|
-
testAddresses: 'tezos',
|
|
184
|
-
exclude: ['btc', 'bch', 'btc-testnet', 'ltc-testnet', 'bch-testnet', 'doge', 'doge-testnet', 'ltc', 'tron', 'zcash'],
|
|
185
|
-
},
|
|
186
|
-
'tron': {
|
|
187
|
-
alternatives: ['trc20'],
|
|
188
|
-
testAddresses: 'tron',
|
|
189
|
-
},
|
|
190
|
-
'xlm': {
|
|
191
|
-
alternatives: ['stellar', 'stellarlumens'],
|
|
192
|
-
testAddresses: 'xlm',
|
|
193
|
-
},
|
|
194
|
-
'zcash': {
|
|
195
|
-
alternatives: ['zec'],
|
|
196
|
-
testAddresses: 'zcash',
|
|
197
|
-
exclude: ['tezos'],
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
describe('multichain address validator', function () {
|
|
202
|
-
it('should check valid addresses for chains', function () {
|
|
203
|
-
for (const chain in TestCases) {
|
|
204
|
-
for (const c of [chain, ...TestCases[chain].alternatives]) {
|
|
205
|
-
if (!addresses[TestCases[chain].testAddresses]) {
|
|
206
|
-
throw new Error(`No test addresses for chain '${chain}'`)
|
|
207
|
-
}
|
|
208
|
-
for (const address of addresses[TestCases[chain].testAddresses]) {
|
|
209
|
-
check(address, c)
|
|
210
|
-
checkMemo(address, c)
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
if (TestCases[chain].testnet) {
|
|
214
|
-
if (!addresses[TestCases[chain].testnet.testAddresses]) {
|
|
215
|
-
throw new Error(`No test testnet addresses for chain '${chain}'`)
|
|
216
|
-
}
|
|
217
|
-
for (const address of addresses[TestCases[chain].testnet.testAddresses]) {
|
|
218
|
-
checkMemo(address, {chain: c, networkType: NetworkType.TestNet})
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
})
|
|
224
|
-
|
|
225
|
-
it('should check invalid addresses for chains', function () {
|
|
226
|
-
for (const chain in TestCases) {
|
|
227
|
-
for (const c of [chain, ...TestCases[chain].alternatives]) {
|
|
228
|
-
const invalidChains = Object.keys(addresses)
|
|
229
|
-
.filter(key => key !== TestCases[chain].testAddresses)
|
|
230
|
-
.filter(key => !TestCases[chain].exclude?.includes(key as any))
|
|
231
|
-
|
|
232
|
-
for (const invalidChain of invalidChains) {
|
|
233
|
-
for (const address of addresses[invalidChain]) {
|
|
234
|
-
invalid(address, c)
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
})
|
|
240
|
-
})
|
|
241
|
-
|
|
242
|
-
|
package/tsconfig.cjs.json
DELETED
package/tsconfig.esm.json
DELETED
package/tsconfig.json
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2020",
|
|
4
|
-
"lib": [
|
|
5
|
-
"ESNext", "dom",
|
|
6
|
-
],
|
|
7
|
-
"module": "NodeNext",
|
|
8
|
-
"rootDir": "./src",
|
|
9
|
-
"resolveJsonModule": true,
|
|
10
|
-
"moduleResolution": "node",
|
|
11
|
-
"declaration": true,
|
|
12
|
-
"outDir": "./dist",
|
|
13
|
-
"esModuleInterop": true,
|
|
14
|
-
"forceConsistentCasingInFileNames": true,
|
|
15
|
-
"strict": false,
|
|
16
|
-
"skipLibCheck": true,
|
|
17
|
-
"allowJs": true,
|
|
18
|
-
},
|
|
19
|
-
"exclude": [
|
|
20
|
-
"./dist",
|
|
21
|
-
"./test",
|
|
22
|
-
"./config",
|
|
23
|
-
]
|
|
24
|
-
}
|