~pierrenn/areyoucsw

ref: 1670c2498ee1a33722bb7aa0a1d9f762127c0c9a areyoucsw/html/index.html -rw-r--r-- 6.2 KiB
1670c249 — pierrenn display more info about addresses, fix syntax 1 year, 4 months ago
                                                                                
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
112
113
114
115
116
117
118
119
120
121
<!doctype html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, height=device-height, user-scalable=no, initial-scale=1.0"/>
        <title>Are you CSW?</title>
        <meta name="description" content="We are all CSW."/>
        <link rel="canonical" href="https://www.areyoucsw.com"/>
        <style>
            body {margin: 5% auto; background: #f2f2f2; color: #444444; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.8; text-shadow: 0 1px 0 #ffffff; max-width: 73%;}
            code {background: white;}
            a {border-bottom: 1px solid #444444; color: #444444; text-decoration: none;}
            a:hover {border-bottom: 0;}
        </style>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

        <link rel="stylesheet" type="text/css" href="./w2ui-1.5.rc1.min.css" />
        <script type="text/javascript" src="./w2ui-1.5.rc1.min.js"></script>
    </head>
    <body>
        <header>
            <h1>Are <i>you</i> Craig Wright?</h1>
            <aside>Seriously, you <i>might</i> be.</aside>
        </header>
        <h2><strong>How many addresses legally filled by CSW can we prove he doesn't own?</strong></h2>
        <p>On <i>May 21 2020</i>, CSW published a new <a href="https://www.courtlistener.com/recap/gov.uscourts.flsd.521536/gov.uscourts.flsd.521536.512.7.pdf">list</a> of addresses he allegedly owns.<br> A few days later, an anonymous OG Miner <a href="https://paste.debian.net/plain/1148565">posted</a> a proof that (<i>probably</i>) someone else owned some of those addresses. Following this logic, <b>how many other addresses can we prove that CSW doesn't own?</b></p>

        <h2>Claimed addresses: <span id='claimed_data'></span></h2>
        <h2>Address List</h2>
        <div id="grid" style="width: 100%; height: 50vh;"></div>
        <h2>I'm an OG Miner! How can I add my addresses?</h2>
        You can claim addresses by sending an anonymous mail to the project <a href="https://lists.sr.ht/~pierrenn/areyoucsw-devel">mailing list</a>. Follow the instructions in the project's <a href="https://sr.ht/~pierrenn/areyoucsw/">readme</a>. Thank you, miner!
        <hr>
        <h3>BTC donations are appreciated!</h3>
        <p>Thanks for buying me a coffee! ₿ bc1qsnwjz0uvfuykw6uc0qvt95rllghwhdsd685jpu</p>
    </body>
<script>
$(function () {
    const numFormat = new Intl.NumberFormat('en-US')
    const perFormat = new Intl.NumberFormat('en-US', { maximumFractionDigits: 3 })

    let tulip;
    let proofs;
    $.when(
        $.getJSON('./data/tulip.out', function(data) {
            tulip = Object.keys(data).map((key, idx) => {
                return { recid: idx+1,
                         height: data[key].cb_h,
                         cbtime: new Date(data[key].cb_ts*1000),
                         address: `<a href="https://btc.com/${key}">${key}</a>`,
                         amount: data[key].amnt,
                         last: data[key].last_ts == 0 ? new Date(data[key].cb_ts*1000) : new Date(data[key].last_ts*1000),
                         lasttx: data[key].last_ts == 0 ? `<a href="https://btc.com/${data[key].cb_tx}">${data[key].cb_tx}</a>` :
                                                          `<a href="https://btc.com/${data[key].last_tx}">${data[key].last_tx}</a>`,
                         numtx: data[key].num_tx,
                         claimed: data[key].proof
                }
            })
        }),
        $.getJSON('./data/proofs.out', function(data) {
            proofs = data
        })
    ).then(function() {
        let total_address = tulip.length
        let claimed_address = 0
        let records = tulip.map(e => {
            let sig = undefined;
            if (e.claimed === null) {
                e.claimed = 'No'
                return e
            }

            if (e.claimed !== null) {
                sig = proofs[e.claimed.file].signatures[e.claimed.idx]
                if (sig.is_checked && sig.is_tulip) {
                    claimed_address += 1
                    e.claimed = `Yes <a href="${proofs[e.claimed.file].filename}">(${sig.proof})</a>`
                } else {
                    e.claimed = 'No'
                }
            }

            return e
        })

        const per = 100*claimed_address/total_address
        $('#claimed_data').text(`${numFormat.format(claimed_address)} / ${numFormat.format(total_address)} (${perFormat.format(per)}%)`)
        $('#grid').w2grid({
            name: 'grid',
            header: 'CSW\'s Tulip Addresses',
            show: {
                toolbar: true,
                footer: true
            },
            columns: [
                { field: 'height',  caption: 'Coinbase Height', size: '5%', sortable: true},
                { field: 'cbtime',  caption: 'Coinbase Time', size: '10%', sortable: true},
                { field: 'address', caption: 'Address',         size: '15%', sortable: true },
                { field: 'amount',  caption: 'Unspent sats (w/o CB)', size: '10%', sortable: true },
                { field: 'lasttx',  caption: 'Last TX ID',     size: '10%', sortable: true },
                { field: 'last',    caption: 'Last TX time',    size: '10%', sortable: true },
                { field: 'numtx',   caption: '# of TXs',        size: '10%', sortable: true },
                { field: 'claimed', caption: 'Has been claimed?', size: '20%', sortable: true }
            ],
            searches: [
                { field: 'height',  caption: 'Coinbase Height', type: 'text'},
                { field: 'cbtime',  caption: 'Coinbase Time', type: 'date'},
                { field: 'address', caption: 'Address', type: 'text' },
                { field: 'amount',  caption: 'Unspent sats', type: 'int' },
                { field: 'lasttx',  caption: 'Last TX ID',  type: 'text' },
                { field: 'last',    caption: 'Last TX time', type: 'date' },
                { field: 'numtx',   caption: '# of TXs', type: 'int' },
                { field: 'claimed', caption: 'Has been claimed?', type: 'text' }
            ],
            sortData: [{ field: 'height', direction: 'ASC' }],
            records
        });
    })
});
</script>
</html>