Skip to content

Conversation

@GuidoDipietro
Copy link
Member

@GuidoDipietro GuidoDipietro commented Dec 17, 2025

Adds instructions to the Settler for the lifecycle of a Proposal PDA.

Updates Rust program, Typescript SDK, and Typescript tests.


Instructions

create_proposal

Creates an on-chain Proposal PDA with the series of instructions that need to be executed to fulfill a given intent, along other fields (such as fees).

add_instructions_to_proposal

Adds more instruction to the Proposal PDA, if transaction space was not enough on create_proposal (similar idea to extend_intent, see #48 for an explanation).

claim_stale_proposal

Allows proposal_creator to claim rent from one or more stale Proposals (deadline in the past).
Technical debt: see if claim_stale_intent can be refactored to "one or more" like this instruction, rename to claim_stale_proposals.

execute_proposal

Partially implemented instruction.
Executes the instructions in a Proposal and validates Intent fulfillment.
This is a TODO, and only the Accounts section of this instruction is implemented as this is out of the scope of this PR.
This instruction is present here given this PR comes from a split of PR #41.

State

Proposal

PDA modeling a Proposal, i.e. a series of instructions and other metadata that has to be executed on-chain to solve an Intent. Axia will be able to validate on-chain through a signature that a given Proposal is valid and can be executed.


NOTE: Some files might have content from future PRs given this series of PRs come from a larger PR that was split (#41). I have tried to keep this to a minimum but bear this in mind.

@GuidoDipietro GuidoDipietro self-assigned this Dec 18, 2025
@GuidoDipietro GuidoDipietro marked this pull request as ready for review December 18, 2025 18:36
@GuidoDipietro GuidoDipietro changed the title Settler: Proposal Lifecycle (3) Settler: Proposal Lifecycle Dec 18, 2025
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