UNPKG

@puzzlehq/aleo-wasm-web

Version:
1,520 lines (1,440 loc) 183 kB
function spawnWorker(url, module, memory, address) { return new Promise((resolve) => { const worker = new Worker(url, { type: "module", }); worker.addEventListener("message", (event) => { // This is needed in Node to wait one extra tick, so that way // the Worker can fully initialize before we return. setTimeout(() => { resolve(worker); // When running in Node, this allows the process to exit // even though the Worker is still running. if (worker.unref) { worker.unref(); } }, 0); }, { capture: true, once: true, }); worker.postMessage({ module, memory, address, }); }); } let wasm; const heap = new Array(128).fill(undefined); heap.push(undefined, null, true, false); function getObject(idx) { return heap[idx]; } let heap_next = heap.length; function dropObject(idx) { if (idx < 132) return; heap[idx] = heap_next; heap_next = idx; } function takeObject(idx) { const ret = getObject(idx); dropObject(idx); return ret; } let WASM_VECTOR_LEN = 0; let cachedUint8ArrayMemory0 = null; function getUint8ArrayMemory0() { if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.buffer !== wasm.memory.buffer) { cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); } return cachedUint8ArrayMemory0; } const cachedTextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder('utf-8') : { encode: () => { throw Error('TextEncoder not available') } } ); const encodeString = function (arg, view) { const buf = cachedTextEncoder.encode(arg); view.set(buf); return { read: arg.length, written: buf.length }; }; function passStringToWasm0(arg, malloc, realloc) { if (realloc === undefined) { const buf = cachedTextEncoder.encode(arg); const ptr = malloc(buf.length, 1) >>> 0; getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf); WASM_VECTOR_LEN = buf.length; return ptr; } let len = arg.length; let ptr = malloc(len, 1) >>> 0; const mem = getUint8ArrayMemory0(); let offset = 0; for (; offset < len; offset++) { const code = arg.charCodeAt(offset); if (code > 0x7F) break; mem[ptr + offset] = code; } if (offset !== len) { if (offset !== 0) { arg = arg.slice(offset); } ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); const ret = encodeString(arg, view); offset += ret.written; ptr = realloc(ptr, len, offset, 1) >>> 0; } WASM_VECTOR_LEN = offset; return ptr; } function isLikeNone(x) { return x === undefined || x === null; } let cachedDataViewMemory0 = null; function getDataViewMemory0() { if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer !== wasm.memory.buffer) { cachedDataViewMemory0 = new DataView(wasm.memory.buffer); } return cachedDataViewMemory0; } const cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } ); if (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); } function getStringFromWasm0(ptr, len) { ptr = ptr >>> 0; return cachedTextDecoder.decode(getUint8ArrayMemory0().slice(ptr, ptr + len)); } function addHeapObject(obj) { if (heap_next === heap.length) heap.push(heap.length + 1); const idx = heap_next; heap_next = heap[idx]; heap[idx] = obj; return idx; } function debugString(val) { // primitive types const type = typeof val; if (type == 'number' || type == 'boolean' || val == null) { return `${val}`; } if (type == 'string') { return `"${val}"`; } if (type == 'symbol') { const description = val.description; if (description == null) { return 'Symbol'; } else { return `Symbol(${description})`; } } if (type == 'function') { const name = val.name; if (typeof name == 'string' && name.length > 0) { return `Function(${name})`; } else { return 'Function'; } } // objects if (Array.isArray(val)) { const length = val.length; let debug = '['; if (length > 0) { debug += debugString(val[0]); } for(let i = 1; i < length; i++) { debug += ', ' + debugString(val[i]); } debug += ']'; return debug; } // Test for built-in const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val)); let className; if (builtInMatches.length > 1) { className = builtInMatches[1]; } else { // Failed to match the standard '[object ClassName]' return toString.call(val); } if (className == 'Object') { // we're a user defined class or Object // JSON.stringify avoids problems with cycles, and is generally much // easier than looping through ownProperties of `val`. try { return 'Object(' + JSON.stringify(val) + ')'; } catch (_) { return 'Object'; } } // errors if (val instanceof Error) { return `${val.name}: ${val.message}\n${val.stack}`; } // TODO we could test for more things here, like `Set`s and `Map`s. return className; } const CLOSURE_DTORS = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(state => { wasm.__wbindgen_export_3.get(state.dtor)(state.a, state.b); }); function makeMutClosure(arg0, arg1, dtor, f) { const state = { a: arg0, b: arg1, cnt: 1, dtor }; const real = (...args) => { // First up with a closure we increment the internal reference // count. This ensures that the Rust closure environment won't // be deallocated while we're invoking it. state.cnt++; const a = state.a; state.a = 0; try { return f(a, state.b, ...args); } finally { if (--state.cnt === 0) { wasm.__wbindgen_export_3.get(state.dtor)(a, state.b); CLOSURE_DTORS.unregister(state); } else { state.a = a; } } }; real.original = state; CLOSURE_DTORS.register(real, state, state); return real; } function __wbg_adapter_34(arg0, arg1, arg2) { wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hb887fb78cf4afc7c(arg0, arg1, addHeapObject(arg2)); } function _assertClass(instance, klass) { if (!(instance instanceof klass)) { throw new Error(`expected instance of ${klass.name}`); } return instance.ptr; } function passArray8ToWasm0(arg, malloc) { const ptr = malloc(arg.length * 1, 1) >>> 0; getUint8ArrayMemory0().set(arg, ptr / 1); WASM_VECTOR_LEN = arg.length; return ptr; } /** * Verify an execution with a single function and a single transition. Executions with multiple * transitions or functions will fail to verify. Also, this does not verify that the state root of * the execution is included in the Aleo Network ledger. * * @param {Execution} execution The function execution to verify * @param {VerifyingKey} verifying_key The verifying key for the function * @param {Program} program The program that the function execution belongs to * @param {String} function_id The name of the function that was executed * @returns {boolean} True if the execution is valid, false otherwise * @param {Execution} execution * @param {VerifyingKey} verifying_key * @param {Program} program * @param {string} function_id * @returns {boolean} */ function verifyFunctionExecution(execution, verifying_key, program, function_id) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); _assertClass(execution, Execution); _assertClass(verifying_key, VerifyingKey); _assertClass(program, Program); const ptr0 = passStringToWasm0(function_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; wasm.verifyFunctionExecution(retptr, execution.__wbg_ptr, verifying_key.__wbg_ptr, program.__wbg_ptr, ptr0, len0); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); if (r2) { throw takeObject(r1); } return r0 !== 0; } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } function getArrayU8FromWasm0(ptr, len) { ptr = ptr >>> 0; return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len); } /** * @param {number} receiver */ function runRayonThread(receiver) { wasm.runRayonThread(receiver); } /** */ function init_panic_hook() { wasm.init_panic_hook(); } /** * @param {URL} url * @param {number} num_threads * @returns {Promise<void>} */ function initThreadPool(url, num_threads) { const ret = wasm.initThreadPool(addHeapObject(url), num_threads); return takeObject(ret); } function handleError(f, args) { try { return f.apply(this, args); } catch (e) { wasm.__wbindgen_exn_store(addHeapObject(e)); } } function __wbg_adapter_292(arg0, arg1, arg2, arg3) { wasm.wasm_bindgen__convert__closures__invoke2_mut__hb42c7228f362340d(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3)); } const AddressFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_address_free(ptr >>> 0, 1)); /** * Public address of an Aleo account */ class Address { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(Address.prototype); obj.__wbg_ptr = ptr; AddressFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; AddressFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_address_free(ptr, 0); } /** * Derive an Aleo address from a private key * * @param {PrivateKey} private_key The private key to derive the address from * @returns {Address} Address corresponding to the private key * @param {PrivateKey} private_key * @returns {Address} */ static from_private_key(private_key) { _assertClass(private_key, PrivateKey); const ret = wasm.address_from_private_key(private_key.__wbg_ptr); return Address.__wrap(ret); } /** * Derive an Aleo address from a view key * * @param {ViewKey} view_key The view key to derive the address from * @returns {Address} Address corresponding to the view key * @param {ViewKey} view_key * @returns {Address} */ static from_view_key(view_key) { _assertClass(view_key, ViewKey); const ret = wasm.address_from_view_key(view_key.__wbg_ptr); return Address.__wrap(ret); } /** * Create an aleo address object from a string representation of an address * * @param {string} address String representation of an addressm * @returns {Address} Address * @param {string} address * @returns {Address} */ static from_string(address) { const ptr0 = passStringToWasm0(address, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; const ret = wasm.address_from_string(ptr0, len0); return Address.__wrap(ret); } /** * Get a string representation of an Aleo address object * * @param {Address} Address * @returns {string} String representation of the address * @returns {string} */ to_string() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.address_to_string(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); } } /** * Verify a signature for a message signed by the address * * @param {Uint8Array} Byte array representing a message signed by the address * @returns {boolean} Boolean representing whether or not the signature is valid * @param {Uint8Array} message * @param {Signature} signature * @returns {boolean} */ verify(message, signature) { const ptr0 = passArray8ToWasm0(message, wasm.__wbindgen_malloc); const len0 = WASM_VECTOR_LEN; _assertClass(signature, Signature); const ret = wasm.address_verify(this.__wbg_ptr, ptr0, len0, signature.__wbg_ptr); return ret !== 0; } } const AuthorizationResponseFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_authorizationresponse_free(ptr >>> 0, 1)); /** */ class AuthorizationResponse { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(AuthorizationResponse.prototype); obj.__wbg_ptr = ptr; AuthorizationResponseFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; AuthorizationResponseFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_authorizationresponse_free(ptr, 0); } /** * @returns {string} */ get authorization() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.authorizationresponse_authorization(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); } } /** * @returns {string} */ get fee_authorization() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.authorizationresponse_fee_authorization(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); } } } const ExecutionFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_execution_free(ptr >>> 0, 1)); /** * Execution of an Aleo program. */ class Execution { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(Execution.prototype); obj.__wbg_ptr = ptr; ExecutionFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; ExecutionFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_execution_free(ptr, 0); } /** * Returns the string representation of the execution. * @returns {string} */ toString() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.execution_toString(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); } } /** * Creates an execution object from a string representation of an execution. * @param {string} execution * @returns {Execution} */ static fromString(execution) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); const ptr0 = passStringToWasm0(execution, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; wasm.execution_fromString(retptr, ptr0, len0); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); if (r2) { throw takeObject(r1); } return Execution.__wrap(r0); } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } } const ExecutionResponseFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_executionresponse_free(ptr >>> 0, 1)); /** * Webassembly Representation of an Aleo function execution response * * This object is returned by the execution of an Aleo function off-chain. It provides methods for * retrieving the outputs of the function execution. */ class ExecutionResponse { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(ExecutionResponse.prototype); obj.__wbg_ptr = ptr; ExecutionResponseFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; ExecutionResponseFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_executionresponse_free(ptr, 0); } /** * Get the outputs of the executed function * * @returns {Array} Array of strings representing the outputs of the function * @returns {Array<any>} */ getOutputs() { const ret = wasm.executionresponse_getOutputs(this.__wbg_ptr); return takeObject(ret); } /** * Returns the execution object if present, null if otherwise. * * @returns {Execution | undefined} The execution object if present, null if otherwise * @returns {Execution | undefined} */ getExecution() { const ret = wasm.executionresponse_getExecution(this.__wbg_ptr); return ret === 0 ? undefined : Execution.__wrap(ret); } /** * Returns the program keys if present * @returns {KeyPair} */ getKeys() { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.executionresponse_getKeys(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); if (r2) { throw takeObject(r1); } return KeyPair.__wrap(r0); } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Returns the proving_key if the proving key was cached in the Execution response. * Note the proving key is removed from the response object after the first call to this * function. Subsequent calls will return null. * * @returns {ProvingKey | undefined} The proving key * @returns {ProvingKey | undefined} */ getProvingKey() { const ret = wasm.executionresponse_getProvingKey(this.__wbg_ptr); return ret === 0 ? undefined : ProvingKey.__wrap(ret); } /** * Returns the verifying_key associated with the program * * @returns {VerifyingKey} The verifying key * @returns {VerifyingKey} */ getVerifyingKey() { const ret = wasm.executionresponse_getVerifyingKey(this.__wbg_ptr); return VerifyingKey.__wrap(ret); } /** * Returns the function identifier * @returns {string} */ getFunctionId() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.executionresponse_getFunctionId(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); } } /** * Returns the program * @returns {Program} */ getProgram() { const ret = wasm.executionresponse_getProgram(this.__wbg_ptr); return Program.__wrap(ret); } } const FieldFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_field_free(ptr >>> 0, 1)); /** */ class Field { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(Field.prototype); obj.__wbg_ptr = ptr; FieldFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; FieldFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_field_free(ptr, 0); } /** * @returns {string} */ toString() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.field_toString(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); } } /** * @param {string} field * @returns {Field} */ static fromString(field) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); const ptr0 = passStringToWasm0(field, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; wasm.field_fromString(retptr, ptr0, len0); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); if (r2) { throw takeObject(r1); } return Field.__wrap(r0); } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } } const KeyPairFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_keypair_free(ptr >>> 0, 1)); /** * Key pair object containing both the function proving and verifying keys */ class KeyPair { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(KeyPair.prototype); obj.__wbg_ptr = ptr; KeyPairFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; KeyPairFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_keypair_free(ptr, 0); } /** * Create new key pair from proving and verifying keys * * @param {ProvingKey} proving_key Proving key corresponding to a function in an Aleo program * @param {VerifyingKey} verifying_key Verifying key corresponding to a function in an Aleo program * @returns {KeyPair} Key pair object containing both the function proving and verifying keys * @param {ProvingKey} proving_key * @param {VerifyingKey} verifying_key */ constructor(proving_key, verifying_key) { _assertClass(proving_key, ProvingKey); var ptr0 = proving_key.__destroy_into_raw(); _assertClass(verifying_key, VerifyingKey); var ptr1 = verifying_key.__destroy_into_raw(); const ret = wasm.keypair_new(ptr0, ptr1); this.__wbg_ptr = ret >>> 0; KeyPairFinalization.register(this, this.__wbg_ptr, this); return this; } /** * Get the proving key. This method will remove the proving key from the key pair * * @returns {ProvingKey} * @returns {ProvingKey} */ provingKey() { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.keypair_provingKey(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); if (r2) { throw takeObject(r1); } return ProvingKey.__wrap(r0); } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Get the verifying key. This method will remove the verifying key from the key pair * * @returns {VerifyingKey} * @returns {VerifyingKey} */ verifyingKey() { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.keypair_verifyingKey(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); if (r2) { throw takeObject(r1); } return VerifyingKey.__wrap(r0); } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } } const MetadataFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_metadata_free(ptr >>> 0, 1)); /** */ class Metadata { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(Metadata.prototype); obj.__wbg_ptr = ptr; MetadataFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; MetadataFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_metadata_free(ptr, 0); } /** * @returns {string} */ get name() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.__wbg_get_metadata_name(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); } } /** * @param {string} arg0 */ set name(arg0) { const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; wasm.__wbg_set_metadata_name(this.__wbg_ptr, ptr0, len0); } /** * @returns {string} */ get locator() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.__wbg_get_metadata_locator(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); } } /** * @param {string} arg0 */ set locator(arg0) { const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; wasm.__wbg_set_metadata_locator(this.__wbg_ptr, ptr0, len0); } /** * @returns {string} */ get prover() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.__wbg_get_metadata_prover(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); } } /** * @param {string} arg0 */ set prover(arg0) { const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; wasm.__wbg_set_metadata_prover(this.__wbg_ptr, ptr0, len0); } /** * @returns {string} */ get verifier() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.__wbg_get_metadata_verifier(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); } } /** * @param {string} arg0 */ set verifier(arg0) { const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; wasm.__wbg_set_metadata_verifier(this.__wbg_ptr, ptr0, len0); } /** * @returns {string} */ get verifyingKey() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.__wbg_get_metadata_verifyingKey(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); } } /** * @param {string} arg0 */ set verifyingKey(arg0) { const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; wasm.__wbg_set_metadata_verifyingKey(this.__wbg_ptr, ptr0, len0); } /** * @returns {string} */ static baseUrl() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.metadata_baseUrl(retptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); } } /** * @returns {Metadata} */ static bond_public() { const ret = wasm.metadata_bond_public(); return Metadata.__wrap(ret); } /** * @returns {Metadata} */ static bond_validator() { const ret = wasm.metadata_bond_validator(); return Metadata.__wrap(ret); } /** * @returns {Metadata} */ static claim_unbond_public() { const ret = wasm.metadata_claim_unbond_public(); return Metadata.__wrap(ret); } /** * @returns {Metadata} */ static fee_private() { const ret = wasm.metadata_fee_private(); return Metadata.__wrap(ret); } /** * @returns {Metadata} */ static fee_public() { const ret = wasm.metadata_fee_public(); return Metadata.__wrap(ret); } /** * @returns {Metadata} */ static inclusion() { const ret = wasm.metadata_inclusion(); return Metadata.__wrap(ret); } /** * @returns {Metadata} */ static join() { const ret = wasm.metadata_join(); return Metadata.__wrap(ret); } /** * @returns {Metadata} */ static set_validator_state() { const ret = wasm.metadata_set_validator_state(); return Metadata.__wrap(ret); } /** * @returns {Metadata} */ static split() { const ret = wasm.metadata_split(); return Metadata.__wrap(ret); } /** * @returns {Metadata} */ static transfer_private() { const ret = wasm.metadata_transfer_private(); return Metadata.__wrap(ret); } /** * @returns {Metadata} */ static transfer_private_to_public() { const ret = wasm.metadata_transfer_private_to_public(); return Metadata.__wrap(ret); } /** * @returns {Metadata} */ static transfer_public() { const ret = wasm.metadata_transfer_public(); return Metadata.__wrap(ret); } /** * @returns {Metadata} */ static transfer_public_as_signer() { const ret = wasm.metadata_transfer_public_as_signer(); return Metadata.__wrap(ret); } /** * @returns {Metadata} */ static transfer_public_to_private() { const ret = wasm.metadata_transfer_public_to_private(); return Metadata.__wrap(ret); } /** * @returns {Metadata} */ static unbond_public() { const ret = wasm.metadata_unbond_public(); return Metadata.__wrap(ret); } } const OfflineQueryFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_offlinequery_free(ptr >>> 0, 1)); /** * An offline query object used to insert the global state root and state paths needed to create * a valid inclusion proof offline. */ class OfflineQuery { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(OfflineQuery.prototype); obj.__wbg_ptr = ptr; OfflineQueryFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; OfflineQueryFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_offlinequery_free(ptr, 0); } /** * Creates a new offline query object. The state root is required to be passed in as a string * @param {string} state_root */ constructor(state_root) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); const ptr0 = passStringToWasm0(state_root, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; wasm.offlinequery_new(retptr, ptr0, len0); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); if (r2) { throw takeObject(r1); } this.__wbg_ptr = r0 >>> 0; OfflineQueryFinalization.register(this, this.__wbg_ptr, this); return this; } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Add a new state path to the offline query object. * * @param {string} commitment: The commitment corresponding to a record inpout * @param {string} state_path: The state path corresponding to the commitment * @param {string} commitment * @param {string} state_path */ addStatePath(commitment, state_path) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); const ptr0 = passStringToWasm0(commitment, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; const ptr1 = passStringToWasm0(state_path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len1 = WASM_VECTOR_LEN; wasm.offlinequery_addStatePath(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); if (r1) { throw takeObject(r0); } } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Get a json string representation of the offline query object * @returns {string} */ toString() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.offlinequery_toString(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); } } /** * Create an offline query object from a json string representation * @param {string} s * @returns {OfflineQuery} */ static fromString(s) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); const ptr0 = passStringToWasm0(s, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; wasm.offlinequery_fromString(retptr, ptr0, len0); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); if (r2) { throw takeObject(r1); } return OfflineQuery.__wrap(r0); } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } } const PlaintextFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_plaintext_free(ptr >>> 0, 1)); /** */ class Plaintext { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(Plaintext.prototype); obj.__wbg_ptr = ptr; PlaintextFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; PlaintextFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_plaintext_free(ptr, 0); } /** * @returns {string} */ toString() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.authorizationresponse_fee_authorization(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); } } /** * @param {string} plaintext * @returns {Plaintext} */ static fromString(plaintext) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); const ptr0 = passStringToWasm0(plaintext, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; wasm.plaintext_fromString(retptr, ptr0, len0); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); if (r2) { throw takeObject(r1); } return Plaintext.__wrap(r0); } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * @returns {string} */ hashBhp256() { let deferred2_0; let deferred2_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.plaintext_hashBhp256(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true); var ptr1 = r0; var len1 = r1; if (r3) { ptr1 = 0; len1 = 0; throw takeObject(r2); } deferred2_0 = ptr1; deferred2_1 = len1; return getStringFromWasm0(ptr1, len1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); } } } const PrivateKeyFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_privatekey_free(ptr >>> 0, 1)); /** * Private key of an Aleo account */ class PrivateKey { static __wrap(ptr) { ptr = ptr >>> 0; const obj = Object.create(PrivateKey.prototype); obj.__wbg_ptr = ptr; PrivateKeyFinalization.register(obj, obj.__wbg_ptr, obj); return obj; } __destroy_into_raw() { const ptr = this.__wbg_ptr; this.__wbg_ptr = 0; PrivateKeyFinalization.unregister(this); return ptr; } free() { const ptr = this.__destroy_into_raw(); wasm.__wbg_privatekey_free(ptr, 0); } /** * Generate a new private key using a cryptographically secure random number generator * * @returns {PrivateKey} */ constructor() { const ret = wasm.privatekey_new(); this.__wbg_ptr = ret >>> 0; PrivateKeyFinalization.register(this, this.__wbg_ptr, this); return this; } /** * Get a private key from a series of unchecked bytes * * @param {Uint8Array} seed Unchecked 32 byte long Uint8Array acting as the seed for the private key * @returns {PrivateKey} * @param {Uint8Array} seed * @returns {PrivateKey} */ static from_seed_unchecked(seed) { const ptr0 = passArray8ToWasm0(seed, wasm.__wbindgen_malloc); const len0 = WASM_VECTOR_LEN; const ret = wasm.privatekey_from_seed_unchecked(ptr0, len0); return PrivateKey.__wrap(ret); } /** * Get a private key from a string representation of a private key * * @param {string} seed String representation of a private key * @returns {PrivateKey} * @param {string} private_key * @returns {PrivateKey} */ static from_string(private_key) { try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); const ptr0 = passStringToWasm0(private_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); const len0 = WASM_VECTOR_LEN; wasm.privatekey_from_string(retptr, ptr0, len0); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true); if (r2) { throw takeObject(r1); } return PrivateKey.__wrap(r0); } finally { wasm.__wbindgen_add_to_stack_pointer(16); } } /** * Get a string representation of the private key. This function should be used very carefully * as it exposes the private key plaintext * * @returns {string} String representation of a private key * @returns {string} */ to_string() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.privatekey_to_string(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); } } /** * Get a string representation of the seed. This function should be used very carefully * as it exposes the private key seed * * @returns {string} String representation of a private key seed * @returns {string} */ to_seed() { let deferred1_0; let deferred1_1; try { const retptr = wasm.__wbindgen_add_to_stack_pointer(-16); wasm.privatekey_to_seed(retptr, this.__wbg_ptr); var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true); var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true); deferred1_0 = r0; deferred1_1 = r1; return getStringFromWasm0(r0, r1); } finally { wasm.__wbindgen_add_to_stack_pointer(16); wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); } } /** * Get the view key corresponding to the private key * * @returns {ViewKey} * @returns {ViewKey} */ to_view_key() { const ret = wasm.privatekey_to_view_key(this.__wbg_ptr); return ViewKey.__wrap(ret); } /** * Get the address corresponding to the private key * * @returns {Address} * @returns {Address} */ to_address() { const ret = wasm.privatekey_to_address(this.__wbg_ptr); return Address.__wrap(ret); } /** * Sign a message with the private key * * @param {Uint8Array} Byte array representing a message signed by the address * @returns {Signature} Signature generated by signing the message with the address * @param {Uint8Array} message * @returns {Signature} */ sign(message) { const ptr0 = passArray8ToWasm0(message, wasm.__wbindgen_malloc); const len0 = WASM_VECTOR_LEN; const ret = wasm.privatekey_sign(this.__wbg_ptr, ptr0, len0); return Signature.__wrap(ret); } /** * Get a new randomly generated private key ciphertext using a secret. The secret is sensitive * and will be needed to decrypt the private key later, so it should be stored securely * * @param {string} secret Secret used to encrypt the private key * @returns {Private