Add TP <> ContextExecutor integration + Jetton transfer error handling - #814
Open
krebernisak wants to merge 7 commits into
Open
Add TP <> ContextExecutor integration + Jetton transfer error handling#814krebernisak wants to merge 7 commits into
krebernisak wants to merge 7 commits into
Conversation
|
👋 krebernisak, thanks for creating this pull request! To help reviewers, please consider creating future PRs as drafts first. This allows you to self-review and make any final changes before notifying the team. Once you're ready, you can mark it as "Ready for review" to request feedback. Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
ContextExecutor Integration for Token Pools
Summary
Replaces queryId-keyed pending maps with per-operation
ContextExecutorcontracts across all three token pool variants, enabling concurrent cross-chain operations without storage collision or circuit breaker limits.What Changed
Architecture:
ContextExecutorcontract as a proxy to receive and forward completion messages (ReturnExcessesBack) with contextpendingBurns,pendingMints,pendingReleases,pendingLocksmaps — no more queryId lookup or 65k cell storage limits(code, id, owner, context, forwardFrom)— no on-chain storage needed for routingToken Pool Entrypoint
entrypoint.tolkonLockOrBurnTransferwithtry/catcharound forward payload decodingbestEffortReturnTransfer: Returns custody to sender on recoverable failuresnotifyLockOrBurnFailure: Sends failure notification with reserved pool balance protectionreserveLockOrBurnFailureValue: Protects pool balance from being consumed by recovery messagesPool Implementations (3 files):
BurnMintTokenPool: Burn/mint flows use executors for async completion; full bounce handling with rate limit refundLockReleaseTokenPool: Release flow uses executor; RichBounce support for bounce recoveryLockReleaseLockboxTokenPool: Both lock and release flows use executors;JettonLockBox_WithdrawFailedhandling for withdrawal failuresJettonLockBox:
failureContextfield toJettonLockBox_WithdrawExtra,JettonLockBox_Deposited, andJettonLockBox_WithdrawFailedmessagesContextExecutor (minor):
forwardFromarray now captured before clearing to prevent race conditions in message construction