Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Cardano] - Load CBOR created with eternl wallet on preprod #20

Closed
studiowebux opened this issue Jan 17, 2025 · 2 comments
Closed

[Cardano] - Load CBOR created with eternl wallet on preprod #20

studiowebux opened this issue Jan 17, 2025 · 2 comments

Comments

@studiowebux
Copy link

Hello,

I was wondering if it is possible to load a cbor from a wallet. (My end goal is to use Deno + CSL on the backend)

I tested this cbor encoded payload:

84a500d90102818258201008943adee654a7412f818674a3dc2090c7a3e6fda1b76cdc174085f7b0c5100101868258390020ae4d96939a04927f244dd821d185a5e4524eab157085df21e0e8c05b18e6e9fe8ba26c95bd65519d007284e1e1a8fbd4f7a04b696bb8f41a000f424082583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a9497da2482583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a4a4d4cd982583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a2526a66d82583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a2526a66c82583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a004c4b40021a0002bf8d031a04da3d790800a0f5f6

But was unable to load it using ADATransaction.fromCborBytes()


I have tested multiple things, but the recurrent issue are these two :

Test 1

══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following assertion was thrown building Builder:
cbor decoding faild.
'package:blockchain_utils/cbor/utils/cbor_utils.dart':
Failed assertion: line 23 pos 12: 'decode.consumed == cborBytes.length'

Input:

    ADATransaction.fromCborBytes(
        "84a500d90102818258201008943adee654a7412f818674a3dc2090c7a3e6fda1b76cdc174085f7b0c5100101868258390020ae4d96939a04927f244dd821d185a5e4524eab157085df21e0e8c05b18e6e9fe8ba26c95bd65519d007284e1e1a8fbd4f7a04b696bb8f41a000f424082583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a9497da2482583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a4a4d4cd982583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a2526a66d82583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a2526a66c82583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a004c4b40021a0002bf8d031a04da3d790800a0f5f6"
            .codeUnits);

Test 2

══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following ADAPluginException was thrown building Builder:
ADAPluginException(Failed to cast value. Excepted: CborSetValue<CborObject>, Type:
CborListValue<dynamic>)
ADATransaction.fromCborBytes(HEX.decode(
        "84a500d90102818258201008943adee654a7412f818674a3dc2090c7a3e6fda1b76cdc174085f7b0c5100101868258390020ae4d96939a04927f244dd821d185a5e4524eab157085df21e0e8c05b18e6e9fe8ba26c95bd65519d007284e1e1a8fbd4f7a04b696bb8f41a000f424082583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a9497da2482583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a4a4d4cd982583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a2526a66d82583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a2526a66c82583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a004c4b40021a0002bf8d031a04da3d790800a0f5f6"));

Versions:

  hex: ^0.2.0
  on_chain: ^5.0.0
  blockchain_utils: ^4.0.0
  cbor: ^6.3.3

Do you know what could cause that issue ?
I also tried with a cbor created with CSL with deno, same issue occured.

Thanks !

@mrtnetwork
Copy link
Owner

Hello,

I was wondering if it is possible to load a cbor from a wallet. (My end goal is to use Deno + CSL on the backend)

I tested this cbor encoded payload:

84a500d90102818258201008943adee654a7412f818674a3dc2090c7a3e6fda1b76cdc174085f7b0c5100101868258390020ae4d96939a04927f244dd821d185a5e4524eab157085df21e0e8c05b18e6e9fe8ba26c95bd65519d007284e1e1a8fbd4f7a04b696bb8f41a000f424082583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a9497da2482583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a4a4d4cd982583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a2526a66d82583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a2526a66c82583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a004c4b40021a0002bf8d031a04da3d790800a0f5f6

But was unable to load it using ADATransaction.fromCborBytes()

I have tested multiple things, but the recurrent issue are these two :

Test 1

══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following assertion was thrown building Builder:
cbor decoding faild.
'package:blockchain_utils/cbor/utils/cbor_utils.dart':
Failed assertion: line 23 pos 12: 'decode.consumed == cborBytes.length'

Input:

ADATransaction.fromCborBytes(
    "84a500d90102818258201008943adee654a7412f818674a3dc2090c7a3e6fda1b76cdc174085f7b0c5100101868258390020ae4d96939a04927f244dd821d185a5e4524eab157085df21e0e8c05b18e6e9fe8ba26c95bd65519d007284e1e1a8fbd4f7a04b696bb8f41a000f424082583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a9497da2482583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a4a4d4cd982583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a2526a66d82583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a2526a66c82583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a004c4b40021a0002bf8d031a04da3d790800a0f5f6"
        .codeUnits);

Test 2

══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following ADAPluginException was thrown building Builder:
ADAPluginException(Failed to cast value. Excepted: CborSetValue<CborObject>, Type:
CborListValue<dynamic>)

ADATransaction.fromCborBytes(HEX.decode(
"84a500d90102818258201008943adee654a7412f818674a3dc2090c7a3e6fda1b76cdc174085f7b0c5100101868258390020ae4d96939a04927f244dd821d185a5e4524eab157085df21e0e8c05b18e6e9fe8ba26c95bd65519d007284e1e1a8fbd4f7a04b696bb8f41a000f424082583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a9497da2482583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a4a4d4cd982583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a2526a66d82583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a2526a66c82583900daba36088577821c930cf85e9cc3a0536999fd6c71e2475d4f74b7ddc35549136d4f97cdcaace4bf32a58403a1fd30c525addb767dc5ce361a004c4b40021a0002bf8d031a04da3d790800a0f5f6"));
Versions:

  hex: ^0.2.0
  on_chain: ^5.0.0
  blockchain_utils: ^4.0.0
  cbor: ^6.3.3

Do you know what could cause that issue ? I also tried with a cbor created with CSL with deno, same issue occured.

Thanks !

Your transaction encoded the inputs in the body using a set instead of a list. Some packages use a set to encode transaction inputs, but this is not standard for Cardano transactions, which typically use lists.

To fix this issue for your current transaction, you can change the template type from CborListValue to CborSetValue in this file

I will check further details to confirm if sets are supported by the Cardano standard. If they are, I will implement support for decoding them in a future update.

@mrtnetwork
Copy link
Owner

@studiowebux now cardano transaction can be deserialize inputs as Set

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants