Error: recursive use of an object detected which would lead to unsafe aliasing in rust
❯ module.exports.__wbindgen_throw ../../node_modules/.pnpm/@dcspark+cardano-multiplatform-lib-nodejs@5.3.0/node_modules/@dcspark/cardano-multiplatform-lib-nodejs/cardano_multiplatform_lib.js:37518:11
❯ null.<anonymous> wasm:/wasm/00a747c2:1:2501206
❯ null.<anonymous> wasm:/wasm/00a747c2:1:2501220
❯ null.<anonymous> wasm:/wasm/00a747c2:1:2211768
❯ null.<anonymous> wasm:/wasm/00a747c2:1:1633196
❯ null.<anonymous> wasm:/wasm/00a747c2:1:2180248
❯ ../../node_modules/.pnpm/@dcspark+cardano-multiplatform-lib-nodejs@5.3.0/node_modules/@dcspark/cardano-multiplatform-lib-nodejs/cardano_multiplatform_lib.js:11775:77
So far this error has been observed to occur after successfully submitting a transaction using the Staking Validator design pattern (multiple script inputs being spent along with a withdrawal). The transaction gets successfully confirmed too every time. A reproduction has been added as a test in branch fix/memory-access-out-of-bounds.
Once such failed test run
Attaching code snippets for source of these errors in cardano_multiplatform_lib.js:
Line 11775: const Ed25519KeyHashListFinalization = new FinalizationRegistry(ptr => wasm.__wbg_ed25519keyhashlist_free(ptr));
Line 19117: const PartialPlutusWitnessFinalization = new FinalizationRegistry(ptr => wasm.__wbg_partialplutuswitness_free(ptr));
Line 37491: const WithdrawalBuilderResultFinalization = new FinalizationRegistry(ptr => wasm.__wbg_withdrawalbuilderresult_free(ptr));
Complete error:
Accompanying error:
So far this error has been observed to occur after successfully submitting a transaction using the Staking Validator design pattern (multiple script inputs being spent along with a withdrawal). The transaction gets successfully confirmed too every time. A reproduction has been added as a test in branch fix/memory-access-out-of-bounds. Once such failed test run
Attaching code snippets for source of these errors in
cardano_multiplatform_lib.js
:const Ed25519KeyHashListFinalization = new FinalizationRegistry(ptr => wasm.__wbg_ed25519keyhashlist_free(ptr));
const PartialPlutusWitnessFinalization = new FinalizationRegistry(ptr => wasm.__wbg_partialplutuswitness_free(ptr));
const WithdrawalBuilderResultFinalization = new FinalizationRegistry(ptr => wasm.__wbg_withdrawalbuilderresult_free(ptr));