Data update
This commit is contained in:
parent
72eb4943cb
commit
4d5544505c
2347 changed files with 62432 additions and 16731 deletions
|
|
@ -0,0 +1,53 @@
|
|||
const digits58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
||||
|
||||
async function hash(bytes) {
|
||||
return new Uint8Array(await crypto.subtle.digest('SHA-256', bytes));
|
||||
}
|
||||
|
||||
function toBytes(n, length) {
|
||||
const bytes = [];
|
||||
|
||||
for (let i = BigInt(length)-1n; i >= 0; i--) {
|
||||
bytes.push((n >> i * 8n) & 0xffn);
|
||||
}
|
||||
|
||||
return bytes;
|
||||
}
|
||||
|
||||
function decode_base58(bc, length) {
|
||||
let n = 0n;
|
||||
for (const char of bc) {
|
||||
n = n * 58n + BigInt(digits58.indexOf(char));
|
||||
}
|
||||
|
||||
return toBytes(n, length);
|
||||
}
|
||||
|
||||
function toUint8Array(bytes) {
|
||||
let nums = []
|
||||
|
||||
for (const byte of bytes) {
|
||||
nums.push(Number(byte));
|
||||
}
|
||||
|
||||
return new Uint8Array(nums);
|
||||
}
|
||||
|
||||
async function checkBc(bc) {
|
||||
const bcbytes = decode_base58(bc, 25);
|
||||
|
||||
const slice = bcbytes.slice(0, bcbytes.length-4);
|
||||
const first = toUint8Array(slice);
|
||||
|
||||
const firstHash = await hash(first);
|
||||
const secondHash = await hash(firstHash);
|
||||
|
||||
const checksum = toUint8Array(bcbytes.slice(-4));
|
||||
|
||||
return JSON.stringify(checksum) == JSON.stringify(toUint8Array(secondHash.slice(0, 4)));
|
||||
}
|
||||
|
||||
(async () => {
|
||||
console.log(await checkBc('1AGNa15ZQXAZUgFiqJ3i7Z2DPU2J6hW62i'));
|
||||
console.log(await checkBc("17NdbrSGoUotzeGCcMMCqnFkEvLymoou9j"))
|
||||
})();
|
||||
Loading…
Add table
Add a link
Reference in a new issue