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

fix: SDK-1341: Duplicate request error messages #88

Merged
12 commits merged into from
Jan 18, 2024
Merged

fix: SDK-1341: Duplicate request error messages #88

12 commits merged into from
Jan 18, 2024

Conversation

ghost
Copy link

@ghost ghost commented Jan 16, 2024

create_canister, icrc1_transfer, and send return InsufficientFunds instead of Duplicate if a request is submitted twice. This PR changes order of checks, so that Duplicate error is returned. Also added tests covering basic cases for the affected endpoints

The incorrect error scenario may occur if the account in question has very low funds (transfer eats up most of them).
When you submit the transaction first time around, it updates your balance and then makes an async call. If at this state you resubmit transaction you might not have enough balance to pass the balance check (or expected_allowance might not match in case of approve). In such case you will get an InsufficientFunds error instead of DuplicateTransaction.
On the other hand you need to update the balance before that async call, otherwise you enter all sorts of double spending scenarios.

@ghost ghost self-requested a review as a code owner January 16, 2024 01:01
Base automatically changed from mk/bump_ic_version to main January 16, 2024 08:45
@ghost ghost changed the title Mk/sdk-1341: Duplicate request error messages fix: SDK-1341: Duplicate request error messages Jan 16, 2024
Maciej Kot and others added 4 commits January 17, 2024 16:46
Co-authored-by: Thomas Locher <thomas.locher@dfinity.org>
Co-authored-by: Thomas Locher <thomas.locher@dfinity.org>
Co-authored-by: Thomas Locher <thomas.locher@dfinity.org>
Co-authored-by: Thomas Locher <thomas.locher@dfinity.org>
@ghost ghost merged commit 152e880 into main Jan 18, 2024
3 checks passed
@ghost ghost deleted the mk/SDK-1341 branch January 18, 2024 05:03
This pull request was closed.
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

Successfully merging this pull request may close these issues.

2 participants