mirror of
https://github.com/pezkuwichain/pezkuwi-wasm.git
synced 2026-11-10 18:07:05 +00:00
release: v7.5.17 - bizinikiwi signing context
- Fixed SR25519 signing context to use "bizinikiwi" for PezkuwiChain - Implemented proper BIP39 entropy-based key derivation - Added blake2b, twox (xxhash64) hash functions - Published from build/ directories for correct npm package structure
This commit is contained in:
1 parent
650577eece
commit
6039925ed1
25 files changed
+2014
-312
No files matched your search
@@ -14,14 +14,147 @@
|
||||
"url": "https://github.com/pezkuwichain/pezkuwi-wasm.git"
|
||||
},
|
||||
"sideEffects": [
|
||||
"./packageDetect.js",
|
||||
"./packageDetect.cjs"
|
||||
"./build/packageDetect.js",
|
||||
"./build/cjs/packageDetect.js"
|
||||
],
|
||||
"type": "module",
|
||||
"version": "7.5.10",
|
||||
"main": "index.js",
|
||||
"types": "./build/index.d.ts",
|
||||
"version": "7.5.15",
|
||||
"main": "./build/cjs/index.js",
|
||||
"module": "./build/index.js",
|
||||
"exports": {
|
||||
".": {
|
||||
"module": {
|
||||
"types": "./build/index.d.ts",
|
||||
"default": "./build/index.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/index.d.ts",
|
||||
"default": "./build/cjs/index.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/index.d.ts",
|
||||
"default": "./build/index.js"
|
||||
}
|
||||
},
|
||||
"./bridge": {
|
||||
"module": {
|
||||
"types": "./build/bridge.d.ts",
|
||||
"default": "./build/bridge.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/bridge.d.ts",
|
||||
"default": "./build/cjs/bridge.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/bridge.d.ts",
|
||||
"default": "./build/bridge.js"
|
||||
}
|
||||
},
|
||||
"./bundle": {
|
||||
"module": {
|
||||
"types": "./build/bundle.d.ts",
|
||||
"default": "./build/bundle.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/bundle.d.ts",
|
||||
"default": "./build/cjs/bundle.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/bundle.d.ts",
|
||||
"default": "./build/bundle.js"
|
||||
}
|
||||
},
|
||||
"./cjs/*": "./build/cjs/*.js",
|
||||
"./cjs/package.json": "./build/cjs/package.json",
|
||||
"./init": {
|
||||
"module": {
|
||||
"types": "./build/init.d.ts",
|
||||
"default": "./build/init.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/init.d.ts",
|
||||
"default": "./build/cjs/init.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/init.d.ts",
|
||||
"default": "./build/init.js"
|
||||
}
|
||||
},
|
||||
"./package.json": "./package.json",
|
||||
"./packageDetect": {
|
||||
"module": {
|
||||
"types": "./build/packageDetect.d.ts",
|
||||
"default": "./build/packageDetect.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/packageDetect.d.ts",
|
||||
"default": "./build/cjs/packageDetect.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/packageDetect.d.ts",
|
||||
"default": "./build/packageDetect.js"
|
||||
}
|
||||
},
|
||||
"./packageInfo": {
|
||||
"module": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/packageInfo.d.ts",
|
||||
"default": "./build/cjs/packageInfo.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
}
|
||||
},
|
||||
"./packageInfo.js": {
|
||||
"module": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/packageInfo.d.ts",
|
||||
"default": "./build/cjs/packageInfo.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
}
|
||||
},
|
||||
"./types": {
|
||||
"module": {
|
||||
"types": "./build/types.d.ts",
|
||||
"default": "./build/types.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/types.d.ts",
|
||||
"default": "./build/cjs/types.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/types.d.ts",
|
||||
"default": "./build/types.js"
|
||||
}
|
||||
},
|
||||
"./wbg": {
|
||||
"module": {
|
||||
"types": "./build/wbg.d.ts",
|
||||
"default": "./build/wbg.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/wbg.d.ts",
|
||||
"default": "./build/cjs/wbg.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/wbg.d.ts",
|
||||
"default": "./build/wbg.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@pezkuwi/wasm-util": "7.5.10",
|
||||
"@pezkuwi/wasm-util": "7.5.15",
|
||||
"tslib": "^2.7.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
|
||||
// Do not edit, auto-generated by @pezkuwi/dev
|
||||
|
||||
export const packageInfo = { name: '@pezkuwi/wasm-bridge', path: 'auto', type: 'auto', version: '7.5.10' };
|
||||
export const packageInfo = { name: '@pezkuwi/wasm-bridge', path: 'auto', type: 'auto', version: '7.5.15' };
|
||||
@@ -56,6 +56,11 @@ export class Wbg<C extends WasmBaseInstance> {
|
||||
return this.#bridge.addObject(DEFAULT_SELF);
|
||||
};
|
||||
|
||||
/** @internal - bizinikiwi wasm hash */
|
||||
__wbg_self_7eede1f4488bf346 = (): number => {
|
||||
return this.#bridge.addObject(DEFAULT_SELF);
|
||||
};
|
||||
|
||||
/** @internal - old hash for compatibility */
|
||||
__wbg_self_1b7a39e3a92c949c = (): number => {
|
||||
return this.#bridge.addObject(DEFAULT_SELF);
|
||||
@@ -66,6 +71,11 @@ export class Wbg<C extends WasmBaseInstance> {
|
||||
throw new Error(`Unable to require ${this.#bridge.getString(ptr, len)}`);
|
||||
};
|
||||
|
||||
/** @internal - bizinikiwi wasm hash */
|
||||
__wbg_require_900d5c3984fe7703 = (ptr: number, len: number, _extra: number): never => {
|
||||
throw new Error(`Unable to require ${this.#bridge.getString(ptr, len)}`);
|
||||
};
|
||||
|
||||
/** @internal - old hash for compatibility */
|
||||
__wbg_require_604837428532a733 = (ptr: number, len: number): never => {
|
||||
throw new Error(`Unable to require ${this.#bridge.getString(ptr, len)}`);
|
||||
@@ -76,6 +86,11 @@ export class Wbg<C extends WasmBaseInstance> {
|
||||
return this.#bridge.addObject(DEFAULT_CRYPTO);
|
||||
};
|
||||
|
||||
/** @internal - bizinikiwi wasm hash */
|
||||
__wbg_crypto_c909fb428dcbddb6 = (_idx: number): number => {
|
||||
return this.#bridge.addObject(DEFAULT_CRYPTO);
|
||||
};
|
||||
|
||||
/** @internal - old hash for compatibility */
|
||||
__wbg_crypto_968f1772287e2df0 = (_idx: number): number => {
|
||||
return this.#bridge.addObject(DEFAULT_CRYPTO);
|
||||
@@ -87,11 +102,21 @@ export class Wbg<C extends WasmBaseInstance> {
|
||||
return this.#bridge.addObject(undefined);
|
||||
};
|
||||
|
||||
/** @internal - bizinikiwi wasm hash */
|
||||
__wbg_msCrypto_511eefefbfc70ae4 = (_idx: number): number => {
|
||||
return this.#bridge.addObject(undefined);
|
||||
};
|
||||
|
||||
/** @internal - new hash */
|
||||
__wbg_getRandomValues_7dfe5bd1b67c9ca1 = (_idx: number): number => {
|
||||
return this.#bridge.addObject(DEFAULT_CRYPTO.getRandomValues);
|
||||
};
|
||||
|
||||
/** @internal - bizinikiwi wasm hash */
|
||||
__wbg_getRandomValues_307049345d0bd88c = (_idx: number): number => {
|
||||
return this.#bridge.addObject(DEFAULT_CRYPTO.getRandomValues);
|
||||
};
|
||||
|
||||
/** @internal - old hash for compatibility */
|
||||
__wbg_getRandomValues_a3d34b4fee3c2869 = (_idx: number): number => {
|
||||
return this.#bridge.addObject(DEFAULT_CRYPTO.getRandomValues);
|
||||
@@ -102,6 +127,11 @@ export class Wbg<C extends WasmBaseInstance> {
|
||||
DEFAULT_CRYPTO.getRandomValues(this.#bridge.getU8a(ptr, len));
|
||||
};
|
||||
|
||||
/** @internal - bizinikiwi wasm hash (2 arg version) */
|
||||
__wbg_getRandomValues_cd175915511f705e = (ptr: number, len: number): void => {
|
||||
DEFAULT_CRYPTO.getRandomValues(this.#bridge.getU8a(ptr, len));
|
||||
};
|
||||
|
||||
/** @internal - old hash for compatibility */
|
||||
__wbg_getRandomValues_f5e14ab7ac8e995d = (_arg0: number, ptr: number, len: number): void => {
|
||||
DEFAULT_CRYPTO.getRandomValues(this.#bridge.getU8a(ptr, len));
|
||||
@@ -112,6 +142,11 @@ export class Wbg<C extends WasmBaseInstance> {
|
||||
throw new Error('randomFillSync is not available');
|
||||
};
|
||||
|
||||
/** @internal - bizinikiwi wasm hash */
|
||||
__wbg_randomFillSync_85b3f4c52c56c313 = (_idx: number, _ptr: number, _len: number): never => {
|
||||
throw new Error('randomFillSync is not available');
|
||||
};
|
||||
|
||||
/** @internal - old hash for compatibility */
|
||||
__wbg_randomFillSync_d5bd2d655fdf256a = (_idx: number, _ptr: number, _len: number): never => {
|
||||
throw new Error('randomFillSync is not available');
|
||||
@@ -132,18 +167,35 @@ export class Wbg<C extends WasmBaseInstance> {
|
||||
return this.#bridge.addObject(new Uint8Array(len));
|
||||
};
|
||||
|
||||
/** @internal - bizinikiwi wasm hash */
|
||||
__wbg_newwithlength_728575f3bba9959b = (len: number): number => {
|
||||
return this.#bridge.addObject(new Uint8Array(len));
|
||||
};
|
||||
|
||||
/** @internal - new: Uint8Array.subarray */
|
||||
__wbg_subarray_a96e1fef17ed23cb = (idx: number, start: number, end: number): number => {
|
||||
const arr = this.#bridge.getObject(idx) as Uint8Array;
|
||||
return this.#bridge.addObject(arr.subarray(start, end));
|
||||
};
|
||||
|
||||
/** @internal - bizinikiwi wasm hash */
|
||||
__wbg_subarray_7f7a652672800851 = (idx: number, start: number, end: number): number => {
|
||||
const arr = this.#bridge.getObject(idx) as Uint8Array;
|
||||
return this.#bridge.addObject(arr.subarray(start, end));
|
||||
};
|
||||
|
||||
/** @internal - new: Uint8Array.length */
|
||||
__wbg_length_32ed9a279acd054c = (idx: number): number => {
|
||||
const arr = this.#bridge.getObject(idx) as Uint8Array;
|
||||
return arr.length;
|
||||
};
|
||||
|
||||
/** @internal - bizinikiwi wasm hash */
|
||||
__wbg_length_f0764416ba5bb237 = (idx: number): number => {
|
||||
const arr = this.#bridge.getObject(idx) as Uint8Array;
|
||||
return arr.length;
|
||||
};
|
||||
|
||||
/** @internal - new: Uint8Array.prototype.set.call */
|
||||
__wbg_prototypesetcall_bdcdcc5842e4d77d = (destIdx: number, srcIdx: number, offset: number): void => {
|
||||
const dest = this.#bridge.getObject(destIdx) as Uint8Array;
|
||||
@@ -155,4 +207,28 @@ export class Wbg<C extends WasmBaseInstance> {
|
||||
__wbindgen_init_externref_table = (): void => {
|
||||
// No-op, externref table is initialized by the runtime
|
||||
};
|
||||
|
||||
/** @internal - bizinikiwi wasm: memory accessor */
|
||||
__wbindgen_memory = (): WebAssembly.Memory => {
|
||||
return this.#bridge.wasm?.memory as WebAssembly.Memory;
|
||||
};
|
||||
|
||||
/** @internal - bizinikiwi wasm: buffer accessor */
|
||||
__wbg_buffer_5d1b598a01b41a42 = (memIdx: number): number => {
|
||||
const mem = this.#bridge.getObject(memIdx) as WebAssembly.Memory;
|
||||
return this.#bridge.addObject(mem.buffer);
|
||||
};
|
||||
|
||||
/** @internal - bizinikiwi wasm: Uint8Array constructor */
|
||||
__wbg_new_ace717933ad7117f = (bufferIdx: number): number => {
|
||||
const buffer = this.#bridge.getObject(bufferIdx) as ArrayBuffer;
|
||||
return this.#bridge.addObject(new Uint8Array(buffer));
|
||||
};
|
||||
|
||||
/** @internal - bizinikiwi wasm: Uint8Array.set */
|
||||
__wbg_set_74906aa30864df5a = (destIdx: number, srcIdx: number, offset: number): void => {
|
||||
const dest = this.#bridge.getObject(destIdx) as Uint8Array;
|
||||
const src = this.#bridge.getObject(srcIdx) as Uint8Array;
|
||||
dest.set(src, offset);
|
||||
};
|
||||
}
|
||||
@@ -14,12 +14,89 @@
|
||||
"url": "https://github.com/pezkuwichain/pezkuwi-wasm.git"
|
||||
},
|
||||
"sideEffects": [
|
||||
"./packageDetect.js",
|
||||
"./packageDetect.cjs"
|
||||
"./build/packageDetect.js",
|
||||
"./build/cjs/packageDetect.js"
|
||||
],
|
||||
"type": "module",
|
||||
"version": "7.5.10",
|
||||
"main": "index.js",
|
||||
"types": "./build/index.d.ts",
|
||||
"version": "7.5.15",
|
||||
"main": "./build/cjs/index.js",
|
||||
"module": "./build/index.js",
|
||||
"exports": {
|
||||
".": {
|
||||
"module": {
|
||||
"types": "./build/index.d.ts",
|
||||
"default": "./build/index.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/index.d.ts",
|
||||
"default": "./build/cjs/index.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/index.d.ts",
|
||||
"default": "./build/index.js"
|
||||
}
|
||||
},
|
||||
"./bundle": {
|
||||
"module": {
|
||||
"types": "./build/bundle.d.ts",
|
||||
"default": "./build/bundle.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/bundle.d.ts",
|
||||
"default": "./build/cjs/bundle.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/bundle.d.ts",
|
||||
"default": "./build/bundle.js"
|
||||
}
|
||||
},
|
||||
"./cjs/*": "./build/cjs/*.js",
|
||||
"./cjs/package.json": "./build/cjs/package.json",
|
||||
"./package.json": "./package.json",
|
||||
"./packageDetect": {
|
||||
"module": {
|
||||
"types": "./build/packageDetect.d.ts",
|
||||
"default": "./build/packageDetect.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/packageDetect.d.ts",
|
||||
"default": "./build/cjs/packageDetect.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/packageDetect.d.ts",
|
||||
"default": "./build/packageDetect.js"
|
||||
}
|
||||
},
|
||||
"./packageInfo": {
|
||||
"module": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/packageInfo.d.ts",
|
||||
"default": "./build/cjs/packageInfo.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
}
|
||||
},
|
||||
"./packageInfo.js": {
|
||||
"module": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/packageInfo.d.ts",
|
||||
"default": "./build/cjs/packageInfo.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": "^2.7.0"
|
||||
},
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
|
||||
// Do not edit, auto-generated by @pezkuwi/dev
|
||||
|
||||
export const packageInfo = { name: '@pezkuwi/wasm-crypto-asmjs', path: 'auto', type: 'auto', version: '7.5.10' };
|
||||
export const packageInfo = { name: '@pezkuwi/wasm-crypto-asmjs', path: 'auto', type: 'auto', version: '7.5.15' };
|
||||
@@ -14,19 +14,197 @@
|
||||
"url": "https://github.com/pezkuwichain/pezkuwi-wasm.git"
|
||||
},
|
||||
"sideEffects": [
|
||||
"./packageDetect.js",
|
||||
"./packageDetect.cjs"
|
||||
"./build/packageDetect.js",
|
||||
"./build/cjs/packageDetect.js"
|
||||
],
|
||||
"type": "module",
|
||||
"version": "7.5.10",
|
||||
"browser": "wasm.js",
|
||||
"main": "wasm.js",
|
||||
"react-native": "asm.js",
|
||||
"types": "./build/wasm.d.ts",
|
||||
"version": "7.5.15",
|
||||
"browser": "./build/cjs/wasm.js",
|
||||
"main": "./build/cjs/wasm.js",
|
||||
"module": "./build/wasm.js",
|
||||
"react-native": "./build/cjs/asm.js",
|
||||
"exports": {
|
||||
".": {
|
||||
"types": "./build/wasm.d.ts",
|
||||
"react-native": {
|
||||
"module": {
|
||||
"types": "./build/asm.d.ts",
|
||||
"default": "./build/asm.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/asm.d.ts",
|
||||
"default": "./build/cjs/asm.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/asm.d.ts",
|
||||
"default": "./build/asm.js"
|
||||
}
|
||||
},
|
||||
"browser": {
|
||||
"module": {
|
||||
"types": "./build/wasm.d.ts",
|
||||
"default": "./build/wasm.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/wasm.d.ts",
|
||||
"default": "./build/cjs/wasm.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/wasm.d.ts",
|
||||
"default": "./build/wasm.js"
|
||||
}
|
||||
},
|
||||
"node": {
|
||||
"module": {
|
||||
"types": "./build/wasm.d.ts",
|
||||
"default": "./build/wasm.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/wasm.d.ts",
|
||||
"default": "./build/cjs/wasm.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/wasm.d.ts",
|
||||
"default": "./build/wasm.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"./asm": {
|
||||
"module": {
|
||||
"types": "./build/asm.d.ts",
|
||||
"default": "./build/asm.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/asm.d.ts",
|
||||
"default": "./build/cjs/asm.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/asm.d.ts",
|
||||
"default": "./build/asm.js"
|
||||
}
|
||||
},
|
||||
"./both": {
|
||||
"module": {
|
||||
"types": "./build/both.d.ts",
|
||||
"default": "./build/both.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/both.d.ts",
|
||||
"default": "./build/cjs/both.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/both.d.ts",
|
||||
"default": "./build/both.js"
|
||||
}
|
||||
},
|
||||
"./bundle": {
|
||||
"module": {
|
||||
"types": "./build/bundle.d.ts",
|
||||
"default": "./build/bundle.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/bundle.d.ts",
|
||||
"default": "./build/cjs/bundle.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/bundle.d.ts",
|
||||
"default": "./build/bundle.js"
|
||||
}
|
||||
},
|
||||
"./cjs/*": "./build/cjs/*.js",
|
||||
"./cjs/package.json": "./build/cjs/package.json",
|
||||
"./none": {
|
||||
"module": {
|
||||
"types": "./build/none.d.ts",
|
||||
"default": "./build/none.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/none.d.ts",
|
||||
"default": "./build/cjs/none.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/none.d.ts",
|
||||
"default": "./build/none.js"
|
||||
}
|
||||
},
|
||||
"./package.json": "./package.json",
|
||||
"./packageDetect": {
|
||||
"module": {
|
||||
"types": "./build/packageDetect.d.ts",
|
||||
"default": "./build/packageDetect.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/packageDetect.d.ts",
|
||||
"default": "./build/cjs/packageDetect.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/packageDetect.d.ts",
|
||||
"default": "./build/packageDetect.js"
|
||||
}
|
||||
},
|
||||
"./packageInfo": {
|
||||
"module": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/packageInfo.d.ts",
|
||||
"default": "./build/cjs/packageInfo.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
}
|
||||
},
|
||||
"./packageInfo.js": {
|
||||
"module": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/packageInfo.d.ts",
|
||||
"default": "./build/cjs/packageInfo.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
}
|
||||
},
|
||||
"./types": {
|
||||
"module": {
|
||||
"types": "./build/types.d.ts",
|
||||
"default": "./build/types.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/types.d.ts",
|
||||
"default": "./build/cjs/types.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/types.d.ts",
|
||||
"default": "./build/types.js"
|
||||
}
|
||||
},
|
||||
"./wasm": {
|
||||
"module": {
|
||||
"types": "./build/wasm.d.ts",
|
||||
"default": "./build/wasm.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/wasm.d.ts",
|
||||
"default": "./build/cjs/wasm.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/wasm.d.ts",
|
||||
"default": "./build/wasm.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@pezkuwi/wasm-bridge": "7.5.10",
|
||||
"@pezkuwi/wasm-crypto-asmjs": "7.5.10",
|
||||
"@pezkuwi/wasm-crypto-wasm": "7.5.10",
|
||||
"@pezkuwi/wasm-util": "7.5.10",
|
||||
"@pezkuwi/wasm-bridge": "7.5.15",
|
||||
"@pezkuwi/wasm-crypto-asmjs": "7.5.15",
|
||||
"@pezkuwi/wasm-crypto-wasm": "7.5.15",
|
||||
"@pezkuwi/wasm-util": "7.5.15",
|
||||
"tslib": "^2.7.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
|
||||
// Do not edit, auto-generated by @pezkuwi/dev
|
||||
|
||||
export const packageInfo = { name: '@pezkuwi/wasm-crypto-init', path: 'auto', type: 'auto', version: '7.5.10' };
|
||||
export const packageInfo = { name: '@pezkuwi/wasm-crypto-init', path: 'auto', type: 'auto', version: '7.5.15' };
|
||||
@@ -14,14 +14,105 @@
|
||||
"url": "https://github.com/pezkuwichain/pezkuwi-wasm.git"
|
||||
},
|
||||
"sideEffects": [
|
||||
"./packageDetect.js",
|
||||
"./packageDetect.cjs"
|
||||
"./build/packageDetect.js",
|
||||
"./build/cjs/packageDetect.js"
|
||||
],
|
||||
"type": "module",
|
||||
"version": "7.5.10",
|
||||
"main": "index.js",
|
||||
"types": "./build/index.d.ts",
|
||||
"version": "7.5.15",
|
||||
"main": "./build/cjs/index.js",
|
||||
"module": "./build/index.js",
|
||||
"exports": {
|
||||
".": {
|
||||
"module": {
|
||||
"types": "./build/index.d.ts",
|
||||
"default": "./build/index.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/index.d.ts",
|
||||
"default": "./build/cjs/index.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/index.d.ts",
|
||||
"default": "./build/index.js"
|
||||
}
|
||||
},
|
||||
"./bundle": {
|
||||
"module": {
|
||||
"types": "./build/bundle.d.ts",
|
||||
"default": "./build/bundle.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/bundle.d.ts",
|
||||
"default": "./build/cjs/bundle.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/bundle.d.ts",
|
||||
"default": "./build/bundle.js"
|
||||
}
|
||||
},
|
||||
"./bytes": {
|
||||
"module": {
|
||||
"types": "./build/bytes.d.ts",
|
||||
"default": "./build/bytes.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/bytes.d.ts",
|
||||
"default": "./build/cjs/bytes.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/bytes.d.ts",
|
||||
"default": "./build/bytes.js"
|
||||
}
|
||||
},
|
||||
"./cjs/*": "./build/cjs/*.js",
|
||||
"./cjs/package.json": "./build/cjs/package.json",
|
||||
"./package.json": "./package.json",
|
||||
"./packageDetect": {
|
||||
"module": {
|
||||
"types": "./build/packageDetect.d.ts",
|
||||
"default": "./build/packageDetect.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/packageDetect.d.ts",
|
||||
"default": "./build/cjs/packageDetect.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/packageDetect.d.ts",
|
||||
"default": "./build/packageDetect.js"
|
||||
}
|
||||
},
|
||||
"./packageInfo": {
|
||||
"module": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/packageInfo.d.ts",
|
||||
"default": "./build/cjs/packageInfo.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
}
|
||||
},
|
||||
"./packageInfo.js": {
|
||||
"module": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/packageInfo.d.ts",
|
||||
"default": "./build/cjs/packageInfo.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@pezkuwi/wasm-util": "7.5.10",
|
||||
"@pezkuwi/wasm-util": "7.5.15",
|
||||
"tslib": "^2.7.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
// Copyright 2019-2026 @pezkuwi/wasm-crypto-wasm authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
// Generated with bizinikiwi signing context from pezkuwi-sdk
|
||||
|
||||
export const lenIn = 69227;
|
||||
|
||||
export const lenOut = 111597;
|
||||
|
||||
export const bytes = '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
Line truncated
|
||||
@@ -1,12 +1,10 @@
|
||||
// Copyright 2019-2026 @pezkuwi/wasm-crypto-wasm authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
/* eslint-disable */
|
||||
// Generated with bizinikiwi signing context
|
||||
// ;base64, encoded wasm bytes - skip BigInt lint
|
||||
// Generated with bizinikiwi signing context from pezkuwi-sdk
|
||||
|
||||
exports.lenIn = 186659;
|
||||
exports.lenIn = 69227;
|
||||
|
||||
exports.lenOut = 367785;
|
||||
exports.lenOut = 111597;
|
||||
|
||||
exports.bytes = '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 truncated
|
||||
exports.bytes = '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
Line truncated
|
||||
@@ -1,12 +1,10 @@
|
||||
// Copyright 2019-2026 @pezkuwi/wasm-crypto-wasm authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
/* eslint-disable */
|
||||
// Generated with bizinikiwi signing context
|
||||
// ;base64, encoded wasm bytes - skip BigInt lint
|
||||
// Generated with bizinikiwi signing context from pezkuwi-sdk
|
||||
|
||||
export const lenIn = 186659;
|
||||
export const lenIn = 69227;
|
||||
|
||||
export const lenOut = 367785;
|
||||
export const lenOut = 111597;
|
||||
|
||||
export const bytes = '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 truncated
|
||||
export const bytes = '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
Line truncated
|
||||
@@ -3,4 +3,4 @@
|
||||
|
||||
// Do not edit, auto-generated by @pezkuwi/dev
|
||||
|
||||
export const packageInfo = { name: '@pezkuwi/wasm-crypto-wasm', path: 'auto', type: 'auto', version: '7.5.10' };
|
||||
export const packageInfo = { name: '@pezkuwi/wasm-crypto-wasm', path: 'auto', type: 'auto', version: '7.5.15' };
|
||||
Generated
+1
-1
@@ -1,6 +1,6 @@
|
||||
# This file is automatically @generated by Cargo.
|
||||
# It is not intended for manual editing.
|
||||
version = 4
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "addr2line"
|
||||
|
||||
@@ -14,26 +14,174 @@
|
||||
"url": "https://github.com/pezkuwichain/pezkuwi-wasm.git"
|
||||
},
|
||||
"sideEffects": [
|
||||
"./initNone.js",
|
||||
"./initNone.cjs",
|
||||
"./initOnlyAsm.js",
|
||||
"./initOnlyAsm.cjs",
|
||||
"./initOnlyWasm.js",
|
||||
"./initOnlyWasm.cjs",
|
||||
"./initWasmAsm.js",
|
||||
"./initWasmAsm.cjs",
|
||||
"./packageDetect.js",
|
||||
"./packageDetect.cjs"
|
||||
"./build/initNone.js",
|
||||
"./build/cjs/initNone.js",
|
||||
"./build/initOnlyAsm.js",
|
||||
"./build/cjs/initOnlyAsm.js",
|
||||
"./build/initOnlyWasm.js",
|
||||
"./build/cjs/initOnlyWasm.js",
|
||||
"./build/initWasmAsm.js",
|
||||
"./build/cjs/initWasmAsm.js",
|
||||
"./build/packageDetect.js",
|
||||
"./build/cjs/packageDetect.js"
|
||||
],
|
||||
"type": "module",
|
||||
"version": "7.5.10",
|
||||
"main": "index.js",
|
||||
"types": "./build/index.d.ts",
|
||||
"version": "7.5.15",
|
||||
"main": "./build/cjs/index.js",
|
||||
"module": "./build/index.js",
|
||||
"exports": {
|
||||
".": {
|
||||
"module": {
|
||||
"types": "./build/index.d.ts",
|
||||
"default": "./build/index.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/index.d.ts",
|
||||
"default": "./build/cjs/index.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/index.d.ts",
|
||||
"default": "./build/index.js"
|
||||
}
|
||||
},
|
||||
"./bundle": {
|
||||
"module": {
|
||||
"types": "./build/bundle.d.ts",
|
||||
"default": "./build/bundle.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/bundle.d.ts",
|
||||
"default": "./build/cjs/bundle.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/bundle.d.ts",
|
||||
"default": "./build/bundle.js"
|
||||
}
|
||||
},
|
||||
"./cjs/*": "./build/cjs/*.js",
|
||||
"./cjs/package.json": "./build/cjs/package.json",
|
||||
"./init": {
|
||||
"module": {
|
||||
"types": "./build/init.d.ts",
|
||||
"default": "./build/init.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/init.d.ts",
|
||||
"default": "./build/cjs/init.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/init.d.ts",
|
||||
"default": "./build/init.js"
|
||||
}
|
||||
},
|
||||
"./initNone": {
|
||||
"module": {
|
||||
"types": "./build/initNone.d.ts",
|
||||
"default": "./build/initNone.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/initNone.d.ts",
|
||||
"default": "./build/cjs/initNone.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/initNone.d.ts",
|
||||
"default": "./build/initNone.js"
|
||||
}
|
||||
},
|
||||
"./initOnlyAsm": {
|
||||
"module": {
|
||||
"types": "./build/initOnlyAsm.d.ts",
|
||||
"default": "./build/initOnlyAsm.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/initOnlyAsm.d.ts",
|
||||
"default": "./build/cjs/initOnlyAsm.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/initOnlyAsm.d.ts",
|
||||
"default": "./build/initOnlyAsm.js"
|
||||
}
|
||||
},
|
||||
"./initOnlyWasm": {
|
||||
"module": {
|
||||
"types": "./build/initOnlyWasm.d.ts",
|
||||
"default": "./build/initOnlyWasm.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/initOnlyWasm.d.ts",
|
||||
"default": "./build/cjs/initOnlyWasm.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/initOnlyWasm.d.ts",
|
||||
"default": "./build/initOnlyWasm.js"
|
||||
}
|
||||
},
|
||||
"./initWasmAsm": {
|
||||
"module": {
|
||||
"types": "./build/initWasmAsm.d.ts",
|
||||
"default": "./build/initWasmAsm.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/initWasmAsm.d.ts",
|
||||
"default": "./build/cjs/initWasmAsm.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/initWasmAsm.d.ts",
|
||||
"default": "./build/initWasmAsm.js"
|
||||
}
|
||||
},
|
||||
"./package.json": "./package.json",
|
||||
"./packageDetect": {
|
||||
"module": {
|
||||
"types": "./build/packageDetect.d.ts",
|
||||
"default": "./build/packageDetect.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/packageDetect.d.ts",
|
||||
"default": "./build/cjs/packageDetect.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/packageDetect.d.ts",
|
||||
"default": "./build/packageDetect.js"
|
||||
}
|
||||
},
|
||||
"./packageInfo": {
|
||||
"module": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/packageInfo.d.ts",
|
||||
"default": "./build/cjs/packageInfo.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
}
|
||||
},
|
||||
"./packageInfo.js": {
|
||||
"module": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/packageInfo.d.ts",
|
||||
"default": "./build/cjs/packageInfo.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@pezkuwi/wasm-bridge": "7.5.10",
|
||||
"@pezkuwi/wasm-crypto-asmjs": "7.5.10",
|
||||
"@pezkuwi/wasm-crypto-init": "7.5.10",
|
||||
"@pezkuwi/wasm-crypto-wasm": "7.5.10",
|
||||
"@pezkuwi/wasm-util": "7.5.10",
|
||||
"@noble/hashes": "^1.3.3",
|
||||
"@pezkuwi/wasm-bridge": "7.5.15",
|
||||
"@pezkuwi/wasm-crypto-asmjs": "7.5.15",
|
||||
"@pezkuwi/wasm-crypto-init": "7.5.15",
|
||||
"@pezkuwi/wasm-crypto-wasm": "7.5.15",
|
||||
"@pezkuwi/wasm-util": "7.5.15",
|
||||
"tslib": "^2.7.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
+592
-226
@@ -1,247 +1,613 @@
|
||||
// Copyright 2019-2026 @pezkuwi/wasm-crypto authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import type { WasmCryptoInstance } from '@pezkuwi/wasm-crypto-init/types';
|
||||
// Direct wrapper around bizinikiwi WASM (compiled with wasm-bindgen externref)
|
||||
// Uses bizinikiwi signing context for PezkuwiChain SR25519 signatures
|
||||
|
||||
import { bridge, initBridge } from './init.js';
|
||||
import { wasmBytes } from '@pezkuwi/wasm-crypto-wasm';
|
||||
|
||||
export { packageInfo } from './packageInfo.js';
|
||||
export { bridge };
|
||||
|
||||
// Removes the first parameter (expected as WasmCryptoInstance) and leaves the
|
||||
// rest of the parameters in-tack. This allows us to dynamically create a function
|
||||
// return from the withWasm helper
|
||||
type PopFirst<T extends unknown[]> =
|
||||
T extends [WasmCryptoInstance, ...infer N]
|
||||
? N
|
||||
: [];
|
||||
// WASM instance and memory
|
||||
let wasm: Record<string, unknown> | null = null;
|
||||
let cachedUint8ArrayMemory: Uint8Array | null = null;
|
||||
let cachedTextDecoder: TextDecoder | null = null;
|
||||
let _isReady = false;
|
||||
let initPromise: Promise<boolean> | null = null;
|
||||
let WASM_VECTOR_LEN = 0;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
* @description
|
||||
* This create an extenal interface function from the signature, all the while checking
|
||||
* the actual bridge wasm interface to ensure it has been initialized.
|
||||
*
|
||||
* This means that we can call it
|
||||
*
|
||||
* withWasm(wasm: WasmCryptoInstance, a: number, b: string) => Uint8Array
|
||||
*
|
||||
* and in this case it will create an interface function with the signarure
|
||||
*
|
||||
* (a: number, b: string) => Uint8Array
|
||||
*/
|
||||
function withWasm <T, F extends (wasm: WasmCryptoInstance, ...params: never[]) => T> (fn: F): (...params: PopFirst<Parameters<F>>) => ReturnType<F> {
|
||||
return (...params: PopFirst<Parameters<F>>): ReturnType<F> => {
|
||||
if (!bridge.wasm) {
|
||||
throw new Error('The WASM interface has not been initialized. Ensure that you wait for the initialization Promise with waitReady() from @pezkuwi/wasm-crypto (or cryptoWaitReady() from @pezkuwi/util-crypto) before attempting to use WASM-only interfaces.');
|
||||
// Memory helpers
|
||||
function getUint8ArrayMemory(): Uint8Array {
|
||||
if (cachedUint8ArrayMemory === null || cachedUint8ArrayMemory.byteLength === 0) {
|
||||
cachedUint8ArrayMemory = new Uint8Array((wasm!['memory'] as WebAssembly.Memory).buffer);
|
||||
}
|
||||
return cachedUint8ArrayMemory;
|
||||
}
|
||||
|
||||
function getStringFromWasm(ptr: number, len: number): string {
|
||||
if (!cachedTextDecoder) {
|
||||
cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
|
||||
cachedTextDecoder.decode();
|
||||
}
|
||||
ptr = ptr >>> 0;
|
||||
return cachedTextDecoder.decode(getUint8ArrayMemory().subarray(ptr, ptr + len));
|
||||
}
|
||||
|
||||
function getArrayU8FromWasm(ptr: number, len: number): Uint8Array {
|
||||
ptr = ptr >>> 0;
|
||||
return getUint8ArrayMemory().subarray(ptr / 1, ptr / 1 + len);
|
||||
}
|
||||
|
||||
function passArray8ToWasm(arg: Uint8Array, malloc: (size: number, align: number) => number): number {
|
||||
const ptr = malloc(arg.length * 1, 1) >>> 0;
|
||||
getUint8ArrayMemory().set(arg, ptr / 1);
|
||||
WASM_VECTOR_LEN = arg.length;
|
||||
return ptr;
|
||||
}
|
||||
|
||||
// Externref table helpers
|
||||
function addToExternrefTable(obj: unknown): number {
|
||||
const idx = (wasm!['__externref_table_alloc'] as () => number)();
|
||||
(wasm!['__wbindgen_externrefs'] as WebAssembly.Table).set(idx, obj);
|
||||
return idx;
|
||||
}
|
||||
|
||||
function takeFromExternrefTable(idx: number): unknown {
|
||||
const value = (wasm!['__wbindgen_externrefs'] as WebAssembly.Table).get(idx);
|
||||
(wasm!['__externref_table_dealloc'] as (idx: number) => void)(idx);
|
||||
return value;
|
||||
}
|
||||
|
||||
function isLikeNone(x: unknown): boolean {
|
||||
return x === undefined || x === null;
|
||||
}
|
||||
|
||||
function handleError<T extends unknown[]>(f: (...args: T) => unknown, args: IArguments): unknown {
|
||||
try {
|
||||
return f.apply(null, args as unknown as T);
|
||||
} catch (e) {
|
||||
const idx = addToExternrefTable(e);
|
||||
(wasm!['__wbindgen_exn_store'] as (idx: number) => void)(idx);
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
// WASM imports - matches pezkuwi_wasm_crypto.js __wbg_get_imports()
|
||||
function createImports(): WebAssembly.Imports {
|
||||
const import0: Record<string, unknown> = {
|
||||
__proto__: null,
|
||||
|
||||
__wbg___wbindgen_is_function_0095a73b8b156f76: function(arg0: unknown): boolean {
|
||||
return typeof(arg0) === 'function';
|
||||
},
|
||||
|
||||
__wbg___wbindgen_is_object_5ae8e5880f2c1fbd: function(arg0: unknown): boolean {
|
||||
const val = arg0;
|
||||
return typeof(val) === 'object' && val !== null;
|
||||
},
|
||||
|
||||
__wbg___wbindgen_is_string_cd444516edc5b180: function(arg0: unknown): boolean {
|
||||
return typeof(arg0) === 'string';
|
||||
},
|
||||
|
||||
__wbg___wbindgen_is_undefined_9e4d92534c42d778: function(arg0: unknown): boolean {
|
||||
return arg0 === undefined;
|
||||
},
|
||||
|
||||
__wbg___wbindgen_throw_be289d5034ed271b: function(arg0: number, arg1: number): never {
|
||||
throw new Error(getStringFromWasm(arg0, arg1));
|
||||
},
|
||||
|
||||
__wbg_call_389efe28435a9388: function(): unknown {
|
||||
return handleError(function(arg0: { call: (thisArg: unknown) => unknown }, arg1: unknown) {
|
||||
return arg0.call(arg1);
|
||||
}, arguments);
|
||||
},
|
||||
|
||||
__wbg_call_4708e0c13bdc8e95: function(): unknown {
|
||||
return handleError(function(arg0: { call: (thisArg: unknown, arg: unknown) => unknown }, arg1: unknown, arg2: unknown) {
|
||||
return arg0.call(arg1, arg2);
|
||||
}, arguments);
|
||||
},
|
||||
|
||||
__wbg_crypto_86f2631e91b51511: function(arg0: { crypto?: Crypto }): Crypto | undefined {
|
||||
return arg0.crypto;
|
||||
},
|
||||
|
||||
__wbg_getRandomValues_b3f15fcbfabb0f8b: function(): void {
|
||||
return handleError(function(arg0: { getRandomValues: (arr: Uint8Array) => void }, arg1: Uint8Array) {
|
||||
arg0.getRandomValues(arg1);
|
||||
}, arguments) as void;
|
||||
},
|
||||
|
||||
__wbg_length_32ed9a279acd054c: function(arg0: { length: number }): number {
|
||||
return arg0.length;
|
||||
},
|
||||
|
||||
__wbg_msCrypto_d562bbe83e0d4b91: function(arg0: { msCrypto?: unknown }): unknown {
|
||||
return arg0.msCrypto;
|
||||
},
|
||||
|
||||
__wbg_new_no_args_1c7c842f08d00ebb: function(arg0: number, arg1: number): Function {
|
||||
return new Function(getStringFromWasm(arg0, arg1));
|
||||
},
|
||||
|
||||
__wbg_new_with_length_a2c39cbe88fd8ff1: function(arg0: number): Uint8Array {
|
||||
return new Uint8Array(arg0 >>> 0);
|
||||
},
|
||||
|
||||
__wbg_node_e1f24f89a7336c2e: function(arg0: { node?: unknown }): unknown {
|
||||
return arg0.node;
|
||||
},
|
||||
|
||||
__wbg_process_3975fd6c72f520aa: function(arg0: { process?: unknown }): unknown {
|
||||
return arg0.process;
|
||||
},
|
||||
|
||||
__wbg_prototypesetcall_bdcdcc5842e4d77d: function(arg0: number, arg1: number, arg2: Uint8Array): void {
|
||||
Uint8Array.prototype.set.call(getArrayU8FromWasm(arg0, arg1), arg2);
|
||||
},
|
||||
|
||||
__wbg_randomFillSync_f8c153b79f285817: function(): void {
|
||||
return handleError(function(arg0: { randomFillSync: (arr: Uint8Array) => void }, arg1: Uint8Array) {
|
||||
arg0.randomFillSync(arg1);
|
||||
}, arguments) as void;
|
||||
},
|
||||
|
||||
__wbg_require_b74f47fc2d022fd6: function(): unknown {
|
||||
return handleError(function() {
|
||||
return typeof module !== 'undefined' ? (module as NodeModule & { require?: unknown }).require : undefined;
|
||||
}, arguments);
|
||||
},
|
||||
|
||||
__wbg_static_accessor_GLOBAL_12837167ad935116: function(): number {
|
||||
const ret = typeof global === 'undefined' ? null : global;
|
||||
return isLikeNone(ret) ? 0 : addToExternrefTable(ret);
|
||||
},
|
||||
|
||||
__wbg_static_accessor_GLOBAL_THIS_e628e89ab3b1c95f: function(): number {
|
||||
const ret = typeof globalThis === 'undefined' ? null : globalThis;
|
||||
return isLikeNone(ret) ? 0 : addToExternrefTable(ret);
|
||||
},
|
||||
|
||||
__wbg_static_accessor_SELF_a621d3dfbb60d0ce: function(): number {
|
||||
const ret = typeof self === 'undefined' ? null : self;
|
||||
return isLikeNone(ret) ? 0 : addToExternrefTable(ret);
|
||||
},
|
||||
|
||||
__wbg_static_accessor_WINDOW_f8727f0cf888e0bd: function(): number {
|
||||
const ret = typeof window === 'undefined' ? null : window;
|
||||
return isLikeNone(ret) ? 0 : addToExternrefTable(ret);
|
||||
},
|
||||
|
||||
__wbg_subarray_a96e1fef17ed23cb: function(arg0: Uint8Array, arg1: number, arg2: number): Uint8Array {
|
||||
return arg0.subarray(arg1 >>> 0, arg2 >>> 0);
|
||||
},
|
||||
|
||||
__wbg_versions_4e31226f5e8dc909: function(arg0: { versions?: unknown }): unknown {
|
||||
return arg0.versions;
|
||||
},
|
||||
|
||||
__wbindgen_cast_0000000000000001: function(arg0: number, arg1: number): Uint8Array {
|
||||
return getArrayU8FromWasm(arg0, arg1);
|
||||
},
|
||||
|
||||
__wbindgen_cast_0000000000000002: function(arg0: number, arg1: number): string {
|
||||
return getStringFromWasm(arg0, arg1);
|
||||
},
|
||||
|
||||
__wbindgen_init_externref_table: function(): void {
|
||||
const table = wasm!['__wbindgen_externrefs'] as WebAssembly.Table;
|
||||
const offset = table.grow(4);
|
||||
table.set(0, undefined);
|
||||
table.set(offset + 0, undefined);
|
||||
table.set(offset + 1, null);
|
||||
table.set(offset + 2, true);
|
||||
table.set(offset + 3, false);
|
||||
},
|
||||
};
|
||||
|
||||
return {
|
||||
__proto__: null,
|
||||
'./pezkuwi_wasm_crypto_bg.js': import0,
|
||||
} as unknown as WebAssembly.Imports;
|
||||
}
|
||||
|
||||
// Initialize WASM
|
||||
async function initWasm(): Promise<boolean> {
|
||||
if (_isReady) return true;
|
||||
|
||||
try {
|
||||
// wasmBytes is already decompressed by @pezkuwi/wasm-crypto-wasm
|
||||
const imports = createImports();
|
||||
const result = await WebAssembly.instantiate(wasmBytes as BufferSource, imports);
|
||||
|
||||
wasm = (result as WebAssembly.WebAssemblyInstantiatedSource).instance.exports as Record<string, unknown>;
|
||||
|
||||
// Initialize the module
|
||||
if (typeof wasm['__wbindgen_start'] === 'function') {
|
||||
(wasm['__wbindgen_start'] as () => void)();
|
||||
}
|
||||
|
||||
return fn(bridge.wasm, ...params) as ReturnType<F>;
|
||||
};
|
||||
_isReady = true;
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error('FATAL: Unable to initialize @pezkuwi/wasm-crypto:', (error as Error).message);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
export const bip39Generate = /*#__PURE__*/ withWasm((wasm, words: 12 | 15 | 18 | 21 | 24): string => {
|
||||
wasm.ext_bip39_generate(8, words);
|
||||
// Public API - backward compatible with @polkadot/wasm-crypto
|
||||
|
||||
return bridge.resultString();
|
||||
});
|
||||
export const bridge = {
|
||||
wasm: null as unknown,
|
||||
type: 'wasm' as const
|
||||
};
|
||||
|
||||
export const bip39ToEntropy = /*#__PURE__*/ withWasm((wasm, phrase: string): Uint8Array => {
|
||||
wasm.ext_bip39_to_entropy(8, ...bridge.allocString(phrase));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const bip39ToMiniSecret = /*#__PURE__*/ withWasm((wasm, phrase: string, password: string): Uint8Array => {
|
||||
wasm.ext_bip39_to_mini_secret(8, ...bridge.allocString(phrase), ...bridge.allocString(password));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const bip39ToSeed = /*#__PURE__*/ withWasm((wasm, phrase: string, password: string): Uint8Array => {
|
||||
wasm.ext_bip39_to_seed(8, ...bridge.allocString(phrase), ...bridge.allocString(password));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const bip39Validate = /*#__PURE__*/ withWasm((wasm, phrase: string): boolean => {
|
||||
const ret = wasm.ext_bip39_validate(...bridge.allocString(phrase));
|
||||
|
||||
return ret !== 0;
|
||||
});
|
||||
|
||||
export const ed25519KeypairFromSeed = /*#__PURE__*/ withWasm((wasm, seed: Uint8Array): Uint8Array => {
|
||||
wasm.ext_ed_from_seed(8, ...bridge.allocU8a(seed));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const ed25519Sign = /*#__PURE__*/ withWasm((wasm, pubkey: Uint8Array, seckey: Uint8Array, message: Uint8Array): Uint8Array => {
|
||||
wasm.ext_ed_sign(8, ...bridge.allocU8a(pubkey), ...bridge.allocU8a(seckey), ...bridge.allocU8a(message));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const ed25519Verify = /*#__PURE__*/ withWasm((wasm, signature: Uint8Array, message: Uint8Array, pubkey: Uint8Array): boolean => {
|
||||
const ret = wasm.ext_ed_verify(...bridge.allocU8a(signature), ...bridge.allocU8a(message), ...bridge.allocU8a(pubkey));
|
||||
|
||||
return ret !== 0;
|
||||
});
|
||||
|
||||
export const secp256k1FromSeed = /*#__PURE__*/ withWasm((wasm, seckey: Uint8Array): Uint8Array => {
|
||||
wasm.ext_secp_from_seed(8, ...bridge.allocU8a(seckey));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const secp256k1Compress = /*#__PURE__*/ withWasm((wasm, pubkey: Uint8Array): Uint8Array => {
|
||||
wasm.ext_secp_pub_compress(8, ...bridge.allocU8a(pubkey));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const secp256k1Expand = /*#__PURE__*/ withWasm((wasm, pubkey: Uint8Array): Uint8Array => {
|
||||
wasm.ext_secp_pub_expand(8, ...bridge.allocU8a(pubkey));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const secp256k1Recover = /*#__PURE__*/ withWasm((wasm, msgHash: Uint8Array, sig: Uint8Array, recovery: number): Uint8Array => {
|
||||
wasm.ext_secp_recover(8, ...bridge.allocU8a(msgHash), ...bridge.allocU8a(sig), recovery);
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const secp256k1Sign = /*#__PURE__*/ withWasm((wasm, msgHash: Uint8Array, seckey: Uint8Array): Uint8Array => {
|
||||
wasm.ext_secp_sign(8, ...bridge.allocU8a(msgHash), ...bridge.allocU8a(seckey));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const sr25519DeriveKeypairHard = /*#__PURE__*/ withWasm((wasm, pair: Uint8Array, cc: Uint8Array): Uint8Array => {
|
||||
wasm.ext_sr_derive_keypair_hard(8, ...bridge.allocU8a(pair), ...bridge.allocU8a(cc));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const sr25519DeriveKeypairSoft = /*#__PURE__*/ withWasm((wasm, pair: Uint8Array, cc: Uint8Array): Uint8Array => {
|
||||
wasm.ext_sr_derive_keypair_soft(8, ...bridge.allocU8a(pair), ...bridge.allocU8a(cc));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const sr25519DerivePublicSoft = /*#__PURE__*/ withWasm((wasm, pubkey: Uint8Array, cc: Uint8Array): Uint8Array => {
|
||||
wasm.ext_sr_derive_public_soft(8, ...bridge.allocU8a(pubkey), ...bridge.allocU8a(cc));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const sr25519KeypairFromSeed = /*#__PURE__*/ withWasm((wasm, seed: Uint8Array): Uint8Array => {
|
||||
wasm.ext_sr_from_seed(8, ...bridge.allocU8a(seed));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const sr25519Sign = /*#__PURE__*/ withWasm((wasm, pubkey: Uint8Array, secret: Uint8Array, message: Uint8Array): Uint8Array => {
|
||||
wasm.ext_sr_sign(8, ...bridge.allocU8a(pubkey), ...bridge.allocU8a(secret), ...bridge.allocU8a(message));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const sr25519Verify = /*#__PURE__*/ withWasm((wasm, signature: Uint8Array, message: Uint8Array, pubkey: Uint8Array): boolean => {
|
||||
const ret = wasm.ext_sr_verify(...bridge.allocU8a(signature), ...bridge.allocU8a(message), ...bridge.allocU8a(pubkey));
|
||||
|
||||
return ret !== 0;
|
||||
});
|
||||
|
||||
export const sr25519Agree = /*#__PURE__*/ withWasm((wasm, pubkey: Uint8Array, secret: Uint8Array): Uint8Array => {
|
||||
wasm.ext_sr_agree(8, ...bridge.allocU8a(pubkey), ...bridge.allocU8a(secret));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const vrfSign = /*#__PURE__*/ withWasm((wasm, secret: Uint8Array, context: Uint8Array, message: Uint8Array, extra: Uint8Array): Uint8Array => {
|
||||
wasm.ext_vrf_sign(8, ...bridge.allocU8a(secret), ...bridge.allocU8a(context), ...bridge.allocU8a(message), ...bridge.allocU8a(extra));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const vrfVerify = /*#__PURE__*/ withWasm((wasm, pubkey: Uint8Array, context: Uint8Array, message: Uint8Array, extra: Uint8Array, outAndProof: Uint8Array): boolean => {
|
||||
const ret = wasm.ext_vrf_verify(...bridge.allocU8a(pubkey), ...bridge.allocU8a(context), ...bridge.allocU8a(message), ...bridge.allocU8a(extra), ...bridge.allocU8a(outAndProof));
|
||||
|
||||
return ret !== 0;
|
||||
});
|
||||
|
||||
export const blake2b = /*#__PURE__*/ withWasm((wasm, data: Uint8Array, key: Uint8Array, size: number): Uint8Array => {
|
||||
wasm.ext_blake2b(8, ...bridge.allocU8a(data), ...bridge.allocU8a(key), size);
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const hmacSha256 = /*#__PURE__*/ withWasm((wasm, key: Uint8Array, data: Uint8Array): Uint8Array => {
|
||||
wasm.ext_hmac_sha256(8, ...bridge.allocU8a(key), ...bridge.allocU8a(data));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const hmacSha512 = /*#__PURE__*/ withWasm((wasm, key: Uint8Array, data: Uint8Array): Uint8Array => {
|
||||
wasm.ext_hmac_sha512(8, ...bridge.allocU8a(key), ...bridge.allocU8a(data));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const keccak256 = /*#__PURE__*/ withWasm((wasm, data: Uint8Array): Uint8Array => {
|
||||
wasm.ext_keccak256(8, ...bridge.allocU8a(data));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const keccak512 = /*#__PURE__*/ withWasm((wasm, data: Uint8Array): Uint8Array => {
|
||||
wasm.ext_keccak512(8, ...bridge.allocU8a(data));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const pbkdf2 = /*#__PURE__*/ withWasm((wasm, data: Uint8Array, salt: Uint8Array, rounds: number): Uint8Array => {
|
||||
wasm.ext_pbkdf2(8, ...bridge.allocU8a(data), ...bridge.allocU8a(salt), rounds);
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const scrypt = /*#__PURE__*/ withWasm((wasm, password: Uint8Array, salt: Uint8Array, log2n: number, r: number, p: number): Uint8Array => {
|
||||
wasm.ext_scrypt(8, ...bridge.allocU8a(password), ...bridge.allocU8a(salt), log2n, r, p);
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const sha256 = /*#__PURE__*/ withWasm((wasm, data: Uint8Array): Uint8Array => {
|
||||
wasm.ext_sha256(8, ...bridge.allocU8a(data));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const sha512 = /*#__PURE__*/ withWasm((wasm, data: Uint8Array): Uint8Array => {
|
||||
wasm.ext_sha512(8, ...bridge.allocU8a(data));
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export const twox = /*#__PURE__*/ withWasm((wasm, data: Uint8Array, rounds: number) => {
|
||||
wasm.ext_twox(8, ...bridge.allocU8a(data), rounds);
|
||||
|
||||
return bridge.resultU8a();
|
||||
});
|
||||
|
||||
export function isReady (): boolean {
|
||||
return !!bridge.wasm;
|
||||
export function isReady(): boolean {
|
||||
return _isReady;
|
||||
}
|
||||
|
||||
export async function waitReady (): Promise<boolean> {
|
||||
export async function waitReady(): Promise<boolean> {
|
||||
if (!initPromise) {
|
||||
initPromise = initWasm();
|
||||
}
|
||||
return initPromise;
|
||||
}
|
||||
|
||||
// Get signing context (should return "bizinikiwi")
|
||||
export function getSigningContext(): string {
|
||||
if (!wasm) throw new Error('WASM not initialized');
|
||||
const ret = (wasm['get_signing_context'] as () => [number, number])();
|
||||
const str = getStringFromWasm(ret[0], ret[1]);
|
||||
(wasm['__wbindgen_free'] as (ptr: number, len: number, align: number) => void)(ret[0], ret[1], 1);
|
||||
return str;
|
||||
}
|
||||
|
||||
// SR25519 - Uses bizinikiwi signing context
|
||||
|
||||
export function sr25519KeypairFromSeed(seed: Uint8Array): Uint8Array {
|
||||
if (!wasm) throw new Error('WASM not initialized');
|
||||
const ptr0 = passArray8ToWasm(seed, wasm['__wbindgen_malloc'] as (size: number, align: number) => number);
|
||||
const len0 = WASM_VECTOR_LEN;
|
||||
const ret = (wasm['sr25519_keypair_from_seed'] as (ptr: number, len: number) => [number, number, number, number])(ptr0, len0);
|
||||
if (ret[3]) {
|
||||
throw takeFromExternrefTable(ret[2]) as Error;
|
||||
}
|
||||
const v2 = getArrayU8FromWasm(ret[0], ret[1]).slice();
|
||||
(wasm['__wbindgen_free'] as (ptr: number, len: number, align: number) => void)(ret[0], ret[1] * 1, 1);
|
||||
return v2;
|
||||
}
|
||||
|
||||
export function sr25519Sign(publicKey: Uint8Array, secretKey: Uint8Array, message: Uint8Array): Uint8Array {
|
||||
if (!wasm) throw new Error('WASM not initialized');
|
||||
const ptr0 = passArray8ToWasm(publicKey, wasm['__wbindgen_malloc'] as (size: number, align: number) => number);
|
||||
const len0 = WASM_VECTOR_LEN;
|
||||
const ptr1 = passArray8ToWasm(secretKey, wasm['__wbindgen_malloc'] as (size: number, align: number) => number);
|
||||
const len1 = WASM_VECTOR_LEN;
|
||||
const ptr2 = passArray8ToWasm(message, wasm['__wbindgen_malloc'] as (size: number, align: number) => number);
|
||||
const len2 = WASM_VECTOR_LEN;
|
||||
const ret = (wasm['sr25519_sign'] as (p0: number, l0: number, p1: number, l1: number, p2: number, l2: number) => [number, number, number, number])(ptr0, len0, ptr1, len1, ptr2, len2);
|
||||
if (ret[3]) {
|
||||
throw takeFromExternrefTable(ret[2]) as Error;
|
||||
}
|
||||
const v4 = getArrayU8FromWasm(ret[0], ret[1]).slice();
|
||||
(wasm['__wbindgen_free'] as (ptr: number, len: number, align: number) => void)(ret[0], ret[1] * 1, 1);
|
||||
return v4;
|
||||
}
|
||||
|
||||
export function sr25519Verify(signature: Uint8Array, message: Uint8Array, publicKey: Uint8Array): boolean {
|
||||
if (!wasm) throw new Error('WASM not initialized');
|
||||
const ptr0 = passArray8ToWasm(signature, wasm['__wbindgen_malloc'] as (size: number, align: number) => number);
|
||||
const len0 = WASM_VECTOR_LEN;
|
||||
const ptr1 = passArray8ToWasm(message, wasm['__wbindgen_malloc'] as (size: number, align: number) => number);
|
||||
const len1 = WASM_VECTOR_LEN;
|
||||
const ptr2 = passArray8ToWasm(publicKey, wasm['__wbindgen_malloc'] as (size: number, align: number) => number);
|
||||
const len2 = WASM_VECTOR_LEN;
|
||||
const ret = (wasm['sr25519_verify'] as (p0: number, l0: number, p1: number, l1: number, p2: number, l2: number) => number)(ptr0, len0, ptr1, len1, ptr2, len2);
|
||||
return ret !== 0;
|
||||
}
|
||||
|
||||
// BIP39 JavaScript implementations (not in bizinikiwi WASM)
|
||||
// Using minimal implementations compatible with original wasm-crypto
|
||||
|
||||
import { sha256 as nobleSha256 } from '@noble/hashes/sha256';
|
||||
import { sha512 as nobleSha512 } from '@noble/hashes/sha512';
|
||||
import { pbkdf2 as noblePbkdf2 } from '@noble/hashes/pbkdf2';
|
||||
import { blake2b as nobleBlake2b } from '@noble/hashes/blake2b';
|
||||
import { hmac } from '@noble/hashes/hmac';
|
||||
import { keccak_256, keccak_512 } from '@noble/hashes/sha3';
|
||||
|
||||
function normalizeString(str: string): string {
|
||||
return (str || '').normalize('NFKD');
|
||||
}
|
||||
|
||||
// Basic validation - check word count only
|
||||
// Full validation with wordlist happens in util-crypto's JS fallback
|
||||
export function bip39Validate(phrase: string): boolean {
|
||||
try {
|
||||
const wasm = await initBridge();
|
||||
|
||||
return !!wasm;
|
||||
const words = normalizeString(phrase).split(' ');
|
||||
return [12, 15, 18, 21, 24].includes(words.length);
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// BIP39 English wordlist
|
||||
const BIP39_WORDLIST = 'abandon|ability|able|about|above|absent|absorb|abstract|absurd|abuse|access|accident|account|accuse|achieve|acid|acoustic|acquire|across|act|action|actor|actress|actual|adapt|add|addict|address|adjust|admit|adult|advance|advice|aerobic|affair|afford|afraid|again|age|agent|agree|ahead|aim|air|airport|aisle|alarm|album|alcohol|alert|alien|all|alley|allow|almost|alone|alpha|already|also|alter|always|amateur|amazing|among|amount|amused|analyst|anchor|ancient|anger|angle|angry|animal|ankle|announce|annual|another|answer|antenna|antique|anxiety|any|apart|apology|appear|apple|approve|april|arch|arctic|area|arena|argue|arm|armed|armor|army|around|arrange|arrest|arrive|arrow|art|artefact|artist|artwork|ask|aspect|assault|asset|assist|assume|asthma|athlete|atom|attack|attend|attitude|attract|auction|audit|august|aunt|author|auto|autumn|average|avocado|avoid|awake|aware|away|awesome|awful|awkward|axis|baby|bachelor|bacon|badge|bag|balance|balcony|ball|bamboo|banana|banner|bar|barely|bargain|barrel|base|basic|basket|battle|beach|bean|beauty|because|become|beef|before|begin|behave|behind|believe|below|belt|bench|benefit|best|betray|better|between|beyond|bicycle|bid|bike|bind|biology|bird|birth|bitter|black|blade|blame|blanket|blast|bleak|bless|blind|blood|blossom|blouse|blue|blur|blush|board|boat|body|boil|bomb|bone|bonus|book|boost|border|boring|borrow|boss|bottom|bounce|box|boy|bracket|brain|brand|brass|brave|bread|breeze|brick|bridge|brief|bright|bring|brisk|broccoli|broken|bronze|broom|brother|brown|brush|bubble|buddy|budget|buffalo|build|bulb|bulk|bullet|bundle|bunker|burden|burger|burst|bus|business|busy|butter|buyer|buzz|cabbage|cabin|cable|cactus|cage|cake|call|calm|camera|camp|can|canal|cancel|candy|cannon|canoe|canvas|canyon|capable|capital|captain|car|carbon|card|cargo|carpet|carry|cart|case|cash|casino|castle|casual|cat|catalog|catch|category|cattle|caught|cause|caution|cave|ceiling|celery|cement|census|century|cereal|certain|chair|chalk|champion|change|chaos|chapter|charge|chase|chat|cheap|check|cheese|chef|cherry|chest|chicken|chief|child|chimney|choice|choose|chronic|chuckle|chunk|churn|cigar|cinnamon|circle|citizen|city|civil|claim|clap|clarify|claw|clay|clean|clerk|clever|click|client|cliff|climb|clinic|clip|clock|clog|close|cloth|cloud|clown|club|clump|cluster|clutch|coach|coast|coconut|code|coffee|coil|coin|collect|color|column|combine|come|comfort|comic|common|company|concert|conduct|confirm|congress|connect|consider|control|convince|cook|cool|copper|copy|coral|core|corn|correct|cost|cotton|couch|country|couple|course|cousin|cover|coyote|crack|cradle|craft|cram|crane|crash|crater|crawl|crazy|cream|credit|creek|crew|cricket|crime|crisp|critic|crop|cross|crouch|crowd|crucial|cruel|cruise|crumble|crunch|crush|cry|crystal|cube|culture|cup|cupboard|curious|current|curtain|curve|cushion|custom|cute|cycle|dad|damage|damp|dance|danger|daring|dash|daughter|dawn|day|deal|debate|debris|decade|december|decide|decline|decorate|decrease|deer|defense|define|defy|degree|delay|deliver|demand|demise|denial|dentist|deny|depart|depend|deposit|depth|deputy|derive|describe|desert|design|desk|despair|destroy|detail|detect|develop|device|devote|diagram|dial|diamond|diary|dice|diesel|diet|differ|digital|dignity|dilemma|dinner|dinosaur|direct|dirt|disagree|discover|disease|dish|dismiss|disorder|display|distance|divert|divide|divorce|dizzy|doctor|document|dog|doll|dolphin|domain|donate|donkey|donor|door|dose|double|dove|draft|dragon|drama|drastic|draw|dream|dress|drift|drill|drink|drip|drive|drop|drum|dry|duck|dumb|dune|during|dust|dutch|duty|dwarf|dynamic|eager|eagle|early|earn|earth|easily|east|easy|echo|ecology|economy|edge|edit|educate|effort|egg|eight|either|elbow|elder|electric|elegant|element|elephant|elevator|elite|else|embark|embody|embrace|emerge|emotion|employ|empower|empty|enable|enact|end|endless|endorse|enemy|energy|enforce|engage|engine|enhance|enjoy|enlist|enough|enrich|enroll|ensure|enter|entire|entry|envelope|episode|equal|equip|era|erase|erode|erosion|error|erupt|escape|essay|essence|estate|eternal|ethics|evidence|evil|evoke|evolve|exact|example|excess|exchange|excite|exclude|excuse|execute|exercise|exhaust|exhibit|exile|exist|exit|exotic|expand|expect|expire|explain|expose|express|extend|extra|eye|eyebrow|fabric|face|faculty|fade|faint|faith|fall|false|fame|family|famous|fan|fancy|fantasy|farm|fashion|fat|fatal|father|fatigue|fault|favorite|feature|february|federal|fee|feed|feel|female|fence|festival|fetch|fever|few|fiber|fiction|field|figure|file|film|filter|final|find|fine|finger|finish|fire|firm|first|fiscal|fish|fit|fitness|fix|flag|flame|flash|flat|flavor|flee|flight|flip|float|flock|floor|flower|fluid|flush|fly|foam|focus|fog|foil|fold|follow|food|foot|force|forest|forget|fork|fortune|forum|forward|fossil|foster|found|fox|fragile|frame|frequent|fresh|friend|fringe|frog|front|frost|frown|frozen|fruit|fuel|fun|funny|furnace|fury|future|gadget|gain|galaxy|gallery|game|gap|garage|Line truncated
|
||||
|
||||
function binaryToByte(bin: string): number {
|
||||
return parseInt(bin, 2);
|
||||
}
|
||||
|
||||
function bytesToBinary(bytes: number[]): string {
|
||||
return bytes.map((x) => x.toString(2).padStart(8, '0')).join('');
|
||||
}
|
||||
|
||||
function deriveChecksumBits(entropyBuffer: Uint8Array): string {
|
||||
const hash = nobleSha256(entropyBuffer);
|
||||
return bytesToBinary(Array.from(hash)).slice(0, (entropyBuffer.length * 8) / 32);
|
||||
}
|
||||
|
||||
export function bip39Generate(_words: 12 | 15 | 18 | 21 | 24): string {
|
||||
throw new Error('bip39Generate: use @pezkuwi/util-crypto mnemonicGenerate instead');
|
||||
}
|
||||
|
||||
export function bip39ToEntropy(phrase: string): Uint8Array {
|
||||
const words = normalizeString(phrase).split(' ');
|
||||
if (words.length % 3 !== 0) {
|
||||
throw new Error('Invalid mnemonic');
|
||||
}
|
||||
// convert word indices to 11 bit binary strings
|
||||
const bits = words
|
||||
.map((word) => {
|
||||
const index = BIP39_WORDLIST.indexOf(word);
|
||||
if (index === -1) {
|
||||
throw new Error('Invalid mnemonic');
|
||||
}
|
||||
return index.toString(2).padStart(11, '0');
|
||||
})
|
||||
.join('');
|
||||
// split the binary string into ENT/CS
|
||||
const dividerIndex = Math.floor(bits.length / 33) * 32;
|
||||
const entropyBits = bits.slice(0, dividerIndex);
|
||||
const checksumBits = bits.slice(dividerIndex);
|
||||
// calculate the checksum and compare
|
||||
const matched = entropyBits.match(/(.{1,8})/g);
|
||||
const entropyBytes = matched?.map(binaryToByte);
|
||||
if (!entropyBytes || (entropyBytes.length % 4 !== 0) || (entropyBytes.length < 16) || (entropyBytes.length > 32)) {
|
||||
throw new Error('Invalid entropy');
|
||||
}
|
||||
const entropy = new Uint8Array(entropyBytes);
|
||||
if (deriveChecksumBits(entropy) !== checksumBits) {
|
||||
throw new Error('Invalid mnemonic checksum');
|
||||
}
|
||||
return entropy;
|
||||
}
|
||||
|
||||
export function bip39ToMiniSecret(phrase: string, password: string): Uint8Array {
|
||||
// Substrate uses entropy-based derivation (not BIP39's mnemonic string PBKDF2)
|
||||
const entropy = bip39ToEntropy(phrase);
|
||||
const salt = new TextEncoder().encode(`mnemonic${normalizeString(password)}`);
|
||||
// PBKDF2 on the entropy, not the mnemonic string
|
||||
return noblePbkdf2(nobleSha512, entropy, salt, { c: 2048, dkLen: 64 }).slice(0, 32);
|
||||
}
|
||||
|
||||
export function bip39ToSeed(phrase: string, password: string): Uint8Array {
|
||||
const salt = new TextEncoder().encode(`mnemonic${normalizeString(password)}`);
|
||||
const input = new TextEncoder().encode(normalizeString(phrase));
|
||||
return noblePbkdf2(nobleSha256, input, salt, { c: 2048, dkLen: 64 });
|
||||
}
|
||||
|
||||
export function ed25519KeypairFromSeed(_seed: Uint8Array): Uint8Array {
|
||||
throw new Error('ed25519KeypairFromSeed not yet implemented');
|
||||
}
|
||||
|
||||
export function ed25519Sign(_publicKey: Uint8Array, _secretKey: Uint8Array, _message: Uint8Array): Uint8Array {
|
||||
throw new Error('ed25519Sign not yet implemented');
|
||||
}
|
||||
|
||||
export function ed25519Verify(_signature: Uint8Array, _message: Uint8Array, _publicKey: Uint8Array): boolean {
|
||||
throw new Error('ed25519Verify not yet implemented');
|
||||
}
|
||||
|
||||
export function sr25519Agree(_publicKey: Uint8Array, _secretKey: Uint8Array): Uint8Array {
|
||||
throw new Error('sr25519Agree not yet implemented');
|
||||
}
|
||||
|
||||
export function sr25519DeriveKeypairHard(_pair: Uint8Array, _cc: Uint8Array): Uint8Array {
|
||||
throw new Error('sr25519DeriveKeypairHard not yet implemented');
|
||||
}
|
||||
|
||||
export function sr25519DeriveKeypairSoft(_pair: Uint8Array, _cc: Uint8Array): Uint8Array {
|
||||
throw new Error('sr25519DeriveKeypairSoft not yet implemented');
|
||||
}
|
||||
|
||||
export function sr25519DerivePublicSoft(_publicKey: Uint8Array, _cc: Uint8Array): Uint8Array {
|
||||
throw new Error('sr25519DerivePublicSoft not yet implemented');
|
||||
}
|
||||
|
||||
export function vrfSign(_secretKey: Uint8Array, _context: Uint8Array, _message: Uint8Array, _extra: Uint8Array): Uint8Array {
|
||||
throw new Error('vrfSign not yet implemented');
|
||||
}
|
||||
|
||||
export function vrfVerify(_publicKey: Uint8Array, _context: Uint8Array, _message: Uint8Array, _extra: Uint8Array, _outAndProof: Uint8Array): boolean {
|
||||
throw new Error('vrfVerify not yet implemented');
|
||||
}
|
||||
|
||||
export function secp256k1FromSeed(_seed: Uint8Array): Uint8Array {
|
||||
throw new Error('secp256k1FromSeed not yet implemented');
|
||||
}
|
||||
|
||||
export function secp256k1Compress(_publicKey: Uint8Array): Uint8Array {
|
||||
throw new Error('secp256k1Compress not yet implemented');
|
||||
}
|
||||
|
||||
export function secp256k1Expand(_publicKey: Uint8Array): Uint8Array {
|
||||
throw new Error('secp256k1Expand not yet implemented');
|
||||
}
|
||||
|
||||
export function secp256k1Recover(_msgHash: Uint8Array, _signature: Uint8Array, _recoveryId: number): Uint8Array {
|
||||
throw new Error('secp256k1Recover not yet implemented');
|
||||
}
|
||||
|
||||
export function secp256k1Sign(_msgHash: Uint8Array, _secretKey: Uint8Array): Uint8Array {
|
||||
throw new Error('secp256k1Sign not yet implemented');
|
||||
}
|
||||
|
||||
export function blake2b(data: Uint8Array, key: Uint8Array, size: number): Uint8Array {
|
||||
// size is already in bytes (passed by util-crypto's blake2AsU8a)
|
||||
if (key && key.length > 0) {
|
||||
return nobleBlake2b(data, { dkLen: size, key });
|
||||
}
|
||||
return nobleBlake2b(data, { dkLen: size });
|
||||
}
|
||||
|
||||
export function hmacSha256(key: Uint8Array, data: Uint8Array): Uint8Array {
|
||||
return hmac(nobleSha256, key, data);
|
||||
}
|
||||
|
||||
export function hmacSha512(key: Uint8Array, data: Uint8Array): Uint8Array {
|
||||
return hmac(nobleSha512, key, data);
|
||||
}
|
||||
|
||||
export function keccak256(data: Uint8Array): Uint8Array {
|
||||
return keccak_256(data);
|
||||
}
|
||||
|
||||
export function keccak512(data: Uint8Array): Uint8Array {
|
||||
return keccak_512(data);
|
||||
}
|
||||
|
||||
export function pbkdf2(data: Uint8Array, salt: Uint8Array, rounds: number): Uint8Array {
|
||||
return noblePbkdf2(nobleSha512, data, salt, { c: rounds, dkLen: 64 });
|
||||
}
|
||||
|
||||
export function scrypt(_password: Uint8Array, _salt: Uint8Array, _log2n: number, _r: number, _p: number): Uint8Array {
|
||||
// scrypt is rarely used - defer to @noble/hashes/scrypt if needed
|
||||
throw new Error('scrypt not yet implemented - use @pezkuwi/util-crypto scryptSync instead');
|
||||
}
|
||||
|
||||
export function sha256(data: Uint8Array): Uint8Array {
|
||||
return nobleSha256(data);
|
||||
}
|
||||
|
||||
export function sha512(data: Uint8Array): Uint8Array {
|
||||
return nobleSha512(data);
|
||||
}
|
||||
|
||||
// xxhash64 implementation
|
||||
const P64_1 = BigInt('11400714785074694791');
|
||||
const P64_2 = BigInt('14029467366897019727');
|
||||
const P64_3 = BigInt('1609587929392839161');
|
||||
const P64_4 = BigInt('9650029242287828579');
|
||||
const P64_5 = BigInt('2870177450012600261');
|
||||
const U64 = BigInt('0xffffffffffffffff');
|
||||
const _0n = BigInt(0);
|
||||
const _1n = BigInt(1);
|
||||
const _7n = BigInt(7);
|
||||
const _11n = BigInt(11);
|
||||
const _12n = BigInt(12);
|
||||
const _16n = BigInt(16);
|
||||
const _18n = BigInt(18);
|
||||
const _23n = BigInt(23);
|
||||
const _27n = BigInt(27);
|
||||
const _29n = BigInt(29);
|
||||
const _31n = BigInt(31);
|
||||
const _32n = BigInt(32);
|
||||
const _33n = BigInt(33);
|
||||
const _64n = BigInt(64);
|
||||
const _256n = BigInt(256);
|
||||
|
||||
function rotl(a: bigint, b: bigint): bigint {
|
||||
const c = a & U64;
|
||||
return ((c << b) | (c >> (_64n - b))) & U64;
|
||||
}
|
||||
|
||||
function fromU8a(u8a: Uint8Array, p: number, count: number): bigint {
|
||||
const bigints = new Array<bigint>(count);
|
||||
let offset = 0;
|
||||
for (let i = 0; i < count; i++, offset += 2) {
|
||||
bigints[i] = BigInt(u8a[p + offset] | (u8a[p + 1 + offset] << 8));
|
||||
}
|
||||
let result = _0n;
|
||||
for (let i = count - 1; i >= 0; i--) {
|
||||
result = (result << _16n) + bigints[i];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function xxhashInit(seed: bigint, input: Uint8Array): { seed: bigint; u8a: Uint8Array; u8asize: number; v1: bigint; v2: bigint; v3: bigint; v4: bigint } {
|
||||
const state = {
|
||||
seed,
|
||||
u8a: new Uint8Array(32),
|
||||
u8asize: 0,
|
||||
v1: seed + P64_1 + P64_2,
|
||||
v2: seed + P64_2,
|
||||
v3: seed,
|
||||
v4: seed - P64_1
|
||||
};
|
||||
|
||||
if (input.length < 32) {
|
||||
state.u8a.set(input);
|
||||
state.u8asize = input.length;
|
||||
return state;
|
||||
}
|
||||
|
||||
const limit = input.length - 32;
|
||||
let p = 0;
|
||||
if (limit >= 0) {
|
||||
const adjustV = (v: bigint) => P64_1 * rotl(v + P64_2 * fromU8a(input, p, 4), _31n);
|
||||
do {
|
||||
state.v1 = adjustV(state.v1); p += 8;
|
||||
state.v2 = adjustV(state.v2); p += 8;
|
||||
state.v3 = adjustV(state.v3); p += 8;
|
||||
state.v4 = adjustV(state.v4); p += 8;
|
||||
} while (p <= limit);
|
||||
}
|
||||
|
||||
if (p < input.length) {
|
||||
state.u8a.set(input.subarray(p, input.length));
|
||||
state.u8asize = input.length - p;
|
||||
}
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
function xxhash64(input: Uint8Array, initSeed: number): Uint8Array {
|
||||
const { seed, u8a, u8asize, v1, v2, v3, v4 } = xxhashInit(BigInt(initSeed), input);
|
||||
let p = 0;
|
||||
let h64 = U64 & (BigInt(input.length) + (input.length >= 32
|
||||
? (((((((((rotl(v1, _1n) + rotl(v2, _7n) + rotl(v3, _12n) + rotl(v4, _18n)) ^ (P64_1 * rotl(v1 * P64_2, _31n))) * P64_1 + P64_4) ^ (P64_1 * rotl(v2 * P64_2, _31n))) * P64_1 + P64_4) ^ (P64_1 * rotl(v3 * P64_2, _31n))) * P64_1 + P64_4) ^ (P64_1 * rotl(v4 * P64_2, _31n))) * P64_1 + P64_4)
|
||||
: (seed + P64_5)));
|
||||
|
||||
while (p <= (u8asize - 8)) {
|
||||
h64 = U64 & (P64_4 + P64_1 * rotl(h64 ^ (P64_1 * rotl(P64_2 * fromU8a(u8a, p, 4), _31n)), _27n));
|
||||
p += 8;
|
||||
}
|
||||
if ((p + 4) <= u8asize) {
|
||||
h64 = U64 & (P64_3 + P64_2 * rotl(h64 ^ (P64_1 * fromU8a(u8a, p, 2)), _23n));
|
||||
p += 4;
|
||||
}
|
||||
while (p < u8asize) {
|
||||
h64 = U64 & (P64_1 * rotl(h64 ^ (P64_5 * BigInt(u8a[p++])), _11n));
|
||||
}
|
||||
h64 = U64 & (P64_2 * (h64 ^ (h64 >> _33n)));
|
||||
h64 = U64 & (P64_3 * (h64 ^ (h64 >> _29n)));
|
||||
h64 = U64 & (h64 ^ (h64 >> _32n));
|
||||
|
||||
const result = new Uint8Array(8);
|
||||
for (let i = 7; i >= 0; i--) {
|
||||
result[i] = Number(h64 % _256n);
|
||||
h64 = h64 / _256n;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
export function twox(data: Uint8Array, rounds: number): Uint8Array {
|
||||
const result = new Uint8Array(rounds * 8);
|
||||
for (let seed = 0; seed < rounds; seed++) {
|
||||
result.set(xxhash64(data, seed).reverse(), seed * 8);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
// Copyright 2019-2026 @pezkuwi/wasm-crypto authors & contributors
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
import './packageDetect.js';
|
||||
|
||||
// Re-export everything from bundle
|
||||
export * from './bundle.js';
|
||||
@@ -3,4 +3,4 @@
|
||||
|
||||
// Do not edit, auto-generated by @pezkuwi/dev
|
||||
|
||||
export const packageInfo = { name: '@pezkuwi/wasm-crypto', path: 'auto', type: 'auto', version: '7.5.10' };
|
||||
export const packageInfo = { name: '@pezkuwi/wasm-crypto', path: 'auto', type: 'auto', version: '7.5.15' };
|
||||
@@ -14,12 +14,117 @@
|
||||
"url": "https://github.com/pezkuwichain/pezkuwi-wasm.git"
|
||||
},
|
||||
"sideEffects": [
|
||||
"./packageDetect.js",
|
||||
"./packageDetect.cjs"
|
||||
"./build/packageDetect.js",
|
||||
"./build/cjs/packageDetect.js"
|
||||
],
|
||||
"type": "module",
|
||||
"version": "7.5.10",
|
||||
"main": "index.js",
|
||||
"types": "./build/index.d.ts",
|
||||
"version": "7.5.15",
|
||||
"main": "./build/cjs/index.js",
|
||||
"module": "./build/index.js",
|
||||
"exports": {
|
||||
".": {
|
||||
"module": {
|
||||
"types": "./build/index.d.ts",
|
||||
"default": "./build/index.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/index.d.ts",
|
||||
"default": "./build/cjs/index.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/index.d.ts",
|
||||
"default": "./build/index.js"
|
||||
}
|
||||
},
|
||||
"./base64": {
|
||||
"module": {
|
||||
"types": "./build/base64.d.ts",
|
||||
"default": "./build/base64.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/base64.d.ts",
|
||||
"default": "./build/cjs/base64.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/base64.d.ts",
|
||||
"default": "./build/base64.js"
|
||||
}
|
||||
},
|
||||
"./bundle": {
|
||||
"module": {
|
||||
"types": "./build/bundle.d.ts",
|
||||
"default": "./build/bundle.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/bundle.d.ts",
|
||||
"default": "./build/cjs/bundle.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/bundle.d.ts",
|
||||
"default": "./build/bundle.js"
|
||||
}
|
||||
},
|
||||
"./cjs/*": "./build/cjs/*.js",
|
||||
"./cjs/package.json": "./build/cjs/package.json",
|
||||
"./fflate": {
|
||||
"module": {
|
||||
"types": "./build/fflate.d.ts",
|
||||
"default": "./build/fflate.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/fflate.d.ts",
|
||||
"default": "./build/cjs/fflate.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/fflate.d.ts",
|
||||
"default": "./build/fflate.js"
|
||||
}
|
||||
},
|
||||
"./package.json": "./package.json",
|
||||
"./packageDetect": {
|
||||
"module": {
|
||||
"types": "./build/packageDetect.d.ts",
|
||||
"default": "./build/packageDetect.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/packageDetect.d.ts",
|
||||
"default": "./build/cjs/packageDetect.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/packageDetect.d.ts",
|
||||
"default": "./build/packageDetect.js"
|
||||
}
|
||||
},
|
||||
"./packageInfo": {
|
||||
"module": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/packageInfo.d.ts",
|
||||
"default": "./build/cjs/packageInfo.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
}
|
||||
},
|
||||
"./packageInfo.js": {
|
||||
"module": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
},
|
||||
"require": {
|
||||
"types": "./build/cjs/packageInfo.d.ts",
|
||||
"default": "./build/cjs/packageInfo.js"
|
||||
},
|
||||
"default": {
|
||||
"types": "./build/packageInfo.d.ts",
|
||||
"default": "./build/packageInfo.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": "^2.7.0"
|
||||
},
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
|
||||
// Do not edit, auto-generated by @pezkuwi/dev
|
||||
|
||||
export const packageInfo = { name: '@pezkuwi/wasm-util', path: 'auto', type: 'auto', version: '7.5.10' };
|
||||
export const packageInfo = { name: '@pezkuwi/wasm-util', path: 'auto', type: 'auto', version: '7.5.15' };
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
set -e
|
||||
|
||||
source ../scripts/rust-version.sh
|
||||
source scripts/rust-version.sh
|
||||
|
||||
WSM=$PKG_NAME/build-wasm/wasm_bg.wasm
|
||||
OPT=$PKG_NAME/build-wasm/wasm_opt.wasm
|
||||
@@ -19,7 +19,7 @@ cd $PKG_NAME
|
||||
if [ "$RUST_VER" == "stable" ]; then
|
||||
RUSTC_BOOTSTRAP=1 cargo build --target wasm32-unknown-unknown --release -Z build-std=std,panic_abort
|
||||
else
|
||||
rustup run $RUST_VER xargo build --target wasm32-unknown-unknown --release --locked
|
||||
rustup run $RUST_VER xargo build --target wasm32-unknown-unknown --release
|
||||
fi
|
||||
cd ..
|
||||
|
||||
|
||||
@@ -3,4 +3,4 @@
|
||||
# This software may be modified and distributed under the terms
|
||||
# of the Apache-2.0 license. See the LICENSE file for details.
|
||||
|
||||
RUST_VER=nightly-2022-06-24
|
||||
RUST_VER=stable
|
||||
@@ -0,0 +1,222 @@
|
||||
// Quick test of bizinikiwi WASM integration
|
||||
import { createRequire } from 'module';
|
||||
import crypto from 'crypto';
|
||||
|
||||
// First let's test if the WASM bytes are correct
|
||||
const require = createRequire(import.meta.url);
|
||||
const { bytes, lenIn, lenOut } = require('./packages/wasm-crypto-wasm/src/cjs/bytes.js');
|
||||
|
||||
console.log('=== Testing Bizinikiwi WASM ===');
|
||||
console.log('Compressed size:', lenIn);
|
||||
console.log('Uncompressed size:', lenOut);
|
||||
|
||||
// Decompress and test
|
||||
import zlib from 'zlib';
|
||||
|
||||
const compressed = Buffer.from(bytes, 'base64');
|
||||
console.log('Actual compressed bytes:', compressed.length);
|
||||
|
||||
const wasmBytes = zlib.inflateSync(compressed);
|
||||
console.log('Actual WASM bytes:', wasmBytes.length);
|
||||
|
||||
// Test instantiation with the proper imports
|
||||
const cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
|
||||
let cachedUint8ArrayMemory = null;
|
||||
let wasm = null;
|
||||
let WASM_VECTOR_LEN = 0;
|
||||
|
||||
function getUint8ArrayMemory() {
|
||||
if (cachedUint8ArrayMemory === null || cachedUint8ArrayMemory.byteLength === 0) {
|
||||
cachedUint8ArrayMemory = new Uint8Array(wasm.memory.buffer);
|
||||
}
|
||||
return cachedUint8ArrayMemory;
|
||||
}
|
||||
|
||||
function getStringFromWasm(ptr, len) {
|
||||
ptr = ptr >>> 0;
|
||||
return cachedTextDecoder.decode(getUint8ArrayMemory().subarray(ptr, ptr + len));
|
||||
}
|
||||
|
||||
function getArrayU8FromWasm(ptr, len) {
|
||||
ptr = ptr >>> 0;
|
||||
return getUint8ArrayMemory().subarray(ptr / 1, ptr / 1 + len);
|
||||
}
|
||||
|
||||
function passArray8ToWasm(arg, malloc) {
|
||||
const ptr = malloc(arg.length * 1, 1) >>> 0;
|
||||
getUint8ArrayMemory().set(arg, ptr / 1);
|
||||
WASM_VECTOR_LEN = arg.length;
|
||||
return ptr;
|
||||
}
|
||||
|
||||
// Externref table helpers
|
||||
function addToExternrefTable(obj) {
|
||||
const idx = wasm.__externref_table_alloc();
|
||||
wasm.__wbindgen_externrefs.set(idx, obj);
|
||||
return idx;
|
||||
}
|
||||
|
||||
function takeFromExternrefTable(idx) {
|
||||
const value = wasm.__wbindgen_externrefs.get(idx);
|
||||
wasm.__externref_table_dealloc(idx);
|
||||
return value;
|
||||
}
|
||||
|
||||
function isLikeNone(x) {
|
||||
return x === undefined || x === null;
|
||||
}
|
||||
|
||||
function handleError(f, args) {
|
||||
try {
|
||||
return f.apply(null, args);
|
||||
} catch (e) {
|
||||
const idx = addToExternrefTable(e);
|
||||
wasm.__wbindgen_exn_store(idx);
|
||||
}
|
||||
}
|
||||
|
||||
// WASM imports
|
||||
const import0 = {
|
||||
__wbg___wbindgen_is_function_0095a73b8b156f76: (arg0) => typeof(arg0) === 'function',
|
||||
__wbg___wbindgen_is_object_5ae8e5880f2c1fbd: (arg0) => typeof(arg0) === 'object' && arg0 !== null,
|
||||
__wbg___wbindgen_is_string_cd444516edc5b180: (arg0) => typeof(arg0) === 'string',
|
||||
__wbg___wbindgen_is_undefined_9e4d92534c42d778: (arg0) => arg0 === undefined,
|
||||
__wbg___wbindgen_throw_be289d5034ed271b: (arg0, arg1) => { throw new Error(getStringFromWasm(arg0, arg1)); },
|
||||
__wbg_call_389efe28435a9388: function() { return handleError((arg0, arg1) => arg0.call(arg1), arguments); },
|
||||
__wbg_call_4708e0c13bdc8e95: function() { return handleError((arg0, arg1, arg2) => arg0.call(arg1, arg2), arguments); },
|
||||
__wbg_crypto_86f2631e91b51511: (arg0) => arg0.crypto,
|
||||
__wbg_getRandomValues_b3f15fcbfabb0f8b: function() { return handleError((arg0, arg1) => arg0.getRandomValues(arg1), arguments); },
|
||||
__wbg_length_32ed9a279acd054c: (arg0) => arg0.length,
|
||||
__wbg_msCrypto_d562bbe83e0d4b91: (arg0) => arg0.msCrypto,
|
||||
__wbg_new_no_args_1c7c842f08d00ebb: (arg0, arg1) => new Function(getStringFromWasm(arg0, arg1)),
|
||||
__wbg_new_with_length_a2c39cbe88fd8ff1: (arg0) => new Uint8Array(arg0 >>> 0),
|
||||
__wbg_node_e1f24f89a7336c2e: (arg0) => arg0.node,
|
||||
__wbg_process_3975fd6c72f520aa: (arg0) => arg0.process,
|
||||
__wbg_prototypesetcall_bdcdcc5842e4d77d: (arg0, arg1, arg2) => Uint8Array.prototype.set.call(getArrayU8FromWasm(arg0, arg1), arg2),
|
||||
__wbg_randomFillSync_f8c153b79f285817: function() { return handleError((arg0, arg1) => arg0.randomFillSync(arg1), arguments); },
|
||||
__wbg_require_b74f47fc2d022fd6: function() { return handleError(() => module.require, arguments); },
|
||||
__wbg_static_accessor_GLOBAL_12837167ad935116: () => isLikeNone(global) ? 0 : addToExternrefTable(global),
|
||||
__wbg_static_accessor_GLOBAL_THIS_e628e89ab3b1c95f: () => isLikeNone(globalThis) ? 0 : addToExternrefTable(globalThis),
|
||||
__wbg_static_accessor_SELF_a621d3dfbb60d0ce: () => isLikeNone(typeof self === 'undefined' ? null : self) ? 0 : addToExternrefTable(self),
|
||||
__wbg_static_accessor_WINDOW_f8727f0cf888e0bd: () => isLikeNone(typeof window === 'undefined' ? null : window) ? 0 : addToExternrefTable(window),
|
||||
__wbg_subarray_a96e1fef17ed23cb: (arg0, arg1, arg2) => arg0.subarray(arg1 >>> 0, arg2 >>> 0),
|
||||
__wbg_versions_4e31226f5e8dc909: (arg0) => arg0.versions,
|
||||
__wbindgen_cast_0000000000000001: (arg0, arg1) => getArrayU8FromWasm(arg0, arg1),
|
||||
__wbindgen_cast_0000000000000002: (arg0, arg1) => getStringFromWasm(arg0, arg1),
|
||||
__wbindgen_init_externref_table: () => {
|
||||
const table = wasm.__wbindgen_externrefs;
|
||||
const offset = table.grow(4);
|
||||
table.set(0, undefined);
|
||||
table.set(offset + 0, undefined);
|
||||
table.set(offset + 1, null);
|
||||
table.set(offset + 2, true);
|
||||
table.set(offset + 3, false);
|
||||
},
|
||||
};
|
||||
|
||||
const imports = {
|
||||
'./pezkuwi_wasm_crypto_bg.js': import0,
|
||||
};
|
||||
|
||||
console.log('\nInstantiating WASM...');
|
||||
|
||||
try {
|
||||
const result = await WebAssembly.instantiate(wasmBytes, imports);
|
||||
wasm = result.instance.exports;
|
||||
|
||||
console.log('WASM exports:', Object.keys(wasm).slice(0, 10), '...');
|
||||
|
||||
// Initialize
|
||||
if (wasm.__wbindgen_start) {
|
||||
wasm.__wbindgen_start();
|
||||
console.log('Called __wbindgen_start');
|
||||
}
|
||||
|
||||
// Test get_signing_context
|
||||
console.log('\n--- Testing get_signing_context ---');
|
||||
const ret = wasm.get_signing_context();
|
||||
const signingContext = getStringFromWasm(ret[0], ret[1]);
|
||||
wasm.__wbindgen_free(ret[0], ret[1], 1);
|
||||
console.log('Signing context:', signingContext);
|
||||
|
||||
if (signingContext === 'bizinikiwi') {
|
||||
console.log('BIZINIKIWI CONTEXT CONFIRMED!');
|
||||
} else {
|
||||
console.log('WARNING: Expected "bizinikiwi" but got:', signingContext);
|
||||
}
|
||||
|
||||
// Test sr25519_keypair_from_seed
|
||||
console.log('\n--- Testing sr25519_keypair_from_seed ---');
|
||||
// Use a fixed seed for reproducible testing (normally derived from mnemonic)
|
||||
const seed = new Uint8Array([
|
||||
0x9d, 0x61, 0xb1, 0x9d, 0xef, 0xfd, 0x5a, 0x60,
|
||||
0xba, 0x84, 0x4a, 0xf4, 0x92, 0xec, 0x2c, 0xc4,
|
||||
0x44, 0x49, 0xc5, 0x69, 0x7b, 0x32, 0x69, 0x19,
|
||||
0x70, 0x3b, 0xac, 0x03, 0x1c, 0xae, 0x7f, 0x60
|
||||
]);
|
||||
console.log('Seed:', Buffer.from(seed).toString('hex'));
|
||||
|
||||
const ptr0 = passArray8ToWasm(seed, wasm.__wbindgen_malloc);
|
||||
const len0 = WASM_VECTOR_LEN;
|
||||
const kpRet = wasm.sr25519_keypair_from_seed(ptr0, len0);
|
||||
|
||||
if (kpRet[3]) {
|
||||
console.log('ERROR: keypair generation failed');
|
||||
console.log(takeFromExternrefTable(kpRet[2]));
|
||||
} else {
|
||||
const keypair = getArrayU8FromWasm(kpRet[0], kpRet[1]).slice();
|
||||
wasm.__wbindgen_free(kpRet[0], kpRet[1] * 1, 1);
|
||||
|
||||
const secretKey = keypair.slice(0, 64);
|
||||
const publicKey = keypair.slice(64, 96);
|
||||
|
||||
console.log('Keypair length:', keypair.length);
|
||||
console.log('Public key:', Buffer.from(publicKey).toString('hex'));
|
||||
|
||||
// Test sr25519_sign
|
||||
console.log('\n--- Testing sr25519_sign ---');
|
||||
const message = new TextEncoder().encode('test message');
|
||||
|
||||
const ptr1 = passArray8ToWasm(publicKey, wasm.__wbindgen_malloc);
|
||||
const len1 = WASM_VECTOR_LEN;
|
||||
const ptr2 = passArray8ToWasm(secretKey, wasm.__wbindgen_malloc);
|
||||
const len2 = WASM_VECTOR_LEN;
|
||||
const ptr3 = passArray8ToWasm(message, wasm.__wbindgen_malloc);
|
||||
const len3 = WASM_VECTOR_LEN;
|
||||
|
||||
const sigRet = wasm.sr25519_sign(ptr1, len1, ptr2, len2, ptr3, len3);
|
||||
|
||||
if (sigRet[3]) {
|
||||
console.log('ERROR: signing failed');
|
||||
console.log(takeFromExternrefTable(sigRet[2]));
|
||||
} else {
|
||||
const signature = getArrayU8FromWasm(sigRet[0], sigRet[1]).slice();
|
||||
wasm.__wbindgen_free(sigRet[0], sigRet[1] * 1, 1);
|
||||
|
||||
console.log('Signature:', Buffer.from(signature).toString('hex').slice(0, 64) + '...');
|
||||
console.log('Signature length:', signature.length);
|
||||
|
||||
// Test sr25519_verify
|
||||
console.log('\n--- Testing sr25519_verify ---');
|
||||
const vPtr0 = passArray8ToWasm(signature, wasm.__wbindgen_malloc);
|
||||
const vLen0 = WASM_VECTOR_LEN;
|
||||
const vPtr1 = passArray8ToWasm(message, wasm.__wbindgen_malloc);
|
||||
const vLen1 = WASM_VECTOR_LEN;
|
||||
const vPtr2 = passArray8ToWasm(publicKey, wasm.__wbindgen_malloc);
|
||||
const vLen2 = WASM_VECTOR_LEN;
|
||||
|
||||
const verified = wasm.sr25519_verify(vPtr0, vLen0, vPtr1, vLen1, vPtr2, vLen2);
|
||||
console.log('Verification result:', verified !== 0 ? 'SUCCESS' : 'FAILED');
|
||||
|
||||
if (verified !== 0) {
|
||||
console.log('\n=======================================');
|
||||
console.log('BIZINIKIWI WASM INTEGRATION WORKING!');
|
||||
console.log('=======================================');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
console.error('Error:', error.message);
|
||||
console.error(error.stack);
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
// Test the built package
|
||||
import { createRequire } from 'module';
|
||||
const require = createRequire(import.meta.url);
|
||||
|
||||
// Load the built bundle
|
||||
const bundle = await import('./packages/wasm-crypto/build/bundle.js');
|
||||
|
||||
console.log('=== Testing Built Bundle ===');
|
||||
console.log('Available exports:', Object.keys(bundle));
|
||||
|
||||
// Wait for WASM to initialize
|
||||
console.log('\nInitializing WASM...');
|
||||
const ready = await bundle.waitReady();
|
||||
console.log('WASM ready:', ready);
|
||||
|
||||
if (ready) {
|
||||
// Test signing context
|
||||
console.log('\n--- Testing getSigningContext ---');
|
||||
const context = bundle.getSigningContext();
|
||||
console.log('Signing context:', context);
|
||||
|
||||
if (context === 'bizinikiwi') {
|
||||
console.log('BIZINIKIWI CONFIRMED!');
|
||||
} else {
|
||||
console.log('WARNING: Expected "bizinikiwi" but got:', context);
|
||||
}
|
||||
|
||||
// Test sr25519KeypairFromSeed
|
||||
console.log('\n--- Testing sr25519KeypairFromSeed ---');
|
||||
const seed = new Uint8Array([
|
||||
0x9d, 0x61, 0xb1, 0x9d, 0xef, 0xfd, 0x5a, 0x60,
|
||||
0xba, 0x84, 0x4a, 0xf4, 0x92, 0xec, 0x2c, 0xc4,
|
||||
0x44, 0x49, 0xc5, 0x69, 0x7b, 0x32, 0x69, 0x19,
|
||||
0x70, 0x3b, 0xac, 0x03, 0x1c, 0xae, 0x7f, 0x60
|
||||
]);
|
||||
|
||||
const keypair = bundle.sr25519KeypairFromSeed(seed);
|
||||
const secretKey = keypair.slice(0, 64);
|
||||
const publicKey = keypair.slice(64, 96);
|
||||
|
||||
console.log('Keypair length:', keypair.length);
|
||||
console.log('Public key:', Buffer.from(publicKey).toString('hex'));
|
||||
|
||||
// Test sr25519Sign
|
||||
console.log('\n--- Testing sr25519Sign ---');
|
||||
const message = new TextEncoder().encode('test message');
|
||||
const signature = bundle.sr25519Sign(publicKey, secretKey, message);
|
||||
console.log('Signature:', Buffer.from(signature).toString('hex').slice(0, 64) + '...');
|
||||
|
||||
// Test sr25519Verify
|
||||
console.log('\n--- Testing sr25519Verify ---');
|
||||
const verified = bundle.sr25519Verify(signature, message, publicKey);
|
||||
console.log('Verification:', verified ? 'SUCCESS' : 'FAILED');
|
||||
|
||||
if (verified) {
|
||||
console.log('\n=======================================');
|
||||
console.log('BIZINIKIWI WASM PACKAGE WORKING!');
|
||||
console.log('=======================================');
|
||||
}
|
||||
} else {
|
||||
console.log('FAILED to initialize WASM');
|
||||
}
|
||||
+238
@@ -0,0 +1,238 @@
|
||||
// Direct test without going through npm package resolution
|
||||
import zlib from 'zlib';
|
||||
|
||||
// Load bytes directly from the source
|
||||
const bytesModule = await import('./packages/wasm-crypto-wasm/src/cjs/bytes.js');
|
||||
const { bytes, lenIn, lenOut } = bytesModule;
|
||||
|
||||
console.log('=== Testing Bizinikiwi WASM Directly ===');
|
||||
console.log('Compressed size:', lenIn);
|
||||
console.log('Uncompressed size:', lenOut);
|
||||
|
||||
// Decompress
|
||||
const compressed = Buffer.from(bytes, 'base64');
|
||||
const wasmBytes = zlib.inflateSync(compressed);
|
||||
console.log('WASM size:', wasmBytes.length);
|
||||
|
||||
// Check import module name
|
||||
const wasmStr = wasmBytes.toString('utf8', 0, 500);
|
||||
const moduleNameMatch = wasmStr.match(/pezkuwi_wasm_crypto_bg\.js/);
|
||||
if (moduleNameMatch) {
|
||||
console.log('Import module: ./pezkuwi_wasm_crypto_bg.js (bizinikiwi WASM confirmed!)');
|
||||
} else {
|
||||
console.log('Import module: NOT bizinikiwi WASM');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// WASM helpers
|
||||
let wasm = null;
|
||||
let cachedUint8ArrayMemory = null;
|
||||
let cachedTextDecoder = null;
|
||||
let WASM_VECTOR_LEN = 0;
|
||||
|
||||
function getUint8ArrayMemory() {
|
||||
if (cachedUint8ArrayMemory === null || cachedUint8ArrayMemory.byteLength === 0) {
|
||||
cachedUint8ArrayMemory = new Uint8Array(wasm['memory'].buffer);
|
||||
}
|
||||
return cachedUint8ArrayMemory;
|
||||
}
|
||||
|
||||
function getStringFromWasm(ptr, len) {
|
||||
if (!cachedTextDecoder) {
|
||||
cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
|
||||
cachedTextDecoder.decode();
|
||||
}
|
||||
ptr = ptr >>> 0;
|
||||
return cachedTextDecoder.decode(getUint8ArrayMemory().subarray(ptr, ptr + len));
|
||||
}
|
||||
|
||||
function getArrayU8FromWasm(ptr, len) {
|
||||
ptr = ptr >>> 0;
|
||||
return getUint8ArrayMemory().subarray(ptr / 1, ptr / 1 + len);
|
||||
}
|
||||
|
||||
function passArray8ToWasm(arg, malloc) {
|
||||
const ptr = malloc(arg.length * 1, 1) >>> 0;
|
||||
getUint8ArrayMemory().set(arg, ptr / 1);
|
||||
WASM_VECTOR_LEN = arg.length;
|
||||
return ptr;
|
||||
}
|
||||
|
||||
function addToExternrefTable(obj) {
|
||||
const idx = wasm['__externref_table_alloc']();
|
||||
wasm['__wbindgen_externrefs'].set(idx, obj);
|
||||
return idx;
|
||||
}
|
||||
|
||||
function takeFromExternrefTable(idx) {
|
||||
const value = wasm['__wbindgen_externrefs'].get(idx);
|
||||
wasm['__externref_table_dealloc'](idx);
|
||||
return value;
|
||||
}
|
||||
|
||||
function isLikeNone(x) {
|
||||
return x === undefined || x === null;
|
||||
}
|
||||
|
||||
function handleError(f, args) {
|
||||
try {
|
||||
return f.apply(null, args);
|
||||
} catch (e) {
|
||||
const idx = addToExternrefTable(e);
|
||||
wasm['__wbindgen_exn_store'](idx);
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
// WASM imports
|
||||
import crypto from 'crypto';
|
||||
|
||||
const import0 = {
|
||||
__wbg___wbindgen_is_function_0095a73b8b156f76: (arg0) => typeof(arg0) === 'function',
|
||||
__wbg___wbindgen_is_object_5ae8e5880f2c1fbd: (arg0) => typeof(arg0) === 'object' && arg0 !== null,
|
||||
__wbg___wbindgen_is_string_cd444516edc5b180: (arg0) => typeof(arg0) === 'string',
|
||||
__wbg___wbindgen_is_undefined_9e4d92534c42d778: (arg0) => arg0 === undefined,
|
||||
__wbg___wbindgen_throw_be289d5034ed271b: (arg0, arg1) => { throw new Error(getStringFromWasm(arg0, arg1)); },
|
||||
__wbg_call_389efe28435a9388: function() { return handleError((arg0, arg1) => arg0.call(arg1), arguments); },
|
||||
__wbg_call_4708e0c13bdc8e95: function() { return handleError((arg0, arg1, arg2) => arg0.call(arg1, arg2), arguments); },
|
||||
__wbg_crypto_86f2631e91b51511: (arg0) => arg0.crypto,
|
||||
__wbg_getRandomValues_b3f15fcbfabb0f8b: function() { return handleError((arg0, arg1) => arg0.getRandomValues(arg1), arguments); },
|
||||
__wbg_length_32ed9a279acd054c: (arg0) => arg0.length,
|
||||
__wbg_msCrypto_d562bbe83e0d4b91: (arg0) => arg0.msCrypto,
|
||||
__wbg_new_no_args_1c7c842f08d00ebb: (arg0, arg1) => new Function(getStringFromWasm(arg0, arg1)),
|
||||
__wbg_new_with_length_a2c39cbe88fd8ff1: (arg0) => new Uint8Array(arg0 >>> 0),
|
||||
__wbg_node_e1f24f89a7336c2e: (arg0) => arg0.node,
|
||||
__wbg_process_3975fd6c72f520aa: (arg0) => arg0.process,
|
||||
__wbg_prototypesetcall_bdcdcc5842e4d77d: (arg0, arg1, arg2) => Uint8Array.prototype.set.call(getArrayU8FromWasm(arg0, arg1), arg2),
|
||||
__wbg_randomFillSync_f8c153b79f285817: function() { return handleError((arg0, arg1) => arg0.randomFillSync(arg1), arguments); },
|
||||
__wbg_require_b74f47fc2d022fd6: function() { return handleError(() => module.require, arguments); },
|
||||
__wbg_static_accessor_GLOBAL_12837167ad935116: () => isLikeNone(global) ? 0 : addToExternrefTable(global),
|
||||
__wbg_static_accessor_GLOBAL_THIS_e628e89ab3b1c95f: () => isLikeNone(globalThis) ? 0 : addToExternrefTable(globalThis),
|
||||
__wbg_static_accessor_SELF_a621d3dfbb60d0ce: () => isLikeNone(typeof self === 'undefined' ? null : self) ? 0 : addToExternrefTable(self),
|
||||
__wbg_static_accessor_WINDOW_f8727f0cf888e0bd: () => isLikeNone(typeof window === 'undefined' ? null : window) ? 0 : addToExternrefTable(window),
|
||||
__wbg_subarray_a96e1fef17ed23cb: (arg0, arg1, arg2) => arg0.subarray(arg1 >>> 0, arg2 >>> 0),
|
||||
__wbg_versions_4e31226f5e8dc909: (arg0) => arg0.versions,
|
||||
__wbindgen_cast_0000000000000001: (arg0, arg1) => getArrayU8FromWasm(arg0, arg1),
|
||||
__wbindgen_cast_0000000000000002: (arg0, arg1) => getStringFromWasm(arg0, arg1),
|
||||
__wbindgen_init_externref_table: () => {
|
||||
const table = wasm['__wbindgen_externrefs'];
|
||||
const offset = table.grow(4);
|
||||
table.set(0, undefined);
|
||||
table.set(offset + 0, undefined);
|
||||
table.set(offset + 1, null);
|
||||
table.set(offset + 2, true);
|
||||
table.set(offset + 3, false);
|
||||
},
|
||||
};
|
||||
|
||||
const imports = {
|
||||
'./pezkuwi_wasm_crypto_bg.js': import0,
|
||||
};
|
||||
|
||||
console.log('\nInstantiating WASM...');
|
||||
|
||||
try {
|
||||
const result = await WebAssembly.instantiate(wasmBytes, imports);
|
||||
wasm = result.instance.exports;
|
||||
|
||||
console.log('WASM initialized!');
|
||||
|
||||
// Initialize
|
||||
if (wasm['__wbindgen_start']) {
|
||||
wasm['__wbindgen_start']();
|
||||
console.log('Called __wbindgen_start');
|
||||
}
|
||||
|
||||
// Test get_signing_context
|
||||
console.log('\n--- Testing get_signing_context ---');
|
||||
const ret = wasm['get_signing_context']();
|
||||
const signingContext = getStringFromWasm(ret[0], ret[1]);
|
||||
wasm['__wbindgen_free'](ret[0], ret[1], 1);
|
||||
console.log('Signing context:', signingContext);
|
||||
|
||||
if (signingContext === 'bizinikiwi') {
|
||||
console.log('BIZINIKIWI CONTEXT CONFIRMED!');
|
||||
} else {
|
||||
console.log('WARNING: Expected "bizinikiwi" but got:', signingContext);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Test sr25519_keypair_from_seed
|
||||
console.log('\n--- Testing sr25519_keypair_from_seed ---');
|
||||
const seed = new Uint8Array([
|
||||
0x9d, 0x61, 0xb1, 0x9d, 0xef, 0xfd, 0x5a, 0x60,
|
||||
0xba, 0x84, 0x4a, 0xf4, 0x92, 0xec, 0x2c, 0xc4,
|
||||
0x44, 0x49, 0xc5, 0x69, 0x7b, 0x32, 0x69, 0x19,
|
||||
0x70, 0x3b, 0xac, 0x03, 0x1c, 0xae, 0x7f, 0x60
|
||||
]);
|
||||
|
||||
const ptr0 = passArray8ToWasm(seed, wasm['__wbindgen_malloc']);
|
||||
const len0 = WASM_VECTOR_LEN;
|
||||
const kpRet = wasm['sr25519_keypair_from_seed'](ptr0, len0);
|
||||
|
||||
if (kpRet[3]) {
|
||||
console.log('ERROR: keypair generation failed');
|
||||
console.log(takeFromExternrefTable(kpRet[2]));
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const keypair = getArrayU8FromWasm(kpRet[0], kpRet[1]).slice();
|
||||
wasm['__wbindgen_free'](kpRet[0], kpRet[1] * 1, 1);
|
||||
|
||||
const secretKey = keypair.slice(0, 64);
|
||||
const publicKey = keypair.slice(64, 96);
|
||||
|
||||
console.log('Keypair length:', keypair.length);
|
||||
console.log('Public key:', Buffer.from(publicKey).toString('hex'));
|
||||
|
||||
// Test sr25519_sign
|
||||
console.log('\n--- Testing sr25519_sign ---');
|
||||
const message = new TextEncoder().encode('test message');
|
||||
|
||||
const ptr1 = passArray8ToWasm(publicKey, wasm['__wbindgen_malloc']);
|
||||
const len1 = WASM_VECTOR_LEN;
|
||||
const ptr2 = passArray8ToWasm(secretKey, wasm['__wbindgen_malloc']);
|
||||
const len2 = WASM_VECTOR_LEN;
|
||||
const ptr3 = passArray8ToWasm(message, wasm['__wbindgen_malloc']);
|
||||
const len3 = WASM_VECTOR_LEN;
|
||||
|
||||
const sigRet = wasm['sr25519_sign'](ptr1, len1, ptr2, len2, ptr3, len3);
|
||||
|
||||
if (sigRet[3]) {
|
||||
console.log('ERROR: signing failed');
|
||||
console.log(takeFromExternrefTable(sigRet[2]));
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const signature = getArrayU8FromWasm(sigRet[0], sigRet[1]).slice();
|
||||
wasm['__wbindgen_free'](sigRet[0], sigRet[1] * 1, 1);
|
||||
|
||||
console.log('Signature:', Buffer.from(signature).toString('hex').slice(0, 64) + '...');
|
||||
console.log('Signature length:', signature.length);
|
||||
|
||||
// Test sr25519_verify
|
||||
console.log('\n--- Testing sr25519_verify ---');
|
||||
const vPtr0 = passArray8ToWasm(signature, wasm['__wbindgen_malloc']);
|
||||
const vLen0 = WASM_VECTOR_LEN;
|
||||
const vPtr1 = passArray8ToWasm(message, wasm['__wbindgen_malloc']);
|
||||
const vLen1 = WASM_VECTOR_LEN;
|
||||
const vPtr2 = passArray8ToWasm(publicKey, wasm['__wbindgen_malloc']);
|
||||
const vLen2 = WASM_VECTOR_LEN;
|
||||
|
||||
const verified = wasm['sr25519_verify'](vPtr0, vLen0, vPtr1, vLen1, vPtr2, vLen2);
|
||||
console.log('Verification result:', verified !== 0 ? 'SUCCESS' : 'FAILED');
|
||||
|
||||
if (verified !== 0) {
|
||||
console.log('\n=========================================');
|
||||
console.log('BIZINIKIWI WASM BYTES.JS VERIFIED!');
|
||||
console.log('The npm package contains correct WASM');
|
||||
console.log('=========================================');
|
||||
} else {
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
console.error('Error:', error.message);
|
||||
console.error(error.stack);
|
||||
process.exit(1);
|
||||
}
|
||||
@@ -333,7 +333,7 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@noble/hashes@npm:1.8.0, @noble/hashes@npm:~1.8.0":
|
||||
"@noble/hashes@npm:1.8.0, @noble/hashes@npm:^1.3.3, @noble/hashes@npm:~1.8.0":
|
||||
version: 1.8.0
|
||||
resolution: "@noble/hashes@npm:1.8.0"
|
||||
checksum: 10/474b7f56bc6fb2d5b3a42132561e221b0ea4f91e590f4655312ca13667840896b34195e2b53b7f097ec080a1fdd3b58d902c2a8d0fbdf51d2e238b53808a177e
|
||||
@@ -661,12 +661,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@pezkuwi/wasm-bridge@npm:7.5.9, @pezkuwi/wasm-bridge@workspace:packages/wasm-bridge":
|
||||
"@pezkuwi/wasm-bridge@npm:7.5.13, @pezkuwi/wasm-bridge@workspace:packages/wasm-bridge":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@pezkuwi/wasm-bridge@workspace:packages/wasm-bridge"
|
||||
dependencies:
|
||||
"@pezkuwi/util": "npm:^14.0.1"
|
||||
"@pezkuwi/wasm-util": "npm:7.5.9"
|
||||
"@pezkuwi/wasm-util": "npm:7.5.13"
|
||||
"@pezkuwi/x-randomvalues": "npm:^14.0.1"
|
||||
tslib: "npm:^2.7.0"
|
||||
peerDependencies:
|
||||
@@ -675,7 +675,7 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@pezkuwi/wasm-crypto-asmjs@npm:7.5.9, @pezkuwi/wasm-crypto-asmjs@workspace:packages/wasm-crypto-asmjs":
|
||||
"@pezkuwi/wasm-crypto-asmjs@npm:7.5.13, @pezkuwi/wasm-crypto-asmjs@workspace:packages/wasm-crypto-asmjs":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@pezkuwi/wasm-crypto-asmjs@workspace:packages/wasm-crypto-asmjs"
|
||||
dependencies:
|
||||
@@ -686,15 +686,15 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@pezkuwi/wasm-crypto-init@npm:7.5.9, @pezkuwi/wasm-crypto-init@workspace:packages/wasm-crypto-init":
|
||||
"@pezkuwi/wasm-crypto-init@npm:7.5.13, @pezkuwi/wasm-crypto-init@workspace:packages/wasm-crypto-init":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@pezkuwi/wasm-crypto-init@workspace:packages/wasm-crypto-init"
|
||||
dependencies:
|
||||
"@pezkuwi/util": "npm:^14.0.1"
|
||||
"@pezkuwi/wasm-bridge": "npm:7.5.9"
|
||||
"@pezkuwi/wasm-crypto-asmjs": "npm:7.5.9"
|
||||
"@pezkuwi/wasm-crypto-wasm": "npm:7.5.9"
|
||||
"@pezkuwi/wasm-util": "npm:7.5.9"
|
||||
"@pezkuwi/wasm-bridge": "npm:7.5.13"
|
||||
"@pezkuwi/wasm-crypto-asmjs": "npm:7.5.13"
|
||||
"@pezkuwi/wasm-crypto-wasm": "npm:7.5.14"
|
||||
"@pezkuwi/wasm-util": "npm:7.5.13"
|
||||
"@pezkuwi/x-randomvalues": "npm:^14.0.1"
|
||||
tslib: "npm:^2.7.0"
|
||||
peerDependencies:
|
||||
@@ -703,12 +703,12 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@pezkuwi/wasm-crypto-wasm@npm:7.5.9, @pezkuwi/wasm-crypto-wasm@workspace:packages/wasm-crypto-wasm":
|
||||
"@pezkuwi/wasm-crypto-wasm@npm:7.5.14, @pezkuwi/wasm-crypto-wasm@workspace:packages/wasm-crypto-wasm":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@pezkuwi/wasm-crypto-wasm@workspace:packages/wasm-crypto-wasm"
|
||||
dependencies:
|
||||
"@pezkuwi/util": "npm:^14.0.1"
|
||||
"@pezkuwi/wasm-util": "npm:7.5.9"
|
||||
"@pezkuwi/wasm-util": "npm:7.5.13"
|
||||
tslib: "npm:^2.7.0"
|
||||
peerDependencies:
|
||||
"@pezkuwi/util": "*"
|
||||
@@ -719,12 +719,13 @@ __metadata:
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@pezkuwi/wasm-crypto@workspace:packages/wasm-crypto"
|
||||
dependencies:
|
||||
"@noble/hashes": "npm:^1.3.3"
|
||||
"@pezkuwi/util": "npm:^14.0.1"
|
||||
"@pezkuwi/wasm-bridge": "npm:7.5.9"
|
||||
"@pezkuwi/wasm-crypto-asmjs": "npm:7.5.9"
|
||||
"@pezkuwi/wasm-crypto-init": "npm:7.5.9"
|
||||
"@pezkuwi/wasm-crypto-wasm": "npm:7.5.9"
|
||||
"@pezkuwi/wasm-util": "npm:7.5.9"
|
||||
"@pezkuwi/wasm-bridge": "npm:7.5.13"
|
||||
"@pezkuwi/wasm-crypto-asmjs": "npm:7.5.13"
|
||||
"@pezkuwi/wasm-crypto-init": "npm:7.5.13"
|
||||
"@pezkuwi/wasm-crypto-wasm": "npm:7.5.14"
|
||||
"@pezkuwi/wasm-util": "npm:7.5.13"
|
||||
"@pezkuwi/x-randomvalues": "npm:^14.0.1"
|
||||
tslib: "npm:^2.7.0"
|
||||
peerDependencies:
|
||||
@@ -733,7 +734,7 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@pezkuwi/wasm-util@npm:7.5.9, @pezkuwi/wasm-util@workspace:packages/wasm-util":
|
||||
"@pezkuwi/wasm-util@npm:7.5.13, @pezkuwi/wasm-util@workspace:packages/wasm-util":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@pezkuwi/wasm-util@workspace:packages/wasm-util"
|
||||
dependencies:
|
||||
|
||||
Reference in new issue
Block a user