@cartridge/controller 0.9.2 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build$colon$deps.log +19 -19
- package/.turbo/turbo-build.log +16 -16
- package/dist/index.js +293 -266
- package/dist/index.js.map +1 -1
- package/dist/node/index.cjs +1 -1
- package/dist/node/index.cjs.map +1 -1
- package/dist/node/index.d.cts +3 -1
- package/dist/node/index.d.ts +3 -1
- package/dist/node/index.js +1 -1
- package/dist/node/index.js.map +1 -1
- package/dist/{provider-C1UeMjUr.js → provider-D7ialTEP.js} +2 -2
- package/dist/provider-D7ialTEP.js.map +1 -0
- package/dist/session.js +3 -3
- package/dist/session.js.map +1 -1
- package/dist/stats.html +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/wallets/bridge.d.ts +2 -0
- package/dist/wallets/types.d.ts +2 -1
- package/package.json +3 -3
- package/src/controller.ts +22 -7
- package/src/types.ts +5 -0
- package/src/wallets/bridge.ts +33 -11
- package/src/wallets/types.ts +8 -1
- package/dist/provider-C1UeMjUr.js.map +0 -1
package/dist/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sources":["../../../node_modules/.pnpm/@cartridge+controller-wasm@0.2.3/node_modules/@cartridge/controller-wasm/pkg-session/session_wasm_bg.js","../../../node_modules/.pnpm/@cartridge+controller-wasm@0.2.3/node_modules/@cartridge/controller-wasm/pkg-session/session_wasm.js","../src/session/account.ts","../src/session/provider.ts"],"sourcesContent":["import { Mutex } from './snippets/account-wasm-35da9c7350cbc3ae/src/wasm-mutex.js';\n\nlet wasm;\nexport function __wbg_set_wasm(val) {\n wasm = val;\n}\n\n\nconst heap = new Array(128).fill(undefined);\n\nheap.push(undefined, null, true, false);\n\nfunction getObject(idx) { return heap[idx]; }\n\nlet WASM_VECTOR_LEN = 0;\n\nlet cachedUint8ArrayMemory0 = null;\n\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nconst lTextEncoder = typeof TextEncoder === 'undefined' ? (0, module.require)('util').TextEncoder : TextEncoder;\n\nlet cachedTextEncoder = new lTextEncoder('utf-8');\n\nconst encodeString = (typeof cachedTextEncoder.encodeInto === 'function'\n ? function (arg, view) {\n return cachedTextEncoder.encodeInto(arg, view);\n}\n : function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n});\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = encodeString(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet cachedDataViewMemory0 = null;\n\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nconst lTextDecoder = typeof TextDecoder === 'undefined' ? (0, module.require)('util').TextDecoder : TextDecoder;\n\nlet cachedTextDecoder = new lTextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nlet heap_next = heap.length;\n\nfunction addHeapObject(obj) {\n if (heap_next === heap.length) heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n\n heap[idx] = obj;\n return idx;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_export_2(addHeapObject(e));\n }\n}\n\nfunction dropObject(idx) {\n if (idx < 132) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nconst CLOSURE_DTORS = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(state => {\n wasm.__wbindgen_export_4.get(state.dtor)(state.a, state.b)\n});\n\nfunction makeMutClosure(arg0, arg1, dtor, f) {\n const state = { a: arg0, b: arg1, cnt: 1, dtor };\n const real = (...args) => {\n // First up with a closure we increment the internal reference\n // count. This ensures that the Rust closure environment won't\n // be deallocated while we're invoking it.\n state.cnt++;\n const a = state.a;\n state.a = 0;\n try {\n return f(a, state.b, ...args);\n } finally {\n if (--state.cnt === 0) {\n wasm.__wbindgen_export_4.get(state.dtor)(a, state.b);\n CLOSURE_DTORS.unregister(state);\n } else {\n state.a = a;\n }\n }\n };\n real.original = state;\n CLOSURE_DTORS.register(real, state, state);\n return real;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction passArrayJsValueToWasm0(array, malloc) {\n const ptr = malloc(array.length * 4, 4) >>> 0;\n const mem = getDataViewMemory0();\n for (let i = 0; i < array.length; i++) {\n mem.setUint32(ptr + 4 * i, addHeapObject(array[i]), true);\n }\n WASM_VECTOR_LEN = array.length;\n return ptr;\n}\nfunction __wbg_adapter_42(arg0, arg1) {\n wasm.__wbindgen_export_5(arg0, arg1);\n}\n\nfunction __wbg_adapter_45(arg0, arg1, arg2) {\n wasm.__wbindgen_export_6(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wbg_adapter_199(arg0, arg1, arg2, arg3) {\n wasm.__wbindgen_export_7(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));\n}\n\n/**\n * @enum {1 | 20 | 24 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 40 | 41 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 10 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137}\n */\nexport const ErrorCode = Object.freeze({\n StarknetFailedToReceiveTransaction: 1, \"1\": \"StarknetFailedToReceiveTransaction\",\n StarknetContractNotFound: 20, \"20\": \"StarknetContractNotFound\",\n StarknetBlockNotFound: 24, \"24\": \"StarknetBlockNotFound\",\n StarknetInvalidTransactionIndex: 27, \"27\": \"StarknetInvalidTransactionIndex\",\n StarknetClassHashNotFound: 28, \"28\": \"StarknetClassHashNotFound\",\n StarknetTransactionHashNotFound: 29, \"29\": \"StarknetTransactionHashNotFound\",\n StarknetPageSizeTooBig: 31, \"31\": \"StarknetPageSizeTooBig\",\n StarknetNoBlocks: 32, \"32\": \"StarknetNoBlocks\",\n StarknetInvalidContinuationToken: 33, \"33\": \"StarknetInvalidContinuationToken\",\n StarknetTooManyKeysInFilter: 34, \"34\": \"StarknetTooManyKeysInFilter\",\n StarknetContractError: 40, \"40\": \"StarknetContractError\",\n StarknetTransactionExecutionError: 41, \"41\": \"StarknetTransactionExecutionError\",\n StarknetClassAlreadyDeclared: 51, \"51\": \"StarknetClassAlreadyDeclared\",\n StarknetInvalidTransactionNonce: 52, \"52\": \"StarknetInvalidTransactionNonce\",\n StarknetInsufficientMaxFee: 53, \"53\": \"StarknetInsufficientMaxFee\",\n StarknetInsufficientAccountBalance: 54, \"54\": \"StarknetInsufficientAccountBalance\",\n StarknetValidationFailure: 55, \"55\": \"StarknetValidationFailure\",\n StarknetCompilationFailed: 56, \"56\": \"StarknetCompilationFailed\",\n StarknetContractClassSizeIsTooLarge: 57, \"57\": \"StarknetContractClassSizeIsTooLarge\",\n StarknetNonAccount: 58, \"58\": \"StarknetNonAccount\",\n StarknetDuplicateTx: 59, \"59\": \"StarknetDuplicateTx\",\n StarknetCompiledClassHashMismatch: 60, \"60\": \"StarknetCompiledClassHashMismatch\",\n StarknetUnsupportedTxVersion: 61, \"61\": \"StarknetUnsupportedTxVersion\",\n StarknetUnsupportedContractClassVersion: 62, \"62\": \"StarknetUnsupportedContractClassVersion\",\n StarknetUnexpectedError: 63, \"63\": \"StarknetUnexpectedError\",\n StarknetNoTraceAvailable: 10, \"10\": \"StarknetNoTraceAvailable\",\n SignError: 101, \"101\": \"SignError\",\n StorageError: 102, \"102\": \"StorageError\",\n AccountFactoryError: 103, \"103\": \"AccountFactoryError\",\n PaymasterExecutionTimeNotReached: 104, \"104\": \"PaymasterExecutionTimeNotReached\",\n PaymasterExecutionTimePassed: 105, \"105\": \"PaymasterExecutionTimePassed\",\n PaymasterInvalidCaller: 106, \"106\": \"PaymasterInvalidCaller\",\n PaymasterRateLimitExceeded: 107, \"107\": \"PaymasterRateLimitExceeded\",\n PaymasterNotSupported: 108, \"108\": \"PaymasterNotSupported\",\n PaymasterHttp: 109, \"109\": \"PaymasterHttp\",\n PaymasterExcecution: 110, \"110\": \"PaymasterExcecution\",\n PaymasterSerialization: 111, \"111\": \"PaymasterSerialization\",\n CartridgeControllerNotDeployed: 112, \"112\": \"CartridgeControllerNotDeployed\",\n InsufficientBalance: 113, \"113\": \"InsufficientBalance\",\n OriginError: 114, \"114\": \"OriginError\",\n EncodingError: 115, \"115\": \"EncodingError\",\n SerdeWasmBindgenError: 116, \"116\": \"SerdeWasmBindgenError\",\n CairoSerdeError: 117, \"117\": \"CairoSerdeError\",\n CairoShortStringToFeltError: 118, \"118\": \"CairoShortStringToFeltError\",\n DeviceCreateCredential: 119, \"119\": \"DeviceCreateCredential\",\n DeviceGetAssertion: 120, \"120\": \"DeviceGetAssertion\",\n DeviceBadAssertion: 121, \"121\": \"DeviceBadAssertion\",\n DeviceChannel: 122, \"122\": \"DeviceChannel\",\n DeviceOrigin: 123, \"123\": \"DeviceOrigin\",\n AccountSigning: 124, \"124\": \"AccountSigning\",\n AccountProvider: 125, \"125\": \"AccountProvider\",\n AccountClassHashCalculation: 126, \"126\": \"AccountClassHashCalculation\",\n AccountFeeOutOfRange: 128, \"128\": \"AccountFeeOutOfRange\",\n ProviderRateLimited: 129, \"129\": \"ProviderRateLimited\",\n ProviderArrayLengthMismatch: 130, \"130\": \"ProviderArrayLengthMismatch\",\n ProviderOther: 131, \"131\": \"ProviderOther\",\n SessionAlreadyRegistered: 132, \"132\": \"SessionAlreadyRegistered\",\n UrlParseError: 133, \"133\": \"UrlParseError\",\n Base64DecodeError: 134, \"134\": \"Base64DecodeError\",\n CoseError: 135, \"135\": \"CoseError\",\n PolicyChainIdMismatch: 136, \"136\": \"PolicyChainIdMismatch\",\n InvalidOwner: 137, \"137\": \"InvalidOwner\",\n});\n\nconst __wbindgen_enum_RequestCredentials = [\"omit\", \"same-origin\", \"include\"];\n\nconst __wbindgen_enum_RequestMode = [\"same-origin\", \"no-cors\", \"cors\", \"navigate\"];\n\nconst CartridgeSessionAccountFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_cartridgesessionaccount_free(ptr >>> 0, 1));\n\nexport class CartridgeSessionAccount {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CartridgeSessionAccount.prototype);\n obj.__wbg_ptr = ptr;\n CartridgeSessionAccountFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CartridgeSessionAccountFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_cartridgesessionaccount_free(ptr, 0);\n }\n /**\n * @param {string} rpc_url\n * @param {JsFelt} signer\n * @param {JsFelt} address\n * @param {JsFelt} chain_id\n * @param {JsFelt[]} session_authorization\n * @param {Session} session\n * @returns {CartridgeSessionAccount}\n */\n static new(rpc_url, signer, address, chain_id, session_authorization, session) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(rpc_url, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArrayJsValueToWasm0(session_authorization, wasm.__wbindgen_export_0);\n const len1 = WASM_VECTOR_LEN;\n wasm.cartridgesessionaccount_new(retptr, ptr0, len0, addHeapObject(signer), addHeapObject(address), addHeapObject(chain_id), ptr1, len1, addHeapObject(session));\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return CartridgeSessionAccount.__wrap(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {string} rpc_url\n * @param {JsFelt} signer\n * @param {JsFelt} address\n * @param {JsFelt} owner_guid\n * @param {JsFelt} chain_id\n * @param {Session} session\n * @returns {CartridgeSessionAccount}\n */\n static newAsRegistered(rpc_url, signer, address, owner_guid, chain_id, session) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(rpc_url, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n wasm.cartridgesessionaccount_newAsRegistered(retptr, ptr0, len0, addHeapObject(signer), addHeapObject(address), addHeapObject(owner_guid), addHeapObject(chain_id), addHeapObject(session));\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return CartridgeSessionAccount.__wrap(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {JsFelt} hash\n * @param {JsCall[]} calls\n * @returns {Promise<Felts>}\n */\n sign(hash, calls) {\n const ptr0 = passArrayJsValueToWasm0(calls, wasm.__wbindgen_export_0);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.cartridgesessionaccount_sign(this.__wbg_ptr, addHeapObject(hash), ptr0, len0);\n return takeObject(ret);\n }\n /**\n * @param {JsCall[]} calls\n * @returns {Promise<any>}\n */\n execute(calls) {\n const ptr0 = passArrayJsValueToWasm0(calls, wasm.__wbindgen_export_0);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.cartridgesessionaccount_execute(this.__wbg_ptr, ptr0, len0);\n return takeObject(ret);\n }\n /**\n * @param {JsCall[]} calls\n * @returns {Promise<any>}\n */\n executeFromOutside(calls) {\n const ptr0 = passArrayJsValueToWasm0(calls, wasm.__wbindgen_export_0);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.cartridgesessionaccount_executeFromOutside(this.__wbg_ptr, ptr0, len0);\n return takeObject(ret);\n }\n}\n\nconst JsControllerErrorFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_jscontrollererror_free(ptr >>> 0, 1));\n\nexport class JsControllerError {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(JsControllerError.prototype);\n obj.__wbg_ptr = ptr;\n JsControllerErrorFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n JsControllerErrorFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_jscontrollererror_free(ptr, 0);\n }\n /**\n * @returns {ErrorCode}\n */\n get code() {\n const ret = wasm.__wbg_get_jscontrollererror_code(this.__wbg_ptr);\n return ret;\n }\n /**\n * @param {ErrorCode} arg0\n */\n set code(arg0) {\n wasm.__wbg_set_jscontrollererror_code(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {string}\n */\n get message() {\n let deferred1_0;\n let deferred1_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.__wbg_get_jscontrollererror_message(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred1_0 = r0;\n deferred1_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_3(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * @param {string} arg0\n */\n set message(arg0) {\n const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_jscontrollererror_message(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * @returns {string | undefined}\n */\n get data() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.__wbg_get_jscontrollererror_data(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n let v1;\n if (r0 !== 0) {\n v1 = getStringFromWasm0(r0, r1).slice();\n wasm.__wbindgen_export_3(r0, r1 * 1, 1);\n }\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {string | null} [arg0]\n */\n set data(arg0) {\n var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n var len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_jscontrollererror_data(this.__wbg_ptr, ptr0, len0);\n }\n}\n\nexport function __wbg_String_8f0eb39a4a4c2f66(arg0, arg1) {\n const ret = String(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbg_abort_410ec47a64ac6117(arg0, arg1) {\n getObject(arg0).abort(getObject(arg1));\n};\n\nexport function __wbg_abort_775ef1d17fc65868(arg0) {\n getObject(arg0).abort();\n};\n\nexport function __wbg_append_8c7dd8d641a5f01b() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {\n getObject(arg0).append(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4));\n}, arguments) };\n\nexport function __wbg_arrayBuffer_d1b44c4390db422f() { return handleError(function (arg0) {\n const ret = getObject(arg0).arrayBuffer();\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_buffer_609cc3eee51ed158(arg0) {\n const ret = getObject(arg0).buffer;\n return addHeapObject(ret);\n};\n\nexport function __wbg_call_672a4d21634d4a24() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).call(getObject(arg1));\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_call_7cccdd69e0791ae2() { return handleError(function (arg0, arg1, arg2) {\n const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_clearTimeout_0b53d391c1b94dda(arg0) {\n const ret = clearTimeout(takeObject(arg0));\n return addHeapObject(ret);\n};\n\nexport function __wbg_credentials_f1256c3bb1216690(arg0) {\n const ret = getObject(arg0).credentials;\n return addHeapObject(ret);\n};\n\nexport function __wbg_crypto_574e78ad8b13b65f(arg0) {\n const ret = getObject(arg0).crypto;\n return addHeapObject(ret);\n};\n\nexport function __wbg_done_769e5ede4b31c67b(arg0) {\n const ret = getObject(arg0).done;\n return ret;\n};\n\nexport function __wbg_fetch_11bff8299d0ecd2b(arg0) {\n const ret = fetch(getObject(arg0));\n return addHeapObject(ret);\n};\n\nexport function __wbg_fetch_509096533071c657(arg0, arg1) {\n const ret = getObject(arg0).fetch(getObject(arg1));\n return addHeapObject(ret);\n};\n\nexport function __wbg_fetch_f1856afdb49415d1(arg0) {\n const ret = fetch(getObject(arg0));\n return addHeapObject(ret);\n};\n\nexport function __wbg_getClientExtensionResults_f486a52e95c84a1a(arg0) {\n const ret = getObject(arg0).getClientExtensionResults();\n return addHeapObject(ret);\n};\n\nexport function __wbg_getRandomValues_b8f5dbd5f3995a9e() { return handleError(function (arg0, arg1) {\n getObject(arg0).getRandomValues(getObject(arg1));\n}, arguments) };\n\nexport function __wbg_getTime_46267b1c24877e30(arg0) {\n const ret = getObject(arg0).getTime();\n return ret;\n};\n\nexport function __wbg_get_67b2ba62fc30de12() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(getObject(arg0), getObject(arg1));\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_get_d5bb96e3856d8afd() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).get(getObject(arg1));\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_getwithrefkey_1dc361bd10053bfe(arg0, arg1) {\n const ret = getObject(arg0)[getObject(arg1)];\n return addHeapObject(ret);\n};\n\nexport function __wbg_has_a5ea9117f258a0ec() { return handleError(function (arg0, arg1) {\n const ret = Reflect.has(getObject(arg0), getObject(arg1));\n return ret;\n}, arguments) };\n\nexport function __wbg_headers_9cb51cfd2ac780a4(arg0) {\n const ret = getObject(arg0).headers;\n return addHeapObject(ret);\n};\n\nexport function __wbg_instanceof_ArrayBuffer_e14585432e3737fc(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_instanceof_Object_7f2dcef8f78644a4(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Object;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_instanceof_Response_f2cc20d9f7dfd644(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Response;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_instanceof_Uint8Array_17156bcf118086a9(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_instanceof_Window_def73ea0955fc569(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Window;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_iterator_9a24c88df860dc65() {\n const ret = Symbol.iterator;\n return addHeapObject(ret);\n};\n\nexport function __wbg_jscontrollererror_new(arg0) {\n const ret = JsControllerError.__wrap(arg0);\n return addHeapObject(ret);\n};\n\nexport function __wbg_length_a446193dc22c12f8(arg0) {\n const ret = getObject(arg0).length;\n return ret;\n};\n\nexport function __wbg_location_350d99456c2f3693(arg0) {\n const ret = getObject(arg0).location;\n return addHeapObject(ret);\n};\n\nexport function __wbg_log_c222819a41e063d3(arg0) {\n console.log(getObject(arg0));\n};\n\nexport function __wbg_msCrypto_a61aeb35a24c1329(arg0) {\n const ret = getObject(arg0).msCrypto;\n return addHeapObject(ret);\n};\n\nexport function __wbg_navigator_1577371c070c8947(arg0) {\n const ret = getObject(arg0).navigator;\n return addHeapObject(ret);\n};\n\nexport function __wbg_new0_f788a2397c7ca929() {\n const ret = new Date();\n return addHeapObject(ret);\n};\n\nexport function __wbg_new_018dcc2d6c8c2f6a() { return handleError(function () {\n const ret = new Headers();\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_new_23a2665fac83c611(arg0, arg1) {\n try {\n var state0 = {a: arg0, b: arg1};\n var cb0 = (arg0, arg1) => {\n const a = state0.a;\n state0.a = 0;\n try {\n return __wbg_adapter_199(a, state0.b, arg0, arg1);\n } finally {\n state0.a = a;\n }\n };\n const ret = new Promise(cb0);\n return addHeapObject(ret);\n } finally {\n state0.a = state0.b = 0;\n }\n};\n\nexport function __wbg_new_2658d63118834d8e() {\n const ret = new Mutex();\n return addHeapObject(ret);\n};\n\nexport function __wbg_new_405e22f390576ce2() {\n const ret = new Object();\n return addHeapObject(ret);\n};\n\nexport function __wbg_new_78feb108b6472713() {\n const ret = new Array();\n return addHeapObject(ret);\n};\n\nexport function __wbg_new_a12002a7f91c75be(arg0) {\n const ret = new Uint8Array(getObject(arg0));\n return addHeapObject(ret);\n};\n\nexport function __wbg_new_e25e5aab09ff45db() { return handleError(function () {\n const ret = new AbortController();\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_newnoargs_105ed471475aaf50(arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n};\n\nexport function __wbg_newwithbyteoffsetandlength_d97e637ebe145a9a(arg0, arg1, arg2) {\n const ret = new Uint8Array(getObject(arg0), arg1 >>> 0, arg2 >>> 0);\n return addHeapObject(ret);\n};\n\nexport function __wbg_newwithlength_a381634e90c276d4(arg0) {\n const ret = new Uint8Array(arg0 >>> 0);\n return addHeapObject(ret);\n};\n\nexport function __wbg_newwithstrandinit_06c535e0a867c635() { return handleError(function (arg0, arg1, arg2) {\n const ret = new Request(getStringFromWasm0(arg0, arg1), getObject(arg2));\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_next_25feadfc0913fea9(arg0) {\n const ret = getObject(arg0).next;\n return addHeapObject(ret);\n};\n\nexport function __wbg_next_6574e1a8a62d1055() { return handleError(function (arg0) {\n const ret = getObject(arg0).next();\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_node_905d3e251edff8a2(arg0) {\n const ret = getObject(arg0).node;\n return addHeapObject(ret);\n};\n\nexport function __wbg_obtain_a9626b3b96e6dc2c(arg0) {\n const ret = getObject(arg0).obtain();\n return addHeapObject(ret);\n};\n\nexport function __wbg_origin_7c5d649acdace3ea() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg1).origin;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n}, arguments) };\n\nexport function __wbg_process_dc0fbacc7c1c06f7(arg0) {\n const ret = getObject(arg0).process;\n return addHeapObject(ret);\n};\n\nexport function __wbg_push_737cfc8c1432c2c6(arg0, arg1) {\n const ret = getObject(arg0).push(getObject(arg1));\n return ret;\n};\n\nexport function __wbg_queueMicrotask_97d92b4fcc8a61c5(arg0) {\n queueMicrotask(getObject(arg0));\n};\n\nexport function __wbg_queueMicrotask_d3219def82552485(arg0) {\n const ret = getObject(arg0).queueMicrotask;\n return addHeapObject(ret);\n};\n\nexport function __wbg_randomFillSync_ac0988aba3254290() { return handleError(function (arg0, arg1) {\n getObject(arg0).randomFillSync(takeObject(arg1));\n}, arguments) };\n\nexport function __wbg_require_60cc747a6bc5215a() { return handleError(function () {\n const ret = module.require;\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_resolve_4851785c9c5f573d(arg0) {\n const ret = Promise.resolve(getObject(arg0));\n return addHeapObject(ret);\n};\n\nexport function __wbg_setTimeout_73ce8df12de4f2f2(arg0, arg1) {\n const ret = setTimeout(getObject(arg0), arg1);\n return addHeapObject(ret);\n};\n\nexport function __wbg_set_37837023f3d740e8(arg0, arg1, arg2) {\n getObject(arg0)[arg1 >>> 0] = takeObject(arg2);\n};\n\nexport function __wbg_set_3f1d0b984ed272ed(arg0, arg1, arg2) {\n getObject(arg0)[takeObject(arg1)] = takeObject(arg2);\n};\n\nexport function __wbg_set_3fda3bac07393de4(arg0, arg1, arg2) {\n getObject(arg0)[takeObject(arg1)] = takeObject(arg2);\n};\n\nexport function __wbg_set_65595bdd868b3009(arg0, arg1, arg2) {\n getObject(arg0).set(getObject(arg1), arg2 >>> 0);\n};\n\nexport function __wbg_set_bb8cecf6a62b9f46() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2));\n return ret;\n}, arguments) };\n\nexport function __wbg_setbody_5923b78a95eedf29(arg0, arg1) {\n getObject(arg0).body = getObject(arg1);\n};\n\nexport function __wbg_setcredentials_c3a22f1cd105a2c6(arg0, arg1) {\n getObject(arg0).credentials = __wbindgen_enum_RequestCredentials[arg1];\n};\n\nexport function __wbg_setheaders_834c0bdb6a8949ad(arg0, arg1) {\n getObject(arg0).headers = getObject(arg1);\n};\n\nexport function __wbg_setmethod_3c5280fe5d890842(arg0, arg1, arg2) {\n getObject(arg0).method = getStringFromWasm0(arg1, arg2);\n};\n\nexport function __wbg_setmode_5dc300b865044b65(arg0, arg1) {\n getObject(arg0).mode = __wbindgen_enum_RequestMode[arg1];\n};\n\nexport function __wbg_setsignal_75b21ef3a81de905(arg0, arg1) {\n getObject(arg0).signal = getObject(arg1);\n};\n\nexport function __wbg_signMessage_c732ea9d998cac79() { return handleError(function (arg0, arg1, arg2, arg3) {\n let deferred0_0;\n let deferred0_1;\n let deferred1_0;\n let deferred1_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n deferred1_0 = arg2;\n deferred1_1 = arg3;\n const ret = window.keychain_wallets.signMessage(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3));\n return addHeapObject(ret);\n } finally {\n wasm.__wbindgen_export_3(deferred0_0, deferred0_1, 1);\n wasm.__wbindgen_export_3(deferred1_0, deferred1_1, 1);\n }\n}, arguments) };\n\nexport function __wbg_signal_aaf9ad74119f20a4(arg0) {\n const ret = getObject(arg0).signal;\n return addHeapObject(ret);\n};\n\nexport function __wbg_static_accessor_GLOBAL_88a902d13a557d07() {\n const ret = typeof global === 'undefined' ? null : global;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n};\n\nexport function __wbg_static_accessor_GLOBAL_THIS_56578be7e9f832b0() {\n const ret = typeof globalThis === 'undefined' ? null : globalThis;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n};\n\nexport function __wbg_static_accessor_SELF_37c5d418e4bf5819() {\n const ret = typeof self === 'undefined' ? null : self;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n};\n\nexport function __wbg_static_accessor_WINDOW_5de37043a91a9c40() {\n const ret = typeof window === 'undefined' ? null : window;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n};\n\nexport function __wbg_status_f6360336ca686bf0(arg0) {\n const ret = getObject(arg0).status;\n return ret;\n};\n\nexport function __wbg_stringify_f7ed6987935b4a24() { return handleError(function (arg0) {\n const ret = JSON.stringify(getObject(arg0));\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_subarray_aa9065fa9dc5df96(arg0, arg1, arg2) {\n const ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0);\n return addHeapObject(ret);\n};\n\nexport function __wbg_text_7805bea50de2af49() { return handleError(function (arg0) {\n const ret = getObject(arg0).text();\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_then_44b73946d2fb3e7d(arg0, arg1) {\n const ret = getObject(arg0).then(getObject(arg1));\n return addHeapObject(ret);\n};\n\nexport function __wbg_then_48b406749878a531(arg0, arg1, arg2) {\n const ret = getObject(arg0).then(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n};\n\nexport function __wbg_url_ae10c34ca209681d(arg0, arg1) {\n const ret = getObject(arg1).url;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbg_value_cd1ffa7b1ab794f1(arg0) {\n const ret = getObject(arg0).value;\n return addHeapObject(ret);\n};\n\nexport function __wbg_versions_c01dfd4722a88165(arg0) {\n const ret = getObject(arg0).versions;\n return addHeapObject(ret);\n};\n\nexport function __wbindgen_boolean_get(arg0) {\n const v = getObject(arg0);\n const ret = typeof(v) === 'boolean' ? (v ? 1 : 0) : 2;\n return ret;\n};\n\nexport function __wbindgen_cb_drop(arg0) {\n const obj = takeObject(arg0).original;\n if (obj.cnt-- == 1) {\n obj.a = 0;\n return true;\n }\n const ret = false;\n return ret;\n};\n\nexport function __wbindgen_closure_wrapper2845(arg0, arg1, arg2) {\n const ret = makeMutClosure(arg0, arg1, 363, __wbg_adapter_42);\n return addHeapObject(ret);\n};\n\nexport function __wbindgen_closure_wrapper2978(arg0, arg1, arg2) {\n const ret = makeMutClosure(arg0, arg1, 396, __wbg_adapter_45);\n return addHeapObject(ret);\n};\n\nexport function __wbindgen_debug_string(arg0, arg1) {\n const ret = debugString(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbindgen_error_new(arg0, arg1) {\n const ret = new Error(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n};\n\nexport function __wbindgen_in(arg0, arg1) {\n const ret = getObject(arg0) in getObject(arg1);\n return ret;\n};\n\nexport function __wbindgen_is_function(arg0) {\n const ret = typeof(getObject(arg0)) === 'function';\n return ret;\n};\n\nexport function __wbindgen_is_object(arg0) {\n const val = getObject(arg0);\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n};\n\nexport function __wbindgen_is_string(arg0) {\n const ret = typeof(getObject(arg0)) === 'string';\n return ret;\n};\n\nexport function __wbindgen_is_undefined(arg0) {\n const ret = getObject(arg0) === undefined;\n return ret;\n};\n\nexport function __wbindgen_json_parse(arg0, arg1) {\n const ret = JSON.parse(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n};\n\nexport function __wbindgen_json_serialize(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = JSON.stringify(obj === undefined ? null : obj);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbindgen_jsval_loose_eq(arg0, arg1) {\n const ret = getObject(arg0) == getObject(arg1);\n return ret;\n};\n\nexport function __wbindgen_memory() {\n const ret = wasm.memory;\n return addHeapObject(ret);\n};\n\nexport function __wbindgen_number_get(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n};\n\nexport function __wbindgen_number_new(arg0) {\n const ret = arg0;\n return addHeapObject(ret);\n};\n\nexport function __wbindgen_object_clone_ref(arg0) {\n const ret = getObject(arg0);\n return addHeapObject(ret);\n};\n\nexport function __wbindgen_object_drop_ref(arg0) {\n takeObject(arg0);\n};\n\nexport function __wbindgen_string_get(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbindgen_string_new(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n};\n\nexport function __wbindgen_throw(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n};\n\n","import * as wasm from \"./session_wasm_bg.wasm\";\nexport * from \"./session_wasm_bg.js\";\nimport { __wbg_set_wasm } from \"./session_wasm_bg.js\";\n__wbg_set_wasm(wasm);","import { Policy } from \"@cartridge/controller-wasm\";\nimport { CartridgeSessionAccount } from \"@cartridge/controller-wasm/session\";\nimport { Call, InvokeFunctionResponse, WalletAccount } from \"starknet\";\n\nimport { normalizeCalls } from \"../utils\";\nimport BaseProvider from \"../provider\";\n\nexport * from \"../errors\";\nexport * from \"../types\";\n\nexport default class SessionAccount extends WalletAccount {\n public controller: CartridgeSessionAccount;\n\n constructor(\n provider: BaseProvider,\n {\n rpcUrl,\n privateKey,\n address,\n ownerGuid,\n chainId,\n expiresAt,\n policies,\n guardianKeyGuid,\n metadataHash,\n sessionKeyGuid,\n }: {\n rpcUrl: string;\n privateKey: string;\n address: string;\n ownerGuid: string;\n chainId: string;\n expiresAt: number;\n policies: Policy[];\n guardianKeyGuid: string;\n metadataHash: string;\n sessionKeyGuid: string;\n },\n ) {\n super({ nodeUrl: rpcUrl }, provider, address);\n\n this.controller = CartridgeSessionAccount.newAsRegistered(\n rpcUrl,\n privateKey,\n address,\n ownerGuid,\n chainId,\n {\n expiresAt,\n policies,\n guardianKeyGuid,\n metadataHash,\n sessionKeyGuid,\n },\n );\n }\n\n /**\n * Invoke execute function in account contract\n *\n * @param calls the invocation object or an array of them, containing:\n * - contractAddress - the address of the contract\n * - entrypoint - the entrypoint of the contract\n * - calldata - (defaults to []) the calldata\n * - signature - (defaults to []) the signature\n * @param abis (optional) the abi of the contract for better displaying\n *\n * @returns response from addTransaction\n */\n async execute(calls: Call | Call[]): Promise<InvokeFunctionResponse> {\n return this.controller.execute(normalizeCalls(calls));\n }\n}\n","import { ec, stark, WalletAccount } from \"starknet\";\n\nimport SessionAccount from \"./account\";\nimport { KEYCHAIN_URL } from \"../constants\";\nimport BaseProvider from \"../provider\";\nimport { toWasmPolicies } from \"../utils\";\nimport { SessionPolicies } from \"@cartridge/presets\";\nimport { AddStarknetChainParameters } from \"@starknet-io/types-js\";\nimport { ParsedSessionPolicies } from \"../policies\";\n\ninterface SessionRegistration {\n username: string;\n address: string;\n ownerGuid: string;\n transactionHash?: string;\n expiresAt: string;\n guardianKeyGuid: string;\n metadataHash: string;\n sessionKeyGuid: string;\n}\n\nexport type SessionOptions = {\n rpc: string;\n chainId: string;\n policies: SessionPolicies;\n redirectUrl: string;\n keychainUrl?: string;\n};\n\nexport default class SessionProvider extends BaseProvider {\n public id = \"controller_session\";\n public name = \"Controller Session\";\n\n protected _chainId: string;\n protected _rpcUrl: string;\n protected _username?: string;\n protected _redirectUrl: string;\n protected _policies: ParsedSessionPolicies;\n protected _keychainUrl: string;\n\n constructor({\n rpc,\n chainId,\n policies,\n redirectUrl,\n keychainUrl,\n }: SessionOptions) {\n super();\n\n this._policies = {\n verified: false,\n contracts: policies.contracts\n ? Object.fromEntries(\n Object.entries(policies.contracts).map(([address, contract]) => [\n address,\n {\n ...contract,\n methods: contract.methods.map((method) => ({\n ...method,\n authorized: true,\n })),\n },\n ]),\n )\n : undefined,\n messages: policies.messages?.map((message) => ({\n ...message,\n authorized: true,\n })),\n };\n\n this._rpcUrl = rpc;\n this._chainId = chainId;\n this._redirectUrl = redirectUrl;\n this._keychainUrl = keychainUrl || KEYCHAIN_URL;\n\n if (typeof window !== \"undefined\") {\n (window as any).starknet_controller_session = this;\n }\n }\n\n private validatePoliciesSubset(\n newPolicies: ParsedSessionPolicies,\n existingPolicies: ParsedSessionPolicies,\n ): boolean {\n if (newPolicies.contracts) {\n if (!existingPolicies.contracts) return false;\n\n for (const [address, contract] of Object.entries(newPolicies.contracts)) {\n const existingContract = existingPolicies.contracts[address];\n if (!existingContract) return false;\n\n for (const method of contract.methods) {\n const existingMethod = existingContract.methods.find(\n (m) => m.entrypoint === method.entrypoint,\n );\n if (!existingMethod || !existingMethod.authorized) return false;\n }\n }\n }\n\n if (newPolicies.messages) {\n if (!existingPolicies.messages) return false;\n\n for (const message of newPolicies.messages) {\n const existingMessage = existingPolicies.messages.find(\n (m) =>\n JSON.stringify(m.domain) === JSON.stringify(message.domain) &&\n JSON.stringify(m.types) === JSON.stringify(message.types),\n );\n if (!existingMessage || !existingMessage.authorized) return false;\n }\n }\n\n return true;\n }\n\n async username() {\n await this.tryRetrieveFromQueryOrStorage();\n return this._username;\n }\n\n async probe(): Promise<WalletAccount | undefined> {\n if (this.account) {\n return this.account;\n }\n\n this.account = await this.tryRetrieveFromQueryOrStorage();\n return this.account;\n }\n\n async connect(): Promise<WalletAccount | undefined> {\n if (this.account) {\n return this.account;\n }\n\n this.account = await this.tryRetrieveFromQueryOrStorage();\n if (this.account) {\n return this.account;\n }\n\n const pk = stark.randomAddress();\n const publicKey = ec.starkCurve.getStarkKey(pk);\n\n localStorage.setItem(\n \"sessionSigner\",\n JSON.stringify({\n privKey: pk,\n pubKey: publicKey,\n }),\n );\n\n localStorage.setItem(\"sessionPolicies\", JSON.stringify(this._policies));\n\n const url = `${\n this._keychainUrl\n }/session?public_key=${publicKey}&redirect_uri=${\n this._redirectUrl\n }&redirect_query_name=startapp&policies=${JSON.stringify(\n this._policies,\n )}&rpc_url=${this._rpcUrl}`;\n\n localStorage.setItem(\"lastUsedConnector\", this.id);\n window.open(url, \"_blank\");\n\n return this.account;\n }\n\n switchStarknetChain(_chainId: string): Promise<boolean> {\n throw new Error(\"switchStarknetChain not implemented\");\n }\n\n addStarknetChain(_chain: AddStarknetChainParameters): Promise<boolean> {\n throw new Error(\"addStarknetChain not implemented\");\n }\n\n disconnect(): Promise<void> {\n localStorage.removeItem(\"sessionSigner\");\n localStorage.removeItem(\"session\");\n localStorage.removeItem(\"sessionPolicies\");\n this.account = undefined;\n this._username = undefined;\n return Promise.resolve();\n }\n\n async tryRetrieveFromQueryOrStorage() {\n if (this.account) {\n return this.account;\n }\n\n const signerString = localStorage.getItem(\"sessionSigner\");\n const signer = signerString ? JSON.parse(signerString) : null;\n let sessionRegistration: SessionRegistration | null = null;\n\n if (window.location.search.includes(\"startapp\")) {\n const params = new URLSearchParams(window.location.search);\n const session = params.get(\"startapp\");\n if (session) {\n sessionRegistration = JSON.parse(atob(session));\n localStorage.setItem(\"session\", JSON.stringify(sessionRegistration));\n\n // Remove the session query parameter\n params.delete(\"startapp\");\n const newUrl =\n window.location.pathname +\n (params.toString() ? `?${params.toString()}` : \"\") +\n window.location.hash;\n window.history.replaceState({}, document.title, newUrl);\n }\n }\n\n if (!sessionRegistration) {\n const sessionString = localStorage.getItem(\"session\");\n if (sessionString) {\n sessionRegistration = JSON.parse(sessionString);\n }\n }\n\n if (!sessionRegistration || !signer) {\n return;\n }\n\n // Check expiration\n const expirationTime = parseInt(sessionRegistration.expiresAt) * 1000;\n if (Date.now() >= expirationTime) {\n this.clearStoredSession();\n return;\n }\n\n // Check stored policies\n const storedPoliciesStr = localStorage.getItem(\"sessionPolicies\");\n if (storedPoliciesStr) {\n const storedPolicies = JSON.parse(\n storedPoliciesStr,\n ) as ParsedSessionPolicies;\n\n const isValid = this.validatePoliciesSubset(\n this._policies,\n storedPolicies,\n );\n\n if (!isValid) {\n this.clearStoredSession();\n return;\n }\n }\n\n this._username = sessionRegistration.username;\n this.account = new SessionAccount(this, {\n rpcUrl: this._rpcUrl,\n privateKey: signer.privKey,\n address: sessionRegistration.address,\n ownerGuid: sessionRegistration.ownerGuid,\n chainId: this._chainId,\n expiresAt: parseInt(sessionRegistration.expiresAt),\n policies: toWasmPolicies(this._policies),\n guardianKeyGuid: sessionRegistration.guardianKeyGuid,\n metadataHash: sessionRegistration.metadataHash,\n sessionKeyGuid: sessionRegistration.sessionKeyGuid,\n });\n\n return this.account;\n }\n\n private clearStoredSession(): void {\n localStorage.removeItem(\"sessionSigner\");\n localStorage.removeItem(\"session\");\n localStorage.removeItem(\"sessionPolicies\");\n }\n}\n"],"names":["wasm","__wbg_set_wasm","val","heap","getObject","idx","WASM_VECTOR_LEN","cachedUint8ArrayMemory0","getUint8ArrayMemory0","lTextEncoder","cachedTextEncoder","encodeString","arg","view","buf","passStringToWasm0","malloc","realloc","ptr","len","mem","offset","code","ret","cachedDataViewMemory0","getDataViewMemory0","lTextDecoder","cachedTextDecoder","heap_next","addHeapObject","obj","dropObject","takeObject","state","passArrayJsValueToWasm0","array","i","CartridgeSessionAccountFinalization","CartridgeSessionAccount","rpc_url","signer","address","chain_id","session_authorization","session","retptr","ptr0","len0","ptr1","len1","r0","r1","r2","owner_guid","hash","calls","SessionAccount","WalletAccount","provider","rpcUrl","privateKey","ownerGuid","chainId","expiresAt","policies","guardianKeyGuid","metadataHash","sessionKeyGuid","normalizeCalls","SessionProvider","BaseProvider","rpc","redirectUrl","keychainUrl","contract","method","message","KEYCHAIN_URL","newPolicies","existingPolicies","existingContract","existingMethod","m","existingMessage","pk","stark","publicKey","ec","url","_chainId","_chain","signerString","sessionRegistration","params","newUrl","sessionString","expirationTime","storedPoliciesStr","storedPolicies","toWasmPolicies"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
1
|
+
{"version":3,"file":"session.js","sources":["../../../node_modules/.pnpm/@cartridge+controller-wasm@0.2.7/node_modules/@cartridge/controller-wasm/pkg-session/session_wasm_bg.js","../../../node_modules/.pnpm/@cartridge+controller-wasm@0.2.7/node_modules/@cartridge/controller-wasm/pkg-session/session_wasm.js","../src/session/account.ts","../src/session/provider.ts"],"sourcesContent":["import { Mutex } from './snippets/account-wasm-35da9c7350cbc3ae/src/wasm-mutex.js';\n\nlet wasm;\nexport function __wbg_set_wasm(val) {\n wasm = val;\n}\n\n\nconst heap = new Array(128).fill(undefined);\n\nheap.push(undefined, null, true, false);\n\nfunction getObject(idx) { return heap[idx]; }\n\nlet WASM_VECTOR_LEN = 0;\n\nlet cachedUint8ArrayMemory0 = null;\n\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nconst lTextEncoder = typeof TextEncoder === 'undefined' ? (0, module.require)('util').TextEncoder : TextEncoder;\n\nlet cachedTextEncoder = new lTextEncoder('utf-8');\n\nconst encodeString = (typeof cachedTextEncoder.encodeInto === 'function'\n ? function (arg, view) {\n return cachedTextEncoder.encodeInto(arg, view);\n}\n : function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n});\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = encodeString(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet cachedDataViewMemory0 = null;\n\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nconst lTextDecoder = typeof TextDecoder === 'undefined' ? (0, module.require)('util').TextDecoder : TextDecoder;\n\nlet cachedTextDecoder = new lTextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n\ncachedTextDecoder.decode();\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nlet heap_next = heap.length;\n\nfunction addHeapObject(obj) {\n if (heap_next === heap.length) heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n\n heap[idx] = obj;\n return idx;\n}\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_export_2(addHeapObject(e));\n }\n}\n\nfunction dropObject(idx) {\n if (idx < 132) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nconst CLOSURE_DTORS = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(state => {\n wasm.__wbindgen_export_4.get(state.dtor)(state.a, state.b)\n});\n\nfunction makeMutClosure(arg0, arg1, dtor, f) {\n const state = { a: arg0, b: arg1, cnt: 1, dtor };\n const real = (...args) => {\n // First up with a closure we increment the internal reference\n // count. This ensures that the Rust closure environment won't\n // be deallocated while we're invoking it.\n state.cnt++;\n const a = state.a;\n state.a = 0;\n try {\n return f(a, state.b, ...args);\n } finally {\n if (--state.cnt === 0) {\n wasm.__wbindgen_export_4.get(state.dtor)(a, state.b);\n CLOSURE_DTORS.unregister(state);\n } else {\n state.a = a;\n }\n }\n };\n real.original = state;\n CLOSURE_DTORS.register(real, state, state);\n return real;\n}\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction passArrayJsValueToWasm0(array, malloc) {\n const ptr = malloc(array.length * 4, 4) >>> 0;\n const mem = getDataViewMemory0();\n for (let i = 0; i < array.length; i++) {\n mem.setUint32(ptr + 4 * i, addHeapObject(array[i]), true);\n }\n WASM_VECTOR_LEN = array.length;\n return ptr;\n}\nfunction __wbg_adapter_42(arg0, arg1) {\n wasm.__wbindgen_export_5(arg0, arg1);\n}\n\nfunction __wbg_adapter_45(arg0, arg1, arg2) {\n wasm.__wbindgen_export_6(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wbg_adapter_199(arg0, arg1, arg2, arg3) {\n wasm.__wbindgen_export_7(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));\n}\n\n/**\n * @enum {1 | 20 | 24 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 40 | 41 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 10 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138}\n */\nexport const ErrorCode = Object.freeze({\n StarknetFailedToReceiveTransaction: 1, \"1\": \"StarknetFailedToReceiveTransaction\",\n StarknetContractNotFound: 20, \"20\": \"StarknetContractNotFound\",\n StarknetBlockNotFound: 24, \"24\": \"StarknetBlockNotFound\",\n StarknetInvalidTransactionIndex: 27, \"27\": \"StarknetInvalidTransactionIndex\",\n StarknetClassHashNotFound: 28, \"28\": \"StarknetClassHashNotFound\",\n StarknetTransactionHashNotFound: 29, \"29\": \"StarknetTransactionHashNotFound\",\n StarknetPageSizeTooBig: 31, \"31\": \"StarknetPageSizeTooBig\",\n StarknetNoBlocks: 32, \"32\": \"StarknetNoBlocks\",\n StarknetInvalidContinuationToken: 33, \"33\": \"StarknetInvalidContinuationToken\",\n StarknetTooManyKeysInFilter: 34, \"34\": \"StarknetTooManyKeysInFilter\",\n StarknetContractError: 40, \"40\": \"StarknetContractError\",\n StarknetTransactionExecutionError: 41, \"41\": \"StarknetTransactionExecutionError\",\n StarknetClassAlreadyDeclared: 51, \"51\": \"StarknetClassAlreadyDeclared\",\n StarknetInvalidTransactionNonce: 52, \"52\": \"StarknetInvalidTransactionNonce\",\n StarknetInsufficientMaxFee: 53, \"53\": \"StarknetInsufficientMaxFee\",\n StarknetInsufficientAccountBalance: 54, \"54\": \"StarknetInsufficientAccountBalance\",\n StarknetValidationFailure: 55, \"55\": \"StarknetValidationFailure\",\n StarknetCompilationFailed: 56, \"56\": \"StarknetCompilationFailed\",\n StarknetContractClassSizeIsTooLarge: 57, \"57\": \"StarknetContractClassSizeIsTooLarge\",\n StarknetNonAccount: 58, \"58\": \"StarknetNonAccount\",\n StarknetDuplicateTx: 59, \"59\": \"StarknetDuplicateTx\",\n StarknetCompiledClassHashMismatch: 60, \"60\": \"StarknetCompiledClassHashMismatch\",\n StarknetUnsupportedTxVersion: 61, \"61\": \"StarknetUnsupportedTxVersion\",\n StarknetUnsupportedContractClassVersion: 62, \"62\": \"StarknetUnsupportedContractClassVersion\",\n StarknetUnexpectedError: 63, \"63\": \"StarknetUnexpectedError\",\n StarknetNoTraceAvailable: 10, \"10\": \"StarknetNoTraceAvailable\",\n SignError: 101, \"101\": \"SignError\",\n StorageError: 102, \"102\": \"StorageError\",\n AccountFactoryError: 103, \"103\": \"AccountFactoryError\",\n PaymasterExecutionTimeNotReached: 104, \"104\": \"PaymasterExecutionTimeNotReached\",\n PaymasterExecutionTimePassed: 105, \"105\": \"PaymasterExecutionTimePassed\",\n PaymasterInvalidCaller: 106, \"106\": \"PaymasterInvalidCaller\",\n PaymasterRateLimitExceeded: 107, \"107\": \"PaymasterRateLimitExceeded\",\n PaymasterNotSupported: 108, \"108\": \"PaymasterNotSupported\",\n PaymasterHttp: 109, \"109\": \"PaymasterHttp\",\n PaymasterExcecution: 110, \"110\": \"PaymasterExcecution\",\n PaymasterSerialization: 111, \"111\": \"PaymasterSerialization\",\n CartridgeControllerNotDeployed: 112, \"112\": \"CartridgeControllerNotDeployed\",\n InsufficientBalance: 113, \"113\": \"InsufficientBalance\",\n OriginError: 114, \"114\": \"OriginError\",\n EncodingError: 115, \"115\": \"EncodingError\",\n SerdeWasmBindgenError: 116, \"116\": \"SerdeWasmBindgenError\",\n CairoSerdeError: 117, \"117\": \"CairoSerdeError\",\n CairoShortStringToFeltError: 118, \"118\": \"CairoShortStringToFeltError\",\n DeviceCreateCredential: 119, \"119\": \"DeviceCreateCredential\",\n DeviceGetAssertion: 120, \"120\": \"DeviceGetAssertion\",\n DeviceBadAssertion: 121, \"121\": \"DeviceBadAssertion\",\n DeviceChannel: 122, \"122\": \"DeviceChannel\",\n DeviceOrigin: 123, \"123\": \"DeviceOrigin\",\n AccountSigning: 124, \"124\": \"AccountSigning\",\n AccountProvider: 125, \"125\": \"AccountProvider\",\n AccountClassHashCalculation: 126, \"126\": \"AccountClassHashCalculation\",\n AccountFeeOutOfRange: 128, \"128\": \"AccountFeeOutOfRange\",\n ProviderRateLimited: 129, \"129\": \"ProviderRateLimited\",\n ProviderArrayLengthMismatch: 130, \"130\": \"ProviderArrayLengthMismatch\",\n ProviderOther: 131, \"131\": \"ProviderOther\",\n SessionAlreadyRegistered: 132, \"132\": \"SessionAlreadyRegistered\",\n UrlParseError: 133, \"133\": \"UrlParseError\",\n Base64DecodeError: 134, \"134\": \"Base64DecodeError\",\n CoseError: 135, \"135\": \"CoseError\",\n PolicyChainIdMismatch: 136, \"136\": \"PolicyChainIdMismatch\",\n InvalidOwner: 137, \"137\": \"InvalidOwner\",\n GasPriceTooHigh: 138, \"138\": \"GasPriceTooHigh\",\n});\n\nconst __wbindgen_enum_RequestCredentials = [\"omit\", \"same-origin\", \"include\"];\n\nconst __wbindgen_enum_RequestMode = [\"same-origin\", \"no-cors\", \"cors\", \"navigate\"];\n\nconst CartridgeSessionAccountFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_cartridgesessionaccount_free(ptr >>> 0, 1));\n\nexport class CartridgeSessionAccount {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(CartridgeSessionAccount.prototype);\n obj.__wbg_ptr = ptr;\n CartridgeSessionAccountFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CartridgeSessionAccountFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_cartridgesessionaccount_free(ptr, 0);\n }\n /**\n * @param {string} rpc_url\n * @param {JsFelt} signer\n * @param {JsFelt} address\n * @param {JsFelt} chain_id\n * @param {JsFelt[]} session_authorization\n * @param {Session} session\n * @returns {CartridgeSessionAccount}\n */\n static new(rpc_url, signer, address, chain_id, session_authorization, session) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(rpc_url, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArrayJsValueToWasm0(session_authorization, wasm.__wbindgen_export_0);\n const len1 = WASM_VECTOR_LEN;\n wasm.cartridgesessionaccount_new(retptr, ptr0, len0, addHeapObject(signer), addHeapObject(address), addHeapObject(chain_id), ptr1, len1, addHeapObject(session));\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return CartridgeSessionAccount.__wrap(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {string} rpc_url\n * @param {JsFelt} signer\n * @param {JsFelt} address\n * @param {JsFelt} owner_guid\n * @param {JsFelt} chain_id\n * @param {Session} session\n * @returns {CartridgeSessionAccount}\n */\n static newAsRegistered(rpc_url, signer, address, owner_guid, chain_id, session) {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(rpc_url, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n wasm.cartridgesessionaccount_newAsRegistered(retptr, ptr0, len0, addHeapObject(signer), addHeapObject(address), addHeapObject(owner_guid), addHeapObject(chain_id), addHeapObject(session));\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return CartridgeSessionAccount.__wrap(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {JsFelt} hash\n * @param {JsCall[]} calls\n * @returns {Promise<Felts>}\n */\n sign(hash, calls) {\n const ptr0 = passArrayJsValueToWasm0(calls, wasm.__wbindgen_export_0);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.cartridgesessionaccount_sign(this.__wbg_ptr, addHeapObject(hash), ptr0, len0);\n return takeObject(ret);\n }\n /**\n * @param {JsCall[]} calls\n * @returns {Promise<any>}\n */\n execute(calls) {\n const ptr0 = passArrayJsValueToWasm0(calls, wasm.__wbindgen_export_0);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.cartridgesessionaccount_execute(this.__wbg_ptr, ptr0, len0);\n return takeObject(ret);\n }\n /**\n * @param {JsCall[]} calls\n * @returns {Promise<any>}\n */\n executeFromOutside(calls) {\n const ptr0 = passArrayJsValueToWasm0(calls, wasm.__wbindgen_export_0);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.cartridgesessionaccount_executeFromOutside(this.__wbg_ptr, ptr0, len0);\n return takeObject(ret);\n }\n}\n\nconst JsControllerErrorFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_jscontrollererror_free(ptr >>> 0, 1));\n\nexport class JsControllerError {\n\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(JsControllerError.prototype);\n obj.__wbg_ptr = ptr;\n JsControllerErrorFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n JsControllerErrorFinalization.unregister(this);\n return ptr;\n }\n\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_jscontrollererror_free(ptr, 0);\n }\n /**\n * @returns {ErrorCode}\n */\n get code() {\n const ret = wasm.__wbg_get_jscontrollererror_code(this.__wbg_ptr);\n return ret;\n }\n /**\n * @param {ErrorCode} arg0\n */\n set code(arg0) {\n wasm.__wbg_set_jscontrollererror_code(this.__wbg_ptr, arg0);\n }\n /**\n * @returns {string}\n */\n get message() {\n let deferred1_0;\n let deferred1_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.__wbg_get_jscontrollererror_message(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred1_0 = r0;\n deferred1_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_3(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * @param {string} arg0\n */\n set message(arg0) {\n const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_jscontrollererror_message(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * @returns {string | undefined}\n */\n get data() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.__wbg_get_jscontrollererror_data(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n let v1;\n if (r0 !== 0) {\n v1 = getStringFromWasm0(r0, r1).slice();\n wasm.__wbindgen_export_3(r0, r1 * 1, 1);\n }\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {string | null} [arg0]\n */\n set data(arg0) {\n var ptr0 = isLikeNone(arg0) ? 0 : passStringToWasm0(arg0, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n var len0 = WASM_VECTOR_LEN;\n wasm.__wbg_set_jscontrollererror_data(this.__wbg_ptr, ptr0, len0);\n }\n}\n\nexport function __wbg_String_8f0eb39a4a4c2f66(arg0, arg1) {\n const ret = String(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbg_abort_410ec47a64ac6117(arg0, arg1) {\n getObject(arg0).abort(getObject(arg1));\n};\n\nexport function __wbg_abort_775ef1d17fc65868(arg0) {\n getObject(arg0).abort();\n};\n\nexport function __wbg_append_8c7dd8d641a5f01b() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {\n getObject(arg0).append(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4));\n}, arguments) };\n\nexport function __wbg_arrayBuffer_d1b44c4390db422f() { return handleError(function (arg0) {\n const ret = getObject(arg0).arrayBuffer();\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_buffer_609cc3eee51ed158(arg0) {\n const ret = getObject(arg0).buffer;\n return addHeapObject(ret);\n};\n\nexport function __wbg_call_672a4d21634d4a24() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).call(getObject(arg1));\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_call_7cccdd69e0791ae2() { return handleError(function (arg0, arg1, arg2) {\n const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_clearTimeout_0b53d391c1b94dda(arg0) {\n const ret = clearTimeout(takeObject(arg0));\n return addHeapObject(ret);\n};\n\nexport function __wbg_credentials_f1256c3bb1216690(arg0) {\n const ret = getObject(arg0).credentials;\n return addHeapObject(ret);\n};\n\nexport function __wbg_crypto_574e78ad8b13b65f(arg0) {\n const ret = getObject(arg0).crypto;\n return addHeapObject(ret);\n};\n\nexport function __wbg_done_769e5ede4b31c67b(arg0) {\n const ret = getObject(arg0).done;\n return ret;\n};\n\nexport function __wbg_fetch_11bff8299d0ecd2b(arg0) {\n const ret = fetch(getObject(arg0));\n return addHeapObject(ret);\n};\n\nexport function __wbg_fetch_509096533071c657(arg0, arg1) {\n const ret = getObject(arg0).fetch(getObject(arg1));\n return addHeapObject(ret);\n};\n\nexport function __wbg_fetch_f1856afdb49415d1(arg0) {\n const ret = fetch(getObject(arg0));\n return addHeapObject(ret);\n};\n\nexport function __wbg_getClientExtensionResults_f486a52e95c84a1a(arg0) {\n const ret = getObject(arg0).getClientExtensionResults();\n return addHeapObject(ret);\n};\n\nexport function __wbg_getRandomValues_b8f5dbd5f3995a9e() { return handleError(function (arg0, arg1) {\n getObject(arg0).getRandomValues(getObject(arg1));\n}, arguments) };\n\nexport function __wbg_getTime_46267b1c24877e30(arg0) {\n const ret = getObject(arg0).getTime();\n return ret;\n};\n\nexport function __wbg_get_67b2ba62fc30de12() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(getObject(arg0), getObject(arg1));\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_get_d5bb96e3856d8afd() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).get(getObject(arg1));\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_getwithrefkey_1dc361bd10053bfe(arg0, arg1) {\n const ret = getObject(arg0)[getObject(arg1)];\n return addHeapObject(ret);\n};\n\nexport function __wbg_has_a5ea9117f258a0ec() { return handleError(function (arg0, arg1) {\n const ret = Reflect.has(getObject(arg0), getObject(arg1));\n return ret;\n}, arguments) };\n\nexport function __wbg_headers_9cb51cfd2ac780a4(arg0) {\n const ret = getObject(arg0).headers;\n return addHeapObject(ret);\n};\n\nexport function __wbg_instanceof_ArrayBuffer_e14585432e3737fc(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof ArrayBuffer;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_instanceof_Object_7f2dcef8f78644a4(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Object;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_instanceof_Response_f2cc20d9f7dfd644(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Response;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_instanceof_Uint8Array_17156bcf118086a9(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Uint8Array;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_instanceof_Window_def73ea0955fc569(arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Window;\n } catch (_) {\n result = false;\n }\n const ret = result;\n return ret;\n};\n\nexport function __wbg_iterator_9a24c88df860dc65() {\n const ret = Symbol.iterator;\n return addHeapObject(ret);\n};\n\nexport function __wbg_jscontrollererror_new(arg0) {\n const ret = JsControllerError.__wrap(arg0);\n return addHeapObject(ret);\n};\n\nexport function __wbg_length_a446193dc22c12f8(arg0) {\n const ret = getObject(arg0).length;\n return ret;\n};\n\nexport function __wbg_location_350d99456c2f3693(arg0) {\n const ret = getObject(arg0).location;\n return addHeapObject(ret);\n};\n\nexport function __wbg_log_c222819a41e063d3(arg0) {\n console.log(getObject(arg0));\n};\n\nexport function __wbg_msCrypto_a61aeb35a24c1329(arg0) {\n const ret = getObject(arg0).msCrypto;\n return addHeapObject(ret);\n};\n\nexport function __wbg_navigator_1577371c070c8947(arg0) {\n const ret = getObject(arg0).navigator;\n return addHeapObject(ret);\n};\n\nexport function __wbg_new0_f788a2397c7ca929() {\n const ret = new Date();\n return addHeapObject(ret);\n};\n\nexport function __wbg_new_018dcc2d6c8c2f6a() { return handleError(function () {\n const ret = new Headers();\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_new_23a2665fac83c611(arg0, arg1) {\n try {\n var state0 = {a: arg0, b: arg1};\n var cb0 = (arg0, arg1) => {\n const a = state0.a;\n state0.a = 0;\n try {\n return __wbg_adapter_199(a, state0.b, arg0, arg1);\n } finally {\n state0.a = a;\n }\n };\n const ret = new Promise(cb0);\n return addHeapObject(ret);\n } finally {\n state0.a = state0.b = 0;\n }\n};\n\nexport function __wbg_new_2658d63118834d8e() {\n const ret = new Mutex();\n return addHeapObject(ret);\n};\n\nexport function __wbg_new_405e22f390576ce2() {\n const ret = new Object();\n return addHeapObject(ret);\n};\n\nexport function __wbg_new_78feb108b6472713() {\n const ret = new Array();\n return addHeapObject(ret);\n};\n\nexport function __wbg_new_a12002a7f91c75be(arg0) {\n const ret = new Uint8Array(getObject(arg0));\n return addHeapObject(ret);\n};\n\nexport function __wbg_new_e25e5aab09ff45db() { return handleError(function () {\n const ret = new AbortController();\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_newnoargs_105ed471475aaf50(arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n};\n\nexport function __wbg_newwithbyteoffsetandlength_d97e637ebe145a9a(arg0, arg1, arg2) {\n const ret = new Uint8Array(getObject(arg0), arg1 >>> 0, arg2 >>> 0);\n return addHeapObject(ret);\n};\n\nexport function __wbg_newwithlength_a381634e90c276d4(arg0) {\n const ret = new Uint8Array(arg0 >>> 0);\n return addHeapObject(ret);\n};\n\nexport function __wbg_newwithstrandinit_06c535e0a867c635() { return handleError(function (arg0, arg1, arg2) {\n const ret = new Request(getStringFromWasm0(arg0, arg1), getObject(arg2));\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_next_25feadfc0913fea9(arg0) {\n const ret = getObject(arg0).next;\n return addHeapObject(ret);\n};\n\nexport function __wbg_next_6574e1a8a62d1055() { return handleError(function (arg0) {\n const ret = getObject(arg0).next();\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_node_905d3e251edff8a2(arg0) {\n const ret = getObject(arg0).node;\n return addHeapObject(ret);\n};\n\nexport function __wbg_obtain_a9626b3b96e6dc2c(arg0) {\n const ret = getObject(arg0).obtain();\n return addHeapObject(ret);\n};\n\nexport function __wbg_origin_7c5d649acdace3ea() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg1).origin;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n}, arguments) };\n\nexport function __wbg_process_dc0fbacc7c1c06f7(arg0) {\n const ret = getObject(arg0).process;\n return addHeapObject(ret);\n};\n\nexport function __wbg_push_737cfc8c1432c2c6(arg0, arg1) {\n const ret = getObject(arg0).push(getObject(arg1));\n return ret;\n};\n\nexport function __wbg_queueMicrotask_97d92b4fcc8a61c5(arg0) {\n queueMicrotask(getObject(arg0));\n};\n\nexport function __wbg_queueMicrotask_d3219def82552485(arg0) {\n const ret = getObject(arg0).queueMicrotask;\n return addHeapObject(ret);\n};\n\nexport function __wbg_randomFillSync_ac0988aba3254290() { return handleError(function (arg0, arg1) {\n getObject(arg0).randomFillSync(takeObject(arg1));\n}, arguments) };\n\nexport function __wbg_require_60cc747a6bc5215a() { return handleError(function () {\n const ret = module.require;\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_resolve_4851785c9c5f573d(arg0) {\n const ret = Promise.resolve(getObject(arg0));\n return addHeapObject(ret);\n};\n\nexport function __wbg_setTimeout_73ce8df12de4f2f2(arg0, arg1) {\n const ret = setTimeout(getObject(arg0), arg1);\n return addHeapObject(ret);\n};\n\nexport function __wbg_set_37837023f3d740e8(arg0, arg1, arg2) {\n getObject(arg0)[arg1 >>> 0] = takeObject(arg2);\n};\n\nexport function __wbg_set_3f1d0b984ed272ed(arg0, arg1, arg2) {\n getObject(arg0)[takeObject(arg1)] = takeObject(arg2);\n};\n\nexport function __wbg_set_3fda3bac07393de4(arg0, arg1, arg2) {\n getObject(arg0)[takeObject(arg1)] = takeObject(arg2);\n};\n\nexport function __wbg_set_65595bdd868b3009(arg0, arg1, arg2) {\n getObject(arg0).set(getObject(arg1), arg2 >>> 0);\n};\n\nexport function __wbg_set_bb8cecf6a62b9f46() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2));\n return ret;\n}, arguments) };\n\nexport function __wbg_setbody_5923b78a95eedf29(arg0, arg1) {\n getObject(arg0).body = getObject(arg1);\n};\n\nexport function __wbg_setcredentials_c3a22f1cd105a2c6(arg0, arg1) {\n getObject(arg0).credentials = __wbindgen_enum_RequestCredentials[arg1];\n};\n\nexport function __wbg_setheaders_834c0bdb6a8949ad(arg0, arg1) {\n getObject(arg0).headers = getObject(arg1);\n};\n\nexport function __wbg_setmethod_3c5280fe5d890842(arg0, arg1, arg2) {\n getObject(arg0).method = getStringFromWasm0(arg1, arg2);\n};\n\nexport function __wbg_setmode_5dc300b865044b65(arg0, arg1) {\n getObject(arg0).mode = __wbindgen_enum_RequestMode[arg1];\n};\n\nexport function __wbg_setsignal_75b21ef3a81de905(arg0, arg1) {\n getObject(arg0).signal = getObject(arg1);\n};\n\nexport function __wbg_signMessage_c732ea9d998cac79() { return handleError(function (arg0, arg1, arg2, arg3) {\n let deferred0_0;\n let deferred0_1;\n let deferred1_0;\n let deferred1_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n deferred1_0 = arg2;\n deferred1_1 = arg3;\n const ret = window.keychain_wallets.signMessage(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3));\n return addHeapObject(ret);\n } finally {\n wasm.__wbindgen_export_3(deferred0_0, deferred0_1, 1);\n wasm.__wbindgen_export_3(deferred1_0, deferred1_1, 1);\n }\n}, arguments) };\n\nexport function __wbg_signal_aaf9ad74119f20a4(arg0) {\n const ret = getObject(arg0).signal;\n return addHeapObject(ret);\n};\n\nexport function __wbg_static_accessor_GLOBAL_88a902d13a557d07() {\n const ret = typeof global === 'undefined' ? null : global;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n};\n\nexport function __wbg_static_accessor_GLOBAL_THIS_56578be7e9f832b0() {\n const ret = typeof globalThis === 'undefined' ? null : globalThis;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n};\n\nexport function __wbg_static_accessor_SELF_37c5d418e4bf5819() {\n const ret = typeof self === 'undefined' ? null : self;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n};\n\nexport function __wbg_static_accessor_WINDOW_5de37043a91a9c40() {\n const ret = typeof window === 'undefined' ? null : window;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n};\n\nexport function __wbg_status_f6360336ca686bf0(arg0) {\n const ret = getObject(arg0).status;\n return ret;\n};\n\nexport function __wbg_stringify_f7ed6987935b4a24() { return handleError(function (arg0) {\n const ret = JSON.stringify(getObject(arg0));\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_subarray_aa9065fa9dc5df96(arg0, arg1, arg2) {\n const ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0);\n return addHeapObject(ret);\n};\n\nexport function __wbg_text_7805bea50de2af49() { return handleError(function (arg0) {\n const ret = getObject(arg0).text();\n return addHeapObject(ret);\n}, arguments) };\n\nexport function __wbg_then_44b73946d2fb3e7d(arg0, arg1) {\n const ret = getObject(arg0).then(getObject(arg1));\n return addHeapObject(ret);\n};\n\nexport function __wbg_then_48b406749878a531(arg0, arg1, arg2) {\n const ret = getObject(arg0).then(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n};\n\nexport function __wbg_url_ae10c34ca209681d(arg0, arg1) {\n const ret = getObject(arg1).url;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbg_value_cd1ffa7b1ab794f1(arg0) {\n const ret = getObject(arg0).value;\n return addHeapObject(ret);\n};\n\nexport function __wbg_versions_c01dfd4722a88165(arg0) {\n const ret = getObject(arg0).versions;\n return addHeapObject(ret);\n};\n\nexport function __wbindgen_boolean_get(arg0) {\n const v = getObject(arg0);\n const ret = typeof(v) === 'boolean' ? (v ? 1 : 0) : 2;\n return ret;\n};\n\nexport function __wbindgen_cb_drop(arg0) {\n const obj = takeObject(arg0).original;\n if (obj.cnt-- == 1) {\n obj.a = 0;\n return true;\n }\n const ret = false;\n return ret;\n};\n\nexport function __wbindgen_closure_wrapper2850(arg0, arg1, arg2) {\n const ret = makeMutClosure(arg0, arg1, 362, __wbg_adapter_42);\n return addHeapObject(ret);\n};\n\nexport function __wbindgen_closure_wrapper2983(arg0, arg1, arg2) {\n const ret = makeMutClosure(arg0, arg1, 395, __wbg_adapter_45);\n return addHeapObject(ret);\n};\n\nexport function __wbindgen_debug_string(arg0, arg1) {\n const ret = debugString(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbindgen_error_new(arg0, arg1) {\n const ret = new Error(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n};\n\nexport function __wbindgen_in(arg0, arg1) {\n const ret = getObject(arg0) in getObject(arg1);\n return ret;\n};\n\nexport function __wbindgen_is_function(arg0) {\n const ret = typeof(getObject(arg0)) === 'function';\n return ret;\n};\n\nexport function __wbindgen_is_object(arg0) {\n const val = getObject(arg0);\n const ret = typeof(val) === 'object' && val !== null;\n return ret;\n};\n\nexport function __wbindgen_is_string(arg0) {\n const ret = typeof(getObject(arg0)) === 'string';\n return ret;\n};\n\nexport function __wbindgen_is_undefined(arg0) {\n const ret = getObject(arg0) === undefined;\n return ret;\n};\n\nexport function __wbindgen_json_parse(arg0, arg1) {\n const ret = JSON.parse(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n};\n\nexport function __wbindgen_json_serialize(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = JSON.stringify(obj === undefined ? null : obj);\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbindgen_jsval_loose_eq(arg0, arg1) {\n const ret = getObject(arg0) == getObject(arg1);\n return ret;\n};\n\nexport function __wbindgen_memory() {\n const ret = wasm.memory;\n return addHeapObject(ret);\n};\n\nexport function __wbindgen_number_get(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'number' ? obj : undefined;\n getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);\n};\n\nexport function __wbindgen_number_new(arg0) {\n const ret = arg0;\n return addHeapObject(ret);\n};\n\nexport function __wbindgen_object_clone_ref(arg0) {\n const ret = getObject(arg0);\n return addHeapObject(ret);\n};\n\nexport function __wbindgen_object_drop_ref(arg0) {\n takeObject(arg0);\n};\n\nexport function __wbindgen_string_get(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n};\n\nexport function __wbindgen_string_new(arg0, arg1) {\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n};\n\nexport function __wbindgen_throw(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n};\n\n","import * as wasm from \"./session_wasm_bg.wasm\";\nexport * from \"./session_wasm_bg.js\";\nimport { __wbg_set_wasm } from \"./session_wasm_bg.js\";\n__wbg_set_wasm(wasm);","import { Policy } from \"@cartridge/controller-wasm\";\nimport { CartridgeSessionAccount } from \"@cartridge/controller-wasm/session\";\nimport { Call, InvokeFunctionResponse, WalletAccount } from \"starknet\";\n\nimport { normalizeCalls } from \"../utils\";\nimport BaseProvider from \"../provider\";\n\nexport * from \"../errors\";\nexport * from \"../types\";\n\nexport default class SessionAccount extends WalletAccount {\n public controller: CartridgeSessionAccount;\n\n constructor(\n provider: BaseProvider,\n {\n rpcUrl,\n privateKey,\n address,\n ownerGuid,\n chainId,\n expiresAt,\n policies,\n guardianKeyGuid,\n metadataHash,\n sessionKeyGuid,\n }: {\n rpcUrl: string;\n privateKey: string;\n address: string;\n ownerGuid: string;\n chainId: string;\n expiresAt: number;\n policies: Policy[];\n guardianKeyGuid: string;\n metadataHash: string;\n sessionKeyGuid: string;\n },\n ) {\n super({ nodeUrl: rpcUrl }, provider, address);\n\n this.controller = CartridgeSessionAccount.newAsRegistered(\n rpcUrl,\n privateKey,\n address,\n ownerGuid,\n chainId,\n {\n expiresAt,\n policies,\n guardianKeyGuid,\n metadataHash,\n sessionKeyGuid,\n },\n );\n }\n\n /**\n * Invoke execute function in account contract\n *\n * @param calls the invocation object or an array of them, containing:\n * - contractAddress - the address of the contract\n * - entrypoint - the entrypoint of the contract\n * - calldata - (defaults to []) the calldata\n * - signature - (defaults to []) the signature\n * @param abis (optional) the abi of the contract for better displaying\n *\n * @returns response from addTransaction\n */\n async execute(calls: Call | Call[]): Promise<InvokeFunctionResponse> {\n return this.controller.execute(normalizeCalls(calls));\n }\n}\n","import { ec, stark, WalletAccount } from \"starknet\";\n\nimport SessionAccount from \"./account\";\nimport { KEYCHAIN_URL } from \"../constants\";\nimport BaseProvider from \"../provider\";\nimport { toWasmPolicies } from \"../utils\";\nimport { SessionPolicies } from \"@cartridge/presets\";\nimport { AddStarknetChainParameters } from \"@starknet-io/types-js\";\nimport { ParsedSessionPolicies } from \"../policies\";\n\ninterface SessionRegistration {\n username: string;\n address: string;\n ownerGuid: string;\n transactionHash?: string;\n expiresAt: string;\n guardianKeyGuid: string;\n metadataHash: string;\n sessionKeyGuid: string;\n}\n\nexport type SessionOptions = {\n rpc: string;\n chainId: string;\n policies: SessionPolicies;\n redirectUrl: string;\n keychainUrl?: string;\n};\n\nexport default class SessionProvider extends BaseProvider {\n public id = \"controller_session\";\n public name = \"Controller Session\";\n\n protected _chainId: string;\n protected _rpcUrl: string;\n protected _username?: string;\n protected _redirectUrl: string;\n protected _policies: ParsedSessionPolicies;\n protected _keychainUrl: string;\n\n constructor({\n rpc,\n chainId,\n policies,\n redirectUrl,\n keychainUrl,\n }: SessionOptions) {\n super();\n\n this._policies = {\n verified: false,\n contracts: policies.contracts\n ? Object.fromEntries(\n Object.entries(policies.contracts).map(([address, contract]) => [\n address,\n {\n ...contract,\n methods: contract.methods.map((method) => ({\n ...method,\n authorized: true,\n })),\n },\n ]),\n )\n : undefined,\n messages: policies.messages?.map((message) => ({\n ...message,\n authorized: true,\n })),\n };\n\n this._rpcUrl = rpc;\n this._chainId = chainId;\n this._redirectUrl = redirectUrl;\n this._keychainUrl = keychainUrl || KEYCHAIN_URL;\n\n if (typeof window !== \"undefined\") {\n (window as any).starknet_controller_session = this;\n }\n }\n\n private validatePoliciesSubset(\n newPolicies: ParsedSessionPolicies,\n existingPolicies: ParsedSessionPolicies,\n ): boolean {\n if (newPolicies.contracts) {\n if (!existingPolicies.contracts) return false;\n\n for (const [address, contract] of Object.entries(newPolicies.contracts)) {\n const existingContract = existingPolicies.contracts[address];\n if (!existingContract) return false;\n\n for (const method of contract.methods) {\n const existingMethod = existingContract.methods.find(\n (m) => m.entrypoint === method.entrypoint,\n );\n if (!existingMethod || !existingMethod.authorized) return false;\n }\n }\n }\n\n if (newPolicies.messages) {\n if (!existingPolicies.messages) return false;\n\n for (const message of newPolicies.messages) {\n const existingMessage = existingPolicies.messages.find(\n (m) =>\n JSON.stringify(m.domain) === JSON.stringify(message.domain) &&\n JSON.stringify(m.types) === JSON.stringify(message.types),\n );\n if (!existingMessage || !existingMessage.authorized) return false;\n }\n }\n\n return true;\n }\n\n async username() {\n await this.tryRetrieveFromQueryOrStorage();\n return this._username;\n }\n\n async probe(): Promise<WalletAccount | undefined> {\n if (this.account) {\n return this.account;\n }\n\n this.account = await this.tryRetrieveFromQueryOrStorage();\n return this.account;\n }\n\n async connect(): Promise<WalletAccount | undefined> {\n if (this.account) {\n return this.account;\n }\n\n this.account = await this.tryRetrieveFromQueryOrStorage();\n if (this.account) {\n return this.account;\n }\n\n const pk = stark.randomAddress();\n const publicKey = ec.starkCurve.getStarkKey(pk);\n\n localStorage.setItem(\n \"sessionSigner\",\n JSON.stringify({\n privKey: pk,\n pubKey: publicKey,\n }),\n );\n\n localStorage.setItem(\"sessionPolicies\", JSON.stringify(this._policies));\n\n const url = `${\n this._keychainUrl\n }/session?public_key=${publicKey}&redirect_uri=${\n this._redirectUrl\n }&redirect_query_name=startapp&policies=${JSON.stringify(\n this._policies,\n )}&rpc_url=${this._rpcUrl}`;\n\n localStorage.setItem(\"lastUsedConnector\", this.id);\n window.open(url, \"_blank\");\n\n return this.account;\n }\n\n switchStarknetChain(_chainId: string): Promise<boolean> {\n throw new Error(\"switchStarknetChain not implemented\");\n }\n\n addStarknetChain(_chain: AddStarknetChainParameters): Promise<boolean> {\n throw new Error(\"addStarknetChain not implemented\");\n }\n\n disconnect(): Promise<void> {\n localStorage.removeItem(\"sessionSigner\");\n localStorage.removeItem(\"session\");\n localStorage.removeItem(\"sessionPolicies\");\n this.account = undefined;\n this._username = undefined;\n return Promise.resolve();\n }\n\n async tryRetrieveFromQueryOrStorage() {\n if (this.account) {\n return this.account;\n }\n\n const signerString = localStorage.getItem(\"sessionSigner\");\n const signer = signerString ? JSON.parse(signerString) : null;\n let sessionRegistration: SessionRegistration | null = null;\n\n if (window.location.search.includes(\"startapp\")) {\n const params = new URLSearchParams(window.location.search);\n const session = params.get(\"startapp\");\n if (session) {\n sessionRegistration = JSON.parse(atob(session));\n localStorage.setItem(\"session\", JSON.stringify(sessionRegistration));\n\n // Remove the session query parameter\n params.delete(\"startapp\");\n const newUrl =\n window.location.pathname +\n (params.toString() ? `?${params.toString()}` : \"\") +\n window.location.hash;\n window.history.replaceState({}, document.title, newUrl);\n }\n }\n\n if (!sessionRegistration) {\n const sessionString = localStorage.getItem(\"session\");\n if (sessionString) {\n sessionRegistration = JSON.parse(sessionString);\n }\n }\n\n if (!sessionRegistration || !signer) {\n return;\n }\n\n // Check expiration\n const expirationTime = parseInt(sessionRegistration.expiresAt) * 1000;\n if (Date.now() >= expirationTime) {\n this.clearStoredSession();\n return;\n }\n\n // Check stored policies\n const storedPoliciesStr = localStorage.getItem(\"sessionPolicies\");\n if (storedPoliciesStr) {\n const storedPolicies = JSON.parse(\n storedPoliciesStr,\n ) as ParsedSessionPolicies;\n\n const isValid = this.validatePoliciesSubset(\n this._policies,\n storedPolicies,\n );\n\n if (!isValid) {\n this.clearStoredSession();\n return;\n }\n }\n\n this._username = sessionRegistration.username;\n this.account = new SessionAccount(this, {\n rpcUrl: this._rpcUrl,\n privateKey: signer.privKey,\n address: sessionRegistration.address,\n ownerGuid: sessionRegistration.ownerGuid,\n chainId: this._chainId,\n expiresAt: parseInt(sessionRegistration.expiresAt),\n policies: toWasmPolicies(this._policies),\n guardianKeyGuid: sessionRegistration.guardianKeyGuid,\n metadataHash: sessionRegistration.metadataHash,\n sessionKeyGuid: sessionRegistration.sessionKeyGuid,\n });\n\n return this.account;\n }\n\n private clearStoredSession(): void {\n localStorage.removeItem(\"sessionSigner\");\n localStorage.removeItem(\"session\");\n localStorage.removeItem(\"sessionPolicies\");\n }\n}\n"],"names":["wasm","__wbg_set_wasm","val","heap","getObject","idx","WASM_VECTOR_LEN","cachedUint8ArrayMemory0","getUint8ArrayMemory0","lTextEncoder","cachedTextEncoder","encodeString","arg","view","buf","passStringToWasm0","malloc","realloc","ptr","len","mem","offset","code","ret","cachedDataViewMemory0","getDataViewMemory0","lTextDecoder","cachedTextDecoder","heap_next","addHeapObject","obj","dropObject","takeObject","state","passArrayJsValueToWasm0","array","i","CartridgeSessionAccountFinalization","CartridgeSessionAccount","rpc_url","signer","address","chain_id","session_authorization","session","retptr","ptr0","len0","ptr1","len1","r0","r1","r2","owner_guid","hash","calls","SessionAccount","WalletAccount","provider","rpcUrl","privateKey","ownerGuid","chainId","expiresAt","policies","guardianKeyGuid","metadataHash","sessionKeyGuid","normalizeCalls","SessionProvider","BaseProvider","rpc","redirectUrl","keychainUrl","contract","method","message","KEYCHAIN_URL","newPolicies","existingPolicies","existingContract","existingMethod","m","existingMessage","pk","stark","publicKey","ec","url","_chainId","_chain","signerString","sessionRegistration","params","newUrl","sessionString","expirationTime","storedPoliciesStr","storedPolicies","toWasmPolicies"],"mappings":"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","x_google_ignoreList":[0,1]}
|