Commit Graph

41 Commits

Author SHA1 Message Date
samkim-crypto b9aba3fb8d
[confidential-extension] Use `OptionalNonZeroPubkey` and `OptionalNonZeroEncryptionPubkey` for confidential extension (#3943)
* use OptionalNonZeroPubkey for the confidential mint authority pubkey

* add OptionalNonZeroEncryptionPubkey

* update tests

* Update token/program-2022/src/pod.rs

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

* remove unnecessary COption convertion for OptionalNonZeroEncryptionPubkey

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
2022-12-23 11:06:18 +09:00
samkim-crypto 6386f24253
[confidential-extension] Restrict `InitializeMint` and `UpdateMint` instructions (#3938)
* restrict `UpdateMint` instruction

* update tests and token client for `UpdateMint`

* restrict `InitializeAccount` instruction

* update client and tests for `InitializeMint` instruction
2022-12-20 14:24:31 +09:00
samkim-crypto c51ccf05c2
[confidential-extension] Refactor and add comments for readability (#3921)
* pass over `InitializeAccount` to `Withdraw` instructions

* add `valid_as_source` and `valid_as_destination` functions

* pass over `Transfer` instruction

* pass over `ApplyPendingBalance` to `HarvestWithheldTokensToMint` instructions

* refactor pending balance credit counter increment
2022-12-16 12:42:55 +09:00
samkim-crypto 39a6d59f27
[token-2022] Divide encrypted fee into lo and hi (TOB-STK-11) (#3878)
* require regular fee proof for self-transfers with fee

* process encrypted lo and hi fee separately
2022-12-07 10:53:48 +09:00
samkim-crypto 6725958c26
[token-2022] Enable confidential payments only feature (#3790)
* add allow_non_confidential_credits field

* add tests for disabling non-confidential transfers

* Apply suggestions from code review

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

* clarify comment wording

* Update token/program-2022/src/extension/confidential_transfer/processor.rs

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

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
2022-11-17 13:10:21 +09:00
Jon Cinque 8d0a2e1000
token-2022: Add PermanentDelegate extension (#3725)
* token-2022: Add PermanentDelegate extension

* Address feedback

* Refactor getting permanent delegate

* Rename function

* More cleanup

* Fix ATA
2022-11-15 14:10:59 +01:00
samkim-crypto edac3c50f0
Disable confidential transfer tests (#3786)
* disable confidential transfer tests

* featurize additional parts of the code
2022-10-31 11:53:12 +09:00
hanako mumei 51f5e93e4e token-client: clean up useless temp vecs 2022-10-07 14:08:27 -07:00
hanako mumei a5a565b56c token-client: move decimals from Token methods to struct 2022-10-07 12:24:36 -07:00
hanako mumei 200b2acab4 token-cli: final fixes for client conversion 2022-10-06 17:33:34 -07:00
hanako mumei 37168db058 token-cli: convert required memos and interest rate to client 2022-10-06 17:33:34 -07:00
samkim-crypto 50abadd819
token-2022: integrate memo into confidential extension (#3587)
* resolve conflict

* add test for confidential extension with memo

* add test for confidential transfer with memo

* change proof instruction order for memo

* resolve conflict

* minor

* rename new_with_memo to new_with_required_memo_transfers

* fix failing tests due to rebase

* fix failing tests due to rebase
2022-09-26 12:27:44 +09:00
samkim-crypto 4587da1eab
confidential-extension: Restrict deposit source and withdraw dest to base accounts (#3540)
* resolve conflict

* update token client for new deposit syntax

* resolve conflict

* update tests

* address doc comments
2022-09-14 16:22:52 +09:00
Jon Cinque 6bcd051d38
token-client: Change create_account to return T::Output (#3584) 2022-09-10 16:01:50 +02:00
hanako mumei e540b172db token-cli: use token client for command_mint
* client: change mint_to to accept decimals and prefer mint_checked
* client: move multisig key winnowing into utility function
2022-08-31 13:57:41 -07:00
Jon Cinque ffbab71d49
token-2022: Use updated generic types for Token client in confidentials (#3546) 2022-08-29 23:27:29 +02:00
hana 65769ce23d
Update rust to 1.60, solana to 1.11.6 (#3492)
also change bpf to sbf throughout the codebase

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
2022-08-18 12:16:02 -07:00
samkim-crypto 937b64da37
Adjust confidential token rust client for offline signing (#3347)
* token-2022: remove account balance decryption from confidential transfer rust client

* token-2022: remove account balance decryption from withdraw withheld tokens from accounts

* token-2022: cargo fmt

* token-2022: update tests for new rust client syntax

* token-2022: cargo fmt

* token-2022: cargo clippy

* token-2022: minor
2022-07-16 05:34:19 +09:00
samkim-crypto 3afe1e652b
Derive elgamal key in token client (#3308)
* token-2022: derive elgamal key in token client

* token-2022: update program tests for key derivation

* token-2022: key derivation for apply pending balance

* token-2022: add configure account with max pending balance

* token-2022: update tests for apply pending balance

* token-2022: derive key for confidential trasfer with fee

* token-2022: update test for confidential transfer with fee

* token-2022: derive encryption keys for withdrawing withheld tokens

* token-2022: update tests
2022-07-04 15:47:33 +09:00
samkim-crypto 57c5fd80f6
token-2022: check destination accounts on confidential token tests (#3281)
* token-2022: check destination accounts on confidential token tests

* token-2022: cargo clippy
2022-06-21 23:59:26 +09:00
samkim-crypto c3137af9df
token-2022: add tests for withdraw of confidential withheld tokens from accounts (#3280)
* token-2022: add tests for withdraw of confidential withheld tokens from accounts

* token-2022: cargo fmt

* token-2022: cargo clippy
2022-06-21 22:02:15 +09:00
samkim-crypto 677acf173d
token-2022: limit incoming transfers for confidential transfer extension (#3208)
* token-2022: limit incoming transfers for confidential transfer extension

* token-2022: add maximum pending counter for confidential extension in client

* token-2022: update tests for ct configure account

* token-2022: cargo fmt

* divide pending balance into lo and hi

* token-2022: update ct processor for lo and hi pending balances

* token-2022: limit confidential transfer deposit and transfer amount in token client

* token_2022: rename TokenError::IllegalAmount

* token-2022: compare max pending credit as u64

* token-2022: fmt

* token-2022: minor fix error from rebase

* Update token/program-2022/src/extension/confidential_transfer/processor.rs

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

* token-2022: update configure account initialization comments

* token-2022: use strict comparison for max pending balance credit counter check

* token-2022: update deposit tests to check `pending_balance_hi` populated

* token-2022: update deposit tests to check that deposit and transfer fails when max pending exceeded

* token-2022: reset pending balance counter on `ApplyPendingBalance`

* token-2022: fix cargo test cases for credit counter

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2022-06-07 23:16:46 +09:00
samkim-crypto c2a3ecd970
token-2022: prevent an already configured confidential account to be configured again (#3216)
* token-2022: prevent an already configured confidential account to be configured again

* token-2022: add overwrite flag to init extension

* token-2022: clippy

* token-2022: update initialize mint for interest bearing mint

* token-2022: confidential transfer mint init allow overwrite
2022-06-07 09:42:23 +09:00
samkim-crypto 2ad468f8b7
Fix confidential self transfer with fees (#3193)
* token-2022: fix confidential self-transfers with fee

* token-2022: update tests for confidential self-transfer with fees
2022-05-24 19:19:19 +09:00
samkim-crypto b2077609d9
token-2022: add tests for confidential transfer withdraw withheld tokens from mint (#3181) 2022-05-19 11:12:00 +09:00
samkim-crypto 9e029349fc
Rename encryption pubkey (#3147)
* token-2022: change elgamal pubkey to encryption pubkey

* token-2022: update client and tests for  elgamal pubkey to encryption pubkey
2022-05-08 12:51:18 +09:00
samkim-crypto b6eb64b0b4
token-2022: check pending and available balance on confidential token tests (#3145)
* token-2022: check pending and available balance on confidential token tests

* token-2022: cargo fmt
2022-05-07 15:00:58 +09:00
samkim-crypto 049a89f351
token-2022: Add confidential transfer with fee instruction (#2988)
* token-2022: add separate transfer with fee instruction

* token-2022: add `TransferWithFee` client code

* apply twoxtx patch

* token-2022: add brief tests for transfer with fee

* Revert "apply twoxtx patch"

This reverts commit ce09d1f5d2fb496cd4ee9991be234726786e39f2.

* token-2022: cargo fmt

* token-2022: uncommenting the rest of the tests

* token-2022: cargo fmt

* token-2022: temporarily reverting to 5f89521

* token-2022: minor

* token-2022: clippy

* token-2022: apply twoxtx patch

* token-2022: fix transfer with fee test

* Revert "token-2022: apply twoxtx patch"

This reverts commit 577e63c2f38ce0a17fa4aede3d0acfd852b1d3ab.

* token-2022: simplify fee parameter for zkp on client

* token-2022: fix build
2022-04-22 14:00:42 -04:00
samkim-crypto 76f0532d83
token-2022: fix confidential transfer tests (#3096)
* token-2022: update zk-token-sdk to 1.10.8

* token-2022: remove ignore tag for confidential tranfer test
2022-04-21 12:21:21 -04:00
samkim-crypto 4ddaae5f21
Bump zk token sdk (#3002)
* token-2022: bumping zk-token-sdk to 1.10.1-pre1 and updating variable names accordingly

* token-2022: updating client and test variables to match newest zk-token-sdk
2022-03-11 06:57:32 -05:00
Tyera Eulberg 221935bdba
Ignore failing test (#2999) 2022-03-09 16:48:36 -07:00
Michael Vines ab23d6b41e Augment ct tests with decryptable_available_balance assertions 2022-02-28 17:26:32 -08:00
Michael Vines 22135e547c Add ConfidentialTransferInstruction Deposit/Transfer/Withdraw tests 2022-02-28 09:34:23 -08:00
Michael Vines 38243ddcd4 Add temporary twoxtx feature for ConfidentialTransfer extension unit testing 2022-02-28 09:34:23 -08:00
Michael Vines 6875603085 Initial ConfidentialTransferInstruction::EmptyAccount test 2022-02-28 09:34:23 -08:00
samkim-crypto af90facd1d
token-2022: add fee withdraw and harvest instructions (#2907)
* token-2022: add fee harvest instruction for confidential extension

* token-2022: cargo fmt

* token-2022: add `WithdrawWithheldTokensMint` processor

* token-2022: add `WithdrawWithheldTokensAccounts` processor

* token-2022: incorporate VerifyWithdrawWithheldTokens instruction

* token-2022: minor variable name changes

* token-2022: additional comments + renaming variables

* token-2022: check if confidential extension was approved for fee harvest

Co-authored-by: Michael Vines <mvines@gmail.com>

* token-2022: fix error type for overflow

* token-2022: remove unnecessary fee extension check for confidential token harvest

* token-2022: add extra detail on front-running for harvesting fees

* token-2022: fix pending balance

* token-2022: bump zk-token-sdk to 0.8.0

* token-2022: fix minor variable name issue

* token-2022: minor spelling

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>

* token-2022: addressing smaller review feedback

* token-2022: change fee_mint to transfer_fee_config in confidential transfer

* Update token/program-2022/Cargo.toml

* token-2022: fix cargo bpf-test fail

* token-2022: fixing a previous comment mistake

Co-authored-by: Michael Vines <mvines@gmail.com>
Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2022-02-24 21:16:32 -05:00
Michael Vines 1bcd07dca1 Field name cleanup 2022-02-23 09:54:46 -08:00
Michael Vines 656f0eb1d9 Reduce test code duplication 2022-02-23 09:54:46 -08:00
Michael Vines e111e997b7 Add {En,Dis}ableBalanceCredits test 2022-02-23 08:37:19 -08:00
Michael Vines 7c3b614af0 Add confidential transfer configure and approve account tests 2022-02-23 07:37:14 -08:00
Michael Vines c4c14b5c51 Add confidential transfer initialize/update mint tests 2022-02-22 21:25:18 -07:00