Commit Graph

952 Commits

Author SHA1 Message Date
Jon Cinque 1f77ba09ed
token-2022: DRY out the transfer fee tests (#2845) 2022-01-31 22:08:44 +01: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
Tyera Eulberg f9e6f66758
Add extension realloc helper (#2821) 2022-01-28 15:41:22 -07:00
Tyera Eulberg 8a2d3cc227
token-2022: fix panics due to small buffers (#2824)
* Add panicking test

* Fix panic

* Add another panicking case

* Fix panic

* Add another panicking case

* Fix panics

* Add another panicking case

* Fix

* Add another case

* Move existing fix outside if clause

* Add some helpful comments
2022-01-28 09:47:47 -07:00
Tyera Eulberg 76b59b6dc1
Fixup use stmts (#2816) 2022-01-26 15:02:07 -07:00
Tyera Eulberg c4de9e35f2
token-2022: remove split_at usages (#2813)
* Add helper and remove split_at usage

* Rework helpers for TransferFee extension ix unpacking

* Refactor pubkey unpacking, remove magic numbers
2022-01-26 14:11:15 -07:00
Tyera Eulberg 2daa6e645f
token-2022: add DefaultAccountState mint extension (#2810)
* Add DefaultAccountState extension

* Check DefaultAccountState in InitializeAccount

* Add rust client functionality

* Add tests

* Simplify ix variants

* Fixup freeze-auth signing state for multisig

* Add InitializeMint check to prevent freeze_authority.is_none() and default AccountState::Frozen

* Use separate freeze_authority in program_test

* Add docs for default-state instruction data

* Rebase on #2807
2022-01-26 13:30:24 -07:00
Jon Cinque e2d56f403d
token-2022: Assess transfer fees (#2807)
* Refactor transfer to use StateWithExtensionsMut

* Add basic transfer tests

* Add transfer fee calculation and use in transfer

* Add specific transfer fee tests

* Add self-transfer test + rename test
2022-01-26 19:25:10 +01:00
Jon Cinque 82d862ebde
token-2022: Enforce maximum transfer fee of 10k bps (#2808) 2022-01-26 14:02:24 +01:00
Tyera Eulberg 8eaaafed54
Refactor TestContext to enable unwrap_err (#2805) 2022-01-25 13:45:53 -07:00
Tyera Eulberg 87fe3793ea
token-2022: implement SetAuthority for TransferFeeConfig and WithheldWithdraw (#2801)
* Make comment more explicit

* Support setting TransferFeeConfig and WithheldWithdraw authorities

* Add tests
2022-01-25 10:23:34 -07:00
Michael Vines 6d62ea6cc7 Drop _program_id 2022-01-24 17:41:47 -08:00
Michael Vines 679e9b1212 spl-token-client no longer hard codes the token program id 2022-01-24 17:41:47 -08:00
Michael Vines 8e559ce69c Add --program-id argument 2022-01-24 17:41:47 -08:00
Michael Vines a46a198404 Document authority restriction 2022-01-24 17:41:47 -08:00
Jon Cinque 8bac649302
token-2022: Implement set transfer fee instruction (#2797)
* token-2022: Implement set transfer fee instruction

* Address feedback
2022-01-25 02:03:12 +01:00
Tyera Eulberg cc8826ac70
token-2022: plumb program_id through instruction builders (#2792)
* Plumb program_id into ix builders

* Don't unwrap extension instructions
2022-01-24 14:14:21 -07:00
Tyera Eulberg a98977f5fd
token-2022: add more tests (#2783)
* Add extended-mint case to test_get_account_data_size()

* Add missing account-type init

* Add basic init-acct ProgramTest tests
2022-01-24 11:39:13 -07:00
Tyera Eulberg c03c1fc7b4
token-2022: make extension instruction builders consistent with vanilla token (#2782)
* Make TransferFee and MintClose ix builders consistent with vanilla token

* Make ConfidentialTransfer ix builders consistent with vanilla token
2022-01-24 11:03:37 -07:00
Jordan Sexton 66770345eb alpha version bump 2022-01-22 00:29:56 -06:00
Jordan Sexton 0cfedde82d version bump: 0.2.0-alpha.1 2022-01-22 00:29:56 -06:00
Jordan Sexton 5afaae7a60 add decoded instruction type guard functions 2022-01-22 00:29:56 -06:00
Jordan Sexton 55b1732731 add DecodedInstruction type 2022-01-22 00:29:56 -06:00
Jordan Sexton 65cd045523 update deps 2022-01-22 00:26:44 -06:00
Jordan Sexton b55986b16b update tsconfig 2022-01-22 00:26:44 -06:00
steveluscher f090e55642 Build ESModules with typescript-esm 2022-01-22 00:26:44 -06:00
steveluscher eda6998654 Import indexes, explicitly 2022-01-22 00:26:44 -06:00
Tyera Eulberg 83c3ffad25
Bump solana crates to v1.9.5 (#2780)
* Bump solana crates to v1.9.5

* Update sol_set_return_data type signature and un-ignore test
2022-01-21 22:52:10 -07:00
Tyera Eulberg defdca2201
Comment SyscallStubs sol_set_return_data and ignore test for now (#2777) 2022-01-21 16:32:37 -07:00
Tyera Eulberg bf96dd43bf
token-2022: overwrite with init_extension using default state (#2746)
* Overwrite extension data when init is called

* Update comments
2022-01-21 16:28:04 -07:00
Tyera Eulberg fbd3dd4247
Bump solana-zk-token-sdk (#2772) 2022-01-21 15:57:55 -07:00
Tyera Eulberg 821ad120d8
Bump zk-token-sdk and impl Default for confidential-transfer extensions (#2771) 2022-01-21 13:33:41 -07:00
Tyera Eulberg 498d347cdd
token-2022: bump compute limit for close test (#2770) 2022-01-21 11:54:02 -07:00
Jon Cinque 54cb4ad1d8
associated-token-account: Revert to using spl-token-2022 (#2769)
* associated-token-account: Revert to using spl-token-2022

* Clear up no-entrypoint feature for rust client
2022-01-21 19:17:44 +01:00
Jon Cinque 78e7a9538e
associated-token-account: Bump dependent token version to 3.3 (#2766)
* associated-token-account: Bump dependent token version to 3.3

* Fix uses of deprecated instruction
2022-01-21 11:01:06 +01:00
Jon Cinque f5a6dc671c
token-2022: Zeroize account data on close (#2764)
* token-2022: Zeroize account data on close

* Address feedback
2022-01-21 02:47:48 +01:00
Jon Cinque 81f50127f1
token: Bump version to 3.3.0 (#2765) 2022-01-21 01:47:02 +01:00
Jon Cinque 3eccf25ece
token: Zeroize data on account close (#2763) 2022-01-21 01:03:00 +01:00
Jon Cinque ba46fedafb
token-2022: Add init transfer fee config (#2757) 2022-01-20 13:29:40 +01:00
Jon Cinque db0b2c5295
token-2022: Add mint close authority support everywhere (#2754)
* token-2022: Add mint close authority support everywhere

* Address feedback
2022-01-19 18:40:00 +01:00
Jon Cinque 480dc6870f
token-2022: Add init mint close authority (#2744) 2022-01-19 12:44:45 +01:00
Trent Nelson f3704db5ff Bump token-2022 test CUs again for tip of 1.9 2022-01-18 18:19:52 -07:00
Jon Cinque 0a61bc4ea3
token: Bump compute units in tests (#2752) 2022-01-18 13:15:08 +01:00
Tyera Eulberg 00b8a4b332
token-2022: Support extensions in InitializeAccount variations (#2743)
* Prep helper fn to reuse code

* Adjust error to match current _initialize_account handling

* Add new helper to initialize extension from ExtensionType

* Include required extensions in InitializeAccount processing

* Initialize native mint

* Add missing native-mint test case for get_account_data_size

* Remove superfluous mint unpack

* Limit scope of StateWithExtensionsMut method

* Update comments to be correct

* Check account length vis-a-vis required extensions in Initialize

* Noop confidential-transfer case, add comments, and make fn name more explicit

* gt -> ne
2022-01-15 13:59:03 -07:00
Jon Cinque 3e1dd73396
token-2022: Basic integration with rust client (#2739)
* token-2022: Basic integration with rust client

* Rename ExtenstionType -> Self

* Fix merge conflicts
2022-01-14 20:34:43 +01:00
Tyera Eulberg cad24e502a
Add GetAccountDataSize implementation (#2736)
* Add helper to get required Account extensions

* Add GetAccountDataSize processor

* Add get_account_data_size instruction

* Add test harness to check return data

* Add test of basic mint/account get-len

* Move method inside impl ExtensionType
2022-01-13 18:50:01 -07:00
Michael Vines e7737760ee Port the remainder of the zk-token program to the ConfidentialTransfer extension 2022-01-13 10:44:42 -08:00
Jon Cinque ac85fca43d
token: Refactor transfer fee instructions + processor (#2733) 2022-01-13 12:08:17 +01:00
Michael Vines db9f89828b Allow the confidential transfer extension to block `CloseAccount` 2022-01-12 09:54:53 -08:00
Jon Cinque c85373aa3e token: Check self-ownership in `validate_owner` 2022-01-12 08:20:10 -08:00