Skip to content

Commit a1d9a68

Browse files
committed
stop 2 hash fn from being pub with wasm
1 parent cee3b65 commit a1d9a68

5 files changed

+28
-80
lines changed

pkg/bitcoin_hashing_wasm.d.ts

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,5 @@
11
/* tslint:disable */
22
/* eslint-disable */
3-
/**
4-
* @param {Uint8Array} input
5-
* @returns {Uint8Array}
6-
*/
7-
export function sha256(input: Uint8Array): Uint8Array;
8-
/**
9-
* @param {Uint8Array} input
10-
* @returns {Uint8Array}
11-
*/
12-
export function ripemd160(input: Uint8Array): Uint8Array;
133
/**
144
* @param {string} public_key_hex
155
* @returns {string}
@@ -20,13 +10,11 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
2010

2111
export interface InitOutput {
2212
readonly memory: WebAssembly.Memory;
23-
readonly sha256: (a: number, b: number, c: number) => void;
24-
readonly ripemd160: (a: number, b: number, c: number) => void;
2513
readonly generate_bitcoin_address: (a: number, b: number, c: number) => void;
2614
readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
2715
readonly __wbindgen_malloc: (a: number, b: number) => number;
28-
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
2916
readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
17+
readonly __wbindgen_free: (a: number, b: number, c: number) => void;
3018
}
3119

3220
export type SyncInitInput = BufferSource | WebAssembly.Module;

pkg/bitcoin_hashing_wasm.js

Lines changed: 11 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
let wasm;
22

3+
let WASM_VECTOR_LEN = 0;
4+
35
let cachedUint8ArrayMemory0 = null;
46

57
function getUint8ArrayMemory0() {
@@ -9,68 +11,6 @@ function getUint8ArrayMemory0() {
911
return cachedUint8ArrayMemory0;
1012
}
1113

12-
let WASM_VECTOR_LEN = 0;
13-
14-
function passArray8ToWasm0(arg, malloc) {
15-
const ptr = malloc(arg.length * 1, 1) >>> 0;
16-
getUint8ArrayMemory0().set(arg, ptr / 1);
17-
WASM_VECTOR_LEN = arg.length;
18-
return ptr;
19-
}
20-
21-
let cachedDataViewMemory0 = null;
22-
23-
function getDataViewMemory0() {
24-
if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
25-
cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
26-
}
27-
return cachedDataViewMemory0;
28-
}
29-
30-
function getArrayU8FromWasm0(ptr, len) {
31-
ptr = ptr >>> 0;
32-
return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
33-
}
34-
/**
35-
* @param {Uint8Array} input
36-
* @returns {Uint8Array}
37-
*/
38-
export function sha256(input) {
39-
try {
40-
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
41-
const ptr0 = passArray8ToWasm0(input, wasm.__wbindgen_malloc);
42-
const len0 = WASM_VECTOR_LEN;
43-
wasm.sha256(retptr, ptr0, len0);
44-
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
45-
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
46-
var v2 = getArrayU8FromWasm0(r0, r1).slice();
47-
wasm.__wbindgen_free(r0, r1 * 1, 1);
48-
return v2;
49-
} finally {
50-
wasm.__wbindgen_add_to_stack_pointer(16);
51-
}
52-
}
53-
54-
/**
55-
* @param {Uint8Array} input
56-
* @returns {Uint8Array}
57-
*/
58-
export function ripemd160(input) {
59-
try {
60-
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
61-
const ptr0 = passArray8ToWasm0(input, wasm.__wbindgen_malloc);
62-
const len0 = WASM_VECTOR_LEN;
63-
wasm.ripemd160(retptr, ptr0, len0);
64-
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
65-
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
66-
var v2 = getArrayU8FromWasm0(r0, r1).slice();
67-
wasm.__wbindgen_free(r0, r1 * 1, 1);
68-
return v2;
69-
} finally {
70-
wasm.__wbindgen_add_to_stack_pointer(16);
71-
}
72-
}
73-
7414
const cachedTextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder('utf-8') : { encode: () => { throw Error('TextEncoder not available') } } );
7515

7616
const encodeString = (typeof cachedTextEncoder.encodeInto === 'function'
@@ -125,6 +65,15 @@ function passStringToWasm0(arg, malloc, realloc) {
12565
return ptr;
12666
}
12767

68+
let cachedDataViewMemory0 = null;
69+
70+
function getDataViewMemory0() {
71+
if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
72+
cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
73+
}
74+
return cachedDataViewMemory0;
75+
}
76+
12877
const cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } );
12978

13079
if (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); };

pkg/bitcoin_hashing_wasm_bg.wasm

-299 Bytes
Binary file not shown.

pkg/bitcoin_hashing_wasm_bg.wasm.d.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
/* tslint:disable */
22
/* eslint-disable */
33
export const memory: WebAssembly.Memory;
4-
export function sha256(a: number, b: number, c: number): void;
5-
export function ripemd160(a: number, b: number, c: number): void;
64
export function generate_bitcoin_address(a: number, b: number, c: number): void;
75
export function __wbindgen_add_to_stack_pointer(a: number): number;
86
export function __wbindgen_malloc(a: number, b: number): number;
9-
export function __wbindgen_free(a: number, b: number, c: number): void;
107
export function __wbindgen_realloc(a: number, b: number, c: number, d: number): number;
8+
export function __wbindgen_free(a: number, b: number, c: number): void;

web/index.html

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,26 @@
99
</head>
1010
<body>
1111
<div class="container mt-5">
12-
<h1>Bitcoin Address Generator</h1>
12+
<h1>Legacy Bitcoin Address Generator</h1>
1313
<div class="mb-3">
1414
<label for="input" class="form-label">Public Key (Hex):</label>
1515
<input type="text" class="form-control" id="input" placeholder="Enter public key in hex">
1616
</div>
1717
<button class="btn btn-primary" onclick="generateBitcoinAddress()">Generate Bitcoin Address</button>
18-
<pre id="output" class="mt-3"></pre>
18+
<pre id="output" class="mt-2"></pre>
19+
<div>
20+
This is a demo, it uses Legacy Bitcoin addresses, which start with a 1 for P2PKH (Pay-to-Public-Key-Hash) addresses. Address Formats in Bitcoin
21+
</div>
22+
23+
<div>
24+
25+
Paste in this Public key if you just want to test the generator
26+
</div>
27+
<div>
28+
<b>
29+
0250863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b2352
30+
</b>
31+
</div>
1932
</div>
2033

2134
<script type="module" src="./index.js"></script>

0 commit comments

Comments
 (0)