-
Notifications
You must be signed in to change notification settings - Fork 0
/
merkletree.js
113 lines (96 loc) · 4.83 KB
/
merkletree.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
const {MerkleTree} = require('merkletreejs');
const keccak256 = require('keccak256');
let whitelistAddresses =
[
'0x84CCf38452Dc6bB59DBccD5E1BA465f7BF2e66a7',
'0x6404B5D7f484ce4ed7A7C3817238F26ff226a8f3',
'0x31EbbBFEA24B366041e952A0FaeF2469BDeE84C0',
'0xD375074e77b26d98F20870d2b06DF89f25FFa9A8',
'0x926D0cAA9cC5eBfcac3d108B57752a7253cf9166',
'0x4e187b1a177CFA462FaF898Cd91801FaDB5fBB2b',
'0x9fa793B68dDdB452202D770F67c85fA90c6F21B6',
'0x05F3D59De89C8De8c42Fa5303a812F555E63931c',
'0xcaceaEa59BbB920980f2Dc9664F7E7045fcBfbE5',
'0xB62dd9F0c1c791E4B0a8F299CCC34454dA0bFBF3',
'0xC499451e6a2CCA30B927526d02ccaCD99D2c4808',
'0x54042868f50cadbBaF97D01546D75DABB7f457d0',
'0xe9917482D91B2cb22B001f42BC1adDf69e2742a3',
'0x31dEb02CFCFA765751c1bbB3a0dD1527B77b599B',
'0x3Ac15E72fe719dAbC88cb9C2C826fec48226944e',
'0xBC68a776841C81044fE9F0a03fC536024028890c',
'0xa9b4F072Dc816eBE1188E6410471D07EAE11B3b7',
'0x3544A07123c33d54EB39dbea19C889ab78dD94d2',
'0x0321FeD3af11c0DaC59578c48F60982001a7f3d6',
'0x64cfB379660eD422845AC48a8e873BEb97d5E019',
'0x94aAa208c479504e59756AfA60608A209479B0Bf',
'0x44752273f5Df74B9c497a344c5e93D2f6c178E7f',
'0x83E8a1EFB3C20dD9e0a6CacFFf378c896411D76f',
'0x607361281aEAEF670C01940e46d4801089DDC5b6',
'0x0304f9d8817c07843ba7e94f7a339bec3c819a9a',
'0x0a5981b906a6848579e86213c1094254a34410ff',
'0xbE4a78a1b2bE78c54a282911361b8F68F2eBc84B',
'0xdb3daf7a0ed2c6b3fc9ff5b5006e96994d943587',
'0xCcF27c6cE42CfF80108985431D2AcE70E7e41417',
'0xc321cb27421e20ec9523ac6Ff06D46E6032c3152',
'0x299EF348A943076C4b0f2E20bc92ac789C83C2dE',
'0x2603C6E9a711354f11E03BA1B4Db577053A3F76a',
'0x3035cD7BAf7dE881517e77f9fCC517d2E8eda105',
'0xE31d2F777DF40c409A7b42040F4D477e37708d52',
'0x5A431ca9365a1b3CfA5699a8DeAc12A943bd0FfB',
'0x1321f9Ca5293190AF03FC677458219ec84c4Dc25',
'0x3710De2708218c280F020415Dd3EE5157f448f52',
'0xF7F103fCDc7025cDFa3a80AeE589C03CB61dAA07',
'0x769d7d1A56F0bcC95Ac1604781CFB74C088776A6',
'0x4b122F7b34789e769fFf0E188D5d89335948bEC0',
'0xda52577402105a678D06D322e0f1a876469DF974',
'0x92e7d7F59c4F65500c134EA5Fe8c804A178589E1',
'0xD83e6B988bB27FD41a274cEfd85F5dCcC1020143',
'0x9c5d3E4325fA62b256589999dE889F18Dcd99Ca4',
'0xe66195Baaf931380FE3D0663CA6045A51d2bDb1e',
'0x5ceEEFC53096C9a944DB0d2509725703270Ad7c2',
'0xaA4838a8e8EFe37711bc0746dF550f99c95A4266',
'0x0a0A0D7e0819A49aa046853890ac31e867E515e7',
'0x78f4f6E1c88F0F43E1073dA5F5fdf0B973cD0eb5',
'0x836f124fd6a217c7b4f80dfaed5a0b9306a3817f',
'0x1fC48a4F818b5e742c406cb199469595202eDcb1',
'0x10610F4Fbf9A2e99DAA86976397569C526Cf8e1D',
'0xD0DA8E5764aa648CB4F8BDe4e67F5fAd9EF85f51',
'0x688C159c6e71B5aF67bb0E22F5159F6B345dD9D1',
'0x26553f694FFabf57D4d557e9623291a7E3f39c90',
'0x76F2f02C24d0315440c6cCDc3bDb5d08D2f713fa',
'0x39752b695E4a6B2074772EbE9A6806E11742E99C',
'0x2eFd3dB431593aeB7bC630168894A4aa439cabeC',
'0xbf846d169b4219c69584cc11e3ae9f04069f8b25',
'0xD3ddD89CCf1963a2e6137bcBf47651Dd360B79Db',
'0x9f6A0fD79006AA882a419F9F51b6C41e59798939',
'0x9d2B498e3Eb0F6eeD2C54383cCB95CBd23236E90',
'0xca879faf6f3f2a4a54cba66d76a1b296644b55c7',
'0x344cD5E4618f08113a3F2351B58eBE0f4BAdD55d',
'0xa5632da521f1cdf8c90cc99b8ca24419cb83ef9c',
'0x24713e8b1515d7b8a935976f7c996d04fe45c7ce',
'0x503d877c4a7ec84f696aa0b4f134b91dd1ad86e0',
'0xe2275c873a7698605656bada3194ccf47bf0dbc7',
'0x16b54722c3cD1A5FEf23a07A01ad5164b68d6934',
'0x9655d224deebD9B7ae3FB8a8CAd6CCD8604B016a',
'0xED8d5a9Ac4583ba3d584b9DD04E1Add02f9460d3',
'0xee43a2dac05a41720f9f83cc22381737650168af',
'0x03017b48631c0dc9Dc399D4CB9fA918E826b5Ac1',
'0xfb3c9187D607Ed943f8FB7472FE7Fd38eD328232',
'0x1D75BFBE37a6bA138Bb973F8575Eeca1DbF44365',
'0x00d106B64d4f25B73106D6059D365c94e853dd5D',
'0xff91E234f14eE7691dA037eA78f4F1cCC3e6fD58',
'0x3F60b5c40c248eAf14399BAFd931E4B8FDb531A2',
'0xD9C6025007c66799198fa64170D04A95923843cC',
'0xF05a15c929652adFa934DbB407cD81381c3a1684',
'0x262215675d9ad5935374e2B18248e093ef452c26'
];
const leafNodes = whitelistAddresses.map(addr => keccak256(addr.toLowerCase()));
const merkleTree = new MerkleTree(leafNodes, keccak256, {sortPairs: true});
const rootHash = merkleTree.getRoot();
console.log(rootHash)
// ed84fe70049b957e367babb415cae9aada58f73d9df48fed6eacd2cc2198a328
// const rootHash = "ed84fe70049b957e367babb415cae9aada58f73d9df48fed6eacd2cc2198a328";
// // const rootHash = "66cdf072b44c39a5f2be587c81d6f599b331c75ad884a094d6f35cf71d3230f7";
// const claimingAddress = keccak256("0xF05a15c929652adFa934DbB407cD81381c3a1684")
// const hexProof = merkleTree.getHexProof(claimingAddress);
// console.log(merkleTree.verify(hexProof, claimingAddress, rootHash));