stellar / js-stellar-sdk

Main Stellar client library for the JavaScript language.
https://stellar.github.io/js-stellar-sdk/
Apache License 2.0
628 stars 311 forks source link

Sort Maps #966

Closed kalepail closed 2 months ago

kalepail commented 4 months ago

I have lost a ton of time trying to submit unsorted maps. The Soroban env doesn't send back and thing helpful, the simulation env doesn't send back anything helpful, (HostError: Error(Object, InvalidInput)\nDebugInfo not available\n) that should be fixed, but ideally the SDK would handle sorting for you such that you never had to worry about this in the first place.

Relevant Discord thread https://discord.com/channels/897514728459468821/1239965901005000835

Bad XDR example

AAAAAgAAAADcBHzxtcCYRAte0yMAk4FVBP4S4/fYuQw1bs53+LxRHgB2MKwAGGPxAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAGAAAAAAAAAABtnWjn0F8ulcYZlpWb3WvITPHJGDoZSq1XjtYDWf9c+MAAAAHYWRkX3NpZwAAAAACAAAADQAAACAlA6t/uG4QFfq3MxMLWUBbg9HAyc3QR8c4LqVbjEckPwAAAA0AAABBBL9+idr00DqPxWyY6R6Ea6Mmkd2C37ek3gpMNmBBYXf0eF9yyGseFNznJiSXrCsTgHatrxgc7cmRDVMKI9hUicIAAAAAAAABAAAAAQAAAAG2daOfQXy6VxhmWlZvda8hM8ckYOhlKrVeO1gNZ/1z41PdVWjjSDEtAAAAAAAAAAEAAAAAAAAAAbZ1o59BfLpXGGZaVm91ryEzxyRg6GUqtV47WA1n/XPjAAAAB2FkZF9zaWcAAAAAAgAAAA0AAAAgJQOrf7huEBX6tzMTC1lAW4PRwMnN0EfHOC6lW4xHJD8AAAANAAAAQQS/fona9NA6j8VsmOkehGujJpHdgt+3pN4KTDZgQWF39HhfcshrHhTc5yYkl6wrE4B2ra8YHO3JkQ1TCiPYVInCAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAc6gEG/YVW8RQc3EtPS4ET8RgNLKlVm6uErKed2kNh/RAAAAAMAAAAGAAAAAbZ1o59BfLpXGGZaVm91ryEzxyRg6GUqtV47WA1n/XPjAAAADQAAACAlA6t/uG4QFfq3MxMLWUBbg9HAyc3QR8c4LqVbjEckPwAAAAEAAAAGAAAAAbZ1o59BfLpXGGZaVm91ryEzxyRg6GUqtV47WA1n/XPjAAAAFAAAAAEAAAAGAAAAAbZ1o59BfLpXGGZaVm91ryEzxyRg6GUqtV47WA1n/XPjAAAAFVPdVWjjSDEtAAAAAAAaVMwAABjoAAABeAAAAAAAdjCsAAAAAA==

Good XDR example

AAAAAgAAAADcBHzxtcCYRAte0yMAk4FVBP4S4/fYuQw1bs53+LxRHgADDJ8AGGPxAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAGAAAAAAAAAABtnWjn0F8ulcYZlpWb3WvITPHJGDoZSq1XjtYDWf9c+MAAAAHYWRkX3NpZwAAAAACAAAADQAAACAlA6t/uG4QFfq3MxMLWUBbg9HAyc3QR8c4LqVbjEckPwAAAA0AAABBBL9+idr00DqPxWyY6R6Ea6Mmkd2C37ek3gpMNmBBYXf0eF9yyGseFNznJiSXrCsTgHatrxgc7cmRDVMKI9hUicIAAAAAAAABAAAAAQAAAAG2daOfQXy6VxhmWlZvda8hM8ckYOhlKrVeO1gNZ/1z43XfNfy7A5XYAAAAAAAAAAEAAAAAAAAAAbZ1o59BfLpXGGZaVm91ryEzxyRg6GUqtV47WA1n/XPjAAAAB2FkZF9zaWcAAAAAAgAAAA0AAAAgJQOrf7huEBX6tzMTC1lAW4PRwMnN0EfHOC6lW4xHJD8AAAANAAAAQQS/fona9NA6j8VsmOkehGujJpHdgt+3pN4KTDZgQWF39HhfcshrHhTc5yYkl6wrE4B2ra8YHO3JkQ1TCiPYVInCAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAc6gEG/YVW8RQc3EtPS4ET8RgNLKlVm6uErKed2kNh/RAAAAAMAAAAGAAAAAbZ1o59BfLpXGGZaVm91ryEzxyRg6GUqtV47WA1n/XPjAAAADQAAACAlA6t/uG4QFfq3MxMLWUBbg9HAyc3QR8c4LqVbjEckPwAAAAEAAAAGAAAAAbZ1o59BfLpXGGZaVm91ryEzxyRg6GUqtV47WA1n/XPjAAAAFAAAAAEAAAAGAAAAAbZ1o59BfLpXGGZaVm91ryEzxyRg6GUqtV47WA1n/XPjAAAAFXXfNfy7A5XYAAAAAAAacTIAABmUAAABeAAAAAAAAwyfAAAAAA==

Notice the order of the id field in the signature map.

Shaptic commented 2 months ago

Closed by above PR