Commit Graph

2626 Commits

Author SHA1 Message Date
Jon Cinque 290d8d880a
associated-token-account: Add "CreateIdempotent" instruction (#2883)
* associated-token-account: Add "CreateIfNonExistent" instruction

* Address feedback

* Move ownership check
2022-02-10 00:35:46 +01:00
Tyera Eulberg 428d93bdcb
Move program-2022 tests to new crate (#2892) 2022-02-09 15:02:33 -07:00
Sebastian Bor 11d9952937
Governance: Use correct max size for multiple instruction transaction (#2891)
* fix: use correct max size for multiple instruction transaction

* chore: add instruction to serialisation tests
2022-02-09 12:32:06 +00:00
Michael Vines f36e973697 Update program id 2022-02-08 11:59:50 -08:00
Tyera Eulberg c3ad86dc2c
token-2022: fixup set_account_type to confirm AccountType (#2885)
* Add failing test

* Prevent cross-type set_account_types
2022-02-08 10:06:23 -07:00
Jon Cinque edec44180c
token-2022: Force refresh blockhash on no-op transaction (#2884) 2022-02-07 23:01:33 +01:00
Jon Cinque 4dbb4a5bb4
stake-pool-py: Add more waits to solidify tests (#2882) 2022-02-07 22:26:23 +01:00
Harsh Ghodkar 37a6db89db shifted dotenv to dev dependancies 2022-02-07 08:57:37 -08:00
Harsh Ghodkar c03de12813 update 2022-02-07 08:08:10 -08:00
Sebastian Bor fa1da606a7
Governance: Update release version to v2.2.2 (#2878)
* chore: Update release version to v2.2.2

* chore: Update chat version
2022-02-07 14:39:46 +00:00
Tyera Eulberg 482a9281f6
token-2022: Add MemoTransfer extension (#2822)
* Style nits

* Initial MemoTransfer extension

* Stub in check for memo

* Add memo-transfer token-client method

* Add MemoTransfer tests

* Add immutable get_extension, and clean up mod

* Update token/program-2022/src/extension/memo_transfer/instruction.rs

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>

* Update token/rust/src/token.rs

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
2022-02-04 17:12:01 -07:00
Tyera Eulberg c7ec4427b6
token-2022: Add Reallocate instruction (#2864)
* Pass by ref

* Dedupe ExtensionTypes in length apis

* Depend on deduplication in ExtensionType::get_account_len

* Add Reallocate instruction

* Remove unneeded api

* Add set_account_type helper and remove unneeded StateWithExtensionsMut api
2022-02-04 15:23:16 -07:00
Jon Cinque 129b35609a
token-2022: Support approve / revoke with extensions (#2870) 2022-02-04 23:07:48 +01:00
Jon Cinque d3539c19f9
token-2022: Fail to close account with withheld fees (#2871)
* token-2022: Fail to close account with withheld fees

* Add comment to use `get_extension`
2022-02-04 23:07:22 +01:00
Jon Cinque 93c7ad7618
token-2022: Support extensions in burn (#2869) 2022-02-04 22:25:36 +01:00
Jon Cinque 9b52455213
token-2022: Add delegate self-revoke (#2872)
* token-2022: Add delegate self-revoke

* Address feedback
2022-02-04 22:23:41 +01:00
Jon Cinque 0a0a6d9380
token-2022: Try to fix flaky test (#2874) 2022-02-04 20:11:01 +01:00
Jon Cinque 2d357e85f5
token-2022: Add transfer tests with extension too (#2868) 2022-02-04 19:16:39 +01:00
Michael Vines 43b9a37836 Remove TODO 2022-02-04 09:58:06 -08:00
Michael Vines 0df75ab5e8 Freezing -> Thawing 2022-02-04 09:55:36 -08:00
Sebastian Bor 1573319244
Governance: Fix Realm deserialisation and bump create versions for V2 (#2863)
* fix: realm deserialisation

* chore: update spl-gov version for chat

* chore: update spl-governance-tools version to 0.1.2

* chore: upgrade Anchor to 0.20.1

* chore: update addin-api version

* chore: update spl-governance-test-sdk version
2022-02-04 15:42:30 +00:00
Anurag Gupta 78e29e9238
token-swap: Changed Wrap SwapCurve's calculator field into Arc instead of Box (#2860)
* box changed to arc

* Imported Arc in all files

* warnings removed

* Updated fuzz
2022-02-03 20:22:51 +01:00
Jon Cinque eb048559eb
token-2022: Add withdraw withheld tokens from accounts (#2857)
* token-2022: Add withdraw withheld tokens from accounts

* Add instruction field for number of signers

* Update instruction field

* Rename field and update comment

* Fix test?
2022-02-03 00:08:13 +01:00
Tyera Eulberg 27b0df1159
token-2022: add StateWithExtensionsMut::unpack_after_realloc (#2859)
* Add unpack_after_realloc

* Dedupe with internal fn
2022-02-02 15:20:54 -07:00
Tyera Eulberg 3863914b10
token-2022: fix handling for extensions with no data (#2858)
* Add failing test

* Fix
2022-02-01 20:53:37 -07:00
Tyera Eulberg 448e75f8ec
token-2022: fixup realloc_needed (#2856)
* Add failing test cases and fix buggy method

* Add extension initializations to ensure buffers are long enough

* Add extra checks

* Move multisig check lower

* Add missing test case and fix
2022-02-01 19:31:10 -07:00
Michael Vines 115c3c4703 Add ImmutableOwner extension to block ATA owner authority changes 2022-02-01 12:53:45 -08:00
Sebastian Bor 4c0bc4c968
Governance V2 cleanup (#2855)
* chore: use exhaustive check for governance account type

* fix: realm v1 deserialisation

* chore: use exhaustive check for multiple account types

* chore:  use exhaustive check for seeds

* chore: update comments
2022-02-01 19:56:03 +00:00
Jon Cinque ab05e4e597
token-2022: Fix flaky test (#2851) 2022-02-01 11:57:02 +01:00
Michael Vines 809c1a1a77 GetAccountDataSize instruction now accepts user-provided extension types 2022-01-31 23:03:22 -08:00
Michael Vines 4ddd6c81cc Permit new token accounts to be overallocated 2022-01-31 22:48:16 -08:00
Jon Cinque ccebd8d4c8
token-2022: Add transfer fee withdrawal from mint (#2849) 2022-02-01 01:00:20 +01:00
Jon Cinque 28f1ba9be5
token-2022: Add freeze / thaw through StateWithExtensions (#2848) 2022-02-01 00:24:59 +01:00
Tyera Eulberg 5b0e0c12e6
Single use stmts (#2850) 2022-01-31 15:04:47 -07:00
Jon Cinque 1f77ba09ed
token-2022: DRY out the transfer fee tests (#2845) 2022-01-31 22:08:44 +01:00
Jon Cinque 37ba32f7c8
stake-pool-cli: Fix mismatched output fields (#2846) 2022-01-31 20:15:28 +01:00
Sebastian Bor ebc91e871a
Governance: add v2 account padding (#2842)
* chore: create RealmV2 account type

* feat: add padding to Realm account

* chore: move RealmConfigArgsV1 and GovernanceInstructionV1 to tests

* chore: Add RealmV2 comments

* chore: rename TokenOwnerRecord to V2 and add reserved space

* feat: translate TokenOwnerRecordV1

* chore: rename Governance to GovernanceV2

* feat: add reserved_v2 to Governance

* chore: make clippy happy

* feat: translate GovernanceV1 accounts

* chore: fix chat build

* fix: update seeds logic for governance V1 accounts

* fix: add check for RealmV1 and GovernanceV1

* chore: add padding to ProposalTransaction

* chore: add padding to VoteRecordV2

* chore: add padding to SignatoryRecord V2

* feat: translate SignatoryRecordV1 account
2022-01-31 03:58:28 +00:00
Sebastian Bor 925f8f5711
Governance: Limit proposal options to 10 (#2841)
* fix: limit proposal options to 10

* chore: increase reserved space to 64
2022-01-31 00:01:13 +00:00
Sebastian Bor 0e85d2e3e0
Governance: Rename tokens_to_create to weight_to_create (#2839)
* chore: assert options length when serialising ProposalV1

* chore: rename tokens_to_create to weight_to_create

* fix: use saturating_sub for voting_proposal_count

* chore: update voting_proposal_count comments

* Revert "chore: update voting_proposal_count comments"

This reverts commit 3e2eb9d90afdd4f6001d17b14f9579fb72ebb895.

* Revert "fix: use saturating_sub for voting_proposal_count"

This reverts commit 5d357049b7bbc12d8ec9d46caefe3b740967fae3.
2022-01-30 22:23:11 +00:00
Sebastian Bor c9f8dda737
Governance: Use saturating sub to decrease voting proposal count (#2840)
* fix: use saturating_sub for voting_proposal_count

* chore: update voting_proposal_count comments
2022-01-30 22:10:58 +00:00
Sebastian Bor 2600963545
Governance: Track proposals in Voting state for realms and governances (#2838)
* wip: add voting_proposal_count to Realm

* feat: track voting proposal count when proposal enters voting state

* chore: pass signatory or owner record

* chore: rename assert_can_create_governance to assert_create_authority_can_create_governance

* feat: decrease voting proposal count when proposal is canceled

* chore: remove clock and rent accounts

* chore: remove clock and rent

* chore: remove rent and clock

* chore: remove rent and clock

* chore: remove clock

* chore: remove rent

* chore: remove rent

* chore: remove rent

* fix: decrease voting_proposal_count when proposal is finalised

* fix: update voting_proposal_count when proposal vote is tipped

* wip: add muted checks for ream and governance config change
2022-01-29 23:52:11 +00:00
Sebastian Bor 3a21fcaa94
Governance: future proof v2 Proposal account (#2837)
* wip: add Veto and Abstain votes to Proposal

* chore: rename max_executable_options to max_voter_options

* wip: add start_at to Proposal

* feat: add SignOffProposal to proposal actions

* chore: rename start_at to start_voting_at

* feat: add max_voting_time

* chore: add comments

* chore: update comments

* feat: Add Abstain and Veto vote types
2022-01-29 20:53:52 +00:00
Sebastian Bor 851efed467
Governance: Rename AccountGovernance to Governance (#2836)
* chore: rename AccountGovernance to Governance

* chore: make governed_account optional

* chore: rename account_governance to governance
2022-01-29 18:14:27 +00:00
Christian Kamm 5850973d97
Governance: Add VoteTipping option (#2826)
* spl-governance: Add VoteTipping option

This allows two new tipping styles in addition to the previous "Strict"
mode:
- Early: Where a yes majority above the yes vote threshold will
  complete the vote, even if below 50% of total possible votes.
- Disabled: Where votes never complete early.

* address review nits
2022-01-29 18:13:18 +00:00
Sebastian Bor 2e69f37633
Governance: Proposals signed off by owner (#2835)
* feat: allow proposal owner to sign off proposal directly

* chore: add proposal by owner sign off tests

* chore: add test for owner trying to sign off proposal with signatory
2022-01-29 15:48:05 +00:00
Sebastian Bor aefbebe3ae
Governance: Multiple instructions per proposal transaction (#2833)
* feat: support multiple instructions per proposal instruction

* chore: rename instruction to transaction

* chore: rename ProposalInstruction to ProposalTransaction

* chore: rename instruction to transaction

* chore: rename InstructionExecutionStatus to TransactionExecutionStatus

* chore: rename proposal instruction to proposal transaction

* chore: make clippy happy

* chore: update instruction names to transactions

* chore: fix compilation

* chore: rename instruction to transaction

* chore: rename instruction to transaction

* chore rename instruction to transaction

Co-authored-by: Jon Cinque jon.cinque@gmail.com
2022-01-29 12:43:22 +00:00
Jon Cinque 95f6c4f501
token-2022: Add harvest from accounts to mint (#2820)
* token-2022: Add harvest from accounts to mint

* Address feedback
2022-01-29 12:21:57 +01:00
Sebastian Bor 46d27c7bed
Governance: Add max_executable_options to VoteType (#2831)
* feat: add max_executable_options to MultiChoice vote

* chore: update Governance comments

* chore: update comments
2022-01-29 02:51:50 +00:00
Sebastian Bor 6070eb5f6c
Governance: Allow realm authority create governances (#2828)
* feat: make it possible for realm authority to create governances

* chore: refactor create governance authority check into a single instruction

* chore: add tests to create governance with ream authority signer

* chore: make clippy happy

* chore: update comments

* chore: fix merge conflicts

Co-authored-by: Jon Cinque jon.cinque@gmail.com
2022-01-29 02:50:13 +00:00
Sebastian Bor aee41fcccd
Governance: Make realm authority check optional (#2827)
* feat: support unchecked SetRealmAuthority

* chore: add test for unchecked set realm authority

Co-authored-by: Jon Cinque
2022-01-29 02:08:52 +00:00