/* @ts-self-types="./wai_web.d.ts" */
/**
* A signing actor in the browser. The page supplies 32 random bytes
* (crypto.getRandomValues); the key never leaves the tab — only
* signed ops do. An op is the unit of play: what travels between
* tabs (by any transport — transport is out of the extension's
* scope) is exactly what a native sink would ingest.
*/
export class Actor {
__destroy_into_raw() {
const ptr = this.__wbg_ptr;
this.__wbg_ptr = 0;
ActorFinalization.unregister(this);
return ptr;
}
free() {
const ptr = this.__destroy_into_raw();
wasm.__wbg_actor_free(ptr, 0);
}
/**
* @param {Uint8Array} seed
*/
constructor(seed) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
const ptr0 = passArray8ToWasm0(seed, wasm.__wbindgen_export);
const len0 = WASM_VECTOR_LEN;
wasm.actor_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;
ActorFinalization.register(this, this.__wbg_ptr, this);
return this;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* Lamport discipline: an actor's counter MUST exceed every
* lamport it has observed. The page calls this with the lamports
* of ops it receives.
* @param {bigint} lamport
*/
observe_lamport(lamport) {
wasm.actor_observe_lamport(this.__wbg_ptr, lamport);
}
/**
* @returns {string}
*/
pubkey_hex() {
let deferred1_0;
let deferred1_1;
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.actor_pubkey_hex(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_export4(deferred1_0, deferred1_1, 1);
}
}
/**
* Sign a truss IMPULSE op (the SUM-resolved shove) targeting
* `node_id` (16 bytes) at `effect_tick`. `dx/dy/dz` are authoring
* floats converted to Q32.32 *here, once* — the canonical artifact
* is the returned op bytes, so every sink derives identical state
* from them regardless of who authored or how.
* @param {bigint} effect_tick
* @param {Uint8Array} node_id
* @param {number} dx
* @param {number} dy
* @param {number} dz
* @returns {Uint8Array}
*/
sign_truss_impulse(effect_tick, node_id, dx, dy, dz) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
const ptr0 = passArray8ToWasm0(node_id, wasm.__wbindgen_export);
const len0 = WASM_VECTOR_LEN;
wasm.actor_sign_truss_impulse(retptr, this.__wbg_ptr, effect_tick, ptr0, len0, dx, dy, dz);
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);
if (r3) {
throw takeObject(r2);
}
var v2 = getArrayU8FromWasm0(r0, r1).slice();
wasm.__wbindgen_export4(r0, r1 * 1, 1);
return v2;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
}
if (Symbol.dispose) Actor.prototype[Symbol.dispose] = Actor.prototype.free;
export class AssetProvenance {
__destroy_into_raw() {
const ptr = this.__wbg_ptr;
this.__wbg_ptr = 0;
AssetProvenanceFinalization.unregister(this);
return ptr;
}
free() {
const ptr = this.__destroy_into_raw();
wasm.__wbg_assetprovenance_free(ptr, 0);
}
/**
* @returns {string}
*/
asset_hash_hex() {
let deferred1_0;
let deferred1_1;
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.assetprovenance_asset_hash_hex(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_export4(deferred1_0, deferred1_1, 1);
}
}
/**
* @returns {string}
*/
capability() {
let deferred1_0;
let deferred1_1;
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.assetprovenance_capability(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_export4(deferred1_0, deferred1_1, 1);
}
}
/**
* The hash this sink actually computed over the carried bytes (shown
* next to `asset_hash` so a mismatch is visible).
* @returns {string}
*/
computed_hash_hex() {
let deferred1_0;
let deferred1_1;
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.assetprovenance_computed_hash_hex(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_export4(deferred1_0, deferred1_1, 1);
}
}
/**
* The carried bytes' content hash equals the receipt's `asset_hash`
* — the asset is exactly what the receipt vouches for. A 1-bit change
* to the envelope flips this to false.
* @returns {boolean}
*/
content_ok() {
const ret = wasm.assetprovenance_content_ok(this.__wbg_ptr);
return ret !== 0;
}
/**
* @returns {string}
*/
media() {
let deferred1_0;
let deferred1_1;
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
wasm.assetprovenance_media(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_export4(deferred1_0, deferred1_1, 1);
}
}
/**
* Open an asset envelope + its provenance receipt JSON. Constructing
* with deliberately-mutated `envelope` bytes is how the page shows
* tamper-evidence: `content_ok` then returns false.
* @param {Uint8Array} envelope
* @param {string} receipt_json
*/
constructor(envelope, receipt_json) {
try {
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
const ptr0 = passArray8ToWasm0(envelope, wasm.__wbindgen_export);
const len0 = WASM_VECTOR_LEN;
const ptr1 = passStringToWasm0(receipt_json, wasm.__wbindgen_export, wasm.__wbindgen_export2);
const len1 = WASM_VECTOR_LEN;
wasm.assetprovenance_new(retptr, ptr0, len0, ptr1, len1);
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;
AssetProvenanceFinalization.register(this, this.__wbg_ptr, this);
return this;
} finally {
wasm.__wbindgen_add_to_stack_pointer(16);
}
}
/**
* The carried payload bytes — the codec-specific bytes a native
* element (`
`, `