Commit Graph

1341 Commits

Author SHA1 Message Date
hanako mumei 953e06b3a2 token-client: support wrap
also convert cli to use client for wrap
2022-09-21 10:37:53 -07:00
hanako mumei 6b05f02be7 token-cli: implement --immutable for create-account 2022-09-21 10:37:53 -07:00
hanako mumei 697a9e3d5e token-cli: convert create-account to use client 2022-09-21 10:37:53 -07:00
hanako mumei e5d4b824b7 token-cli: remove unnecessary fetch for memo transfers 2022-09-16 13:24:16 -07:00
Andrii Tretyakov feeda6a61e
token-cli: Memo transfer extension (#3525)
token-cli: Add support for required transfer memos
2022-09-16 11:17:42 -07:00
Jon Cinque f97a3dc7cf
clippy: Deny integer arithmetic, add allows where needed (#3606) 2022-09-15 13:16:53 +02:00
hanako mumei 2acc42fd96 token-cli: display all extensions except confidential 2022-09-14 11:36:40 -07:00
hanako mumei f3f9995484 token-cli: impl display for interest and transfer fee 2022-09-14 11:36:40 -07:00
hanako mumei bdd0d4938a token-cli: impl display for half of extensions 2022-09-14 11:36:40 -07:00
hanako mumei b90903c990 token-cli: impl two extensions for display
also indent all the displys cutely
2022-09-14 11:36:40 -07:00
hanako mumei 6d61b8e3e4 token-cli: impl `spl-token display` for mint
also show decimals for accounts, because we can
2022-09-14 11:36:40 -07:00
hanako mumei 00b8e7a8b1 token-cli: modernize account-info, impl display 2022-09-14 11:36:40 -07:00
hanako mumei f8d1503acf token-cli: convert multisig display to UiMultisig 2022-09-14 11:36:40 -07:00
hanako mumei bdc3087533 token-cli: modernize multisig display 2022-09-14 11:36:40 -07:00
samkim-crypto 7633f6f81d
token-2022: Add support for non transferable and immutable ownership in token client (#3582)
* add token client support for non transferable mint

* resolve conflict

* add basic tests for non transferable token account

* add test for fees for non-transferable accounts

* resolve test failure from rebase
2022-09-14 17:37:09 +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
Jordan Sexton d0277e65dd organize imports, lint 2022-09-12 18:39:51 -05:00
Jordan Sexton 48c0ede285 token js: patch version bump 2022-09-12 18:38:49 -05:00
Sammy Harris 6f4bdaa912
Update token-js with rent-less instructions (#3590)
* add new token instructions

* add decode helper function

* remove commented out thingy

* fix decode order

* update unit test

* add new unit tests
2022-09-12 17:52:53 -05:00
Jon Cinque 49a119b105
token-client: Add fmt::Display implementation to RpcClientResponse (#3594)
* token-client: Add Display to RpcClientResponse

* Handle crates defined as `{ version = "...", ... }
2022-09-12 22:09:55 +02:00
Jon Cinque 6bcd051d38
token-client: Change create_account to return T::Output (#3584) 2022-09-10 16:01:50 +02:00
hanako mumei 065a04788d token-cli: remove unnecessary program_id logic 2022-09-09 09:56:19 -07:00
hanako mumei 4dfd23e0b6 token-client: memo now explicitly declares signers 2022-09-07 18:17:54 -07:00
hanako mumei 8e6caf45ac token-cli: new config function get_account_checked
this replaces all instances of rpc_client.get_account -> check_owner
also we convert from rpc_client to program_client to further enforce offlineness
2022-09-07 14:36:39 -07:00
hanako mumei d2c33e26a4 token-cli: infer program_id based on cli args 2022-09-07 14:36:39 -07:00
hanako mumei 191977e2c6 token-cli: normalize argument names/descriptions
we now strictly adhere to the pattern:
* positional arg named `token`: a mint, described `TOKEN_MINT_ADDRESS`
* positional arg named `account`: an account, described `TOKEN_ACCOUNT_ADDRESS`
* positional arg named `address`: a mint or account, described `TOKEN_ADDRESS`, or a multisig, described `MULTISIG_ACCOUNT_ADDRESS`
* `--address` flag, named `address`: an account, described `TOKEN_ACCOUNT_ADDRESS`

normalize burn, unwrap, and supply to follow this convention
2022-09-07 14:36:39 -07:00
samkim-crypto fb0e6572a7
token-2022: add calculate post and pre fee amounts (#3570)
* add calculate post and pre fee amounts

* fix typo

* Update token/program-2022/src/extension/transfer_fee/mod.rs

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

* provide more info on ceiling division

* update tests

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
2022-09-07 21:08:12 +09:00
samkim-crypto 30870c96e8
confidential-extension: forbid confidential transfer if nontransferable mint (#3542)
* forbid confidential transfer if nontransferable mint

* add a note about nontransferable mint in the transfer instruction

* disable deposit and withdraw if mint nontransferable
2022-09-07 09:40:28 +09:00
hanako mumei b9cab85d81 token-cli: final cleanups on client refactor
use mint for Token objects whenever possible, rework multisig_signers to be prettier
2022-08-31 13:57:41 -07:00
hanako mumei 5e494c63e0 token-cli: promote fee_payer to Arc<dyn Signer> 2022-08-31 13:57:41 -07:00
hanako mumei cf25381108 token-cli: use token client for approve 2022-08-31 13:57:41 -07:00
hanako mumei b91972debb token-cli: use token client for freeze/thaw/revoke 2022-08-31 13:57:41 -07:00
hanako mumei 46206fe64c token-cli: support memo on command_mint 2022-08-31 13:57:41 -07:00
hanako mumei db4a950ca8 token-client: convert freeze/thaw interface 2022-08-31 13:57:41 -07:00
hanako mumei 1fb05454e7 token-client: convert approve/revoke interface 2022-08-31 13:57:41 -07:00
hanako mumei b30aac80a6 token-client: convert transfer interface 2022-08-31 13:57:41 -07:00
hanako mumei 8e196e5e77 token-cli: use token client for command_burn 2022-08-31 13:57:41 -07: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
hanako mumei 8d1e57018a token-cli: finish interest bearing mint
minor cleanups, guards on set-interest-rate, impl set-authority for interest-bearing mints
2022-08-30 21:12:59 -07:00
Udbhav Muthakana fbae99fe2c token-cli: Support the InterestBearingMint extension 2022-08-30 21:12:59 -07:00
Jon Cinque 422544b906
ci: Re-enable twotx job (#3553)
* ci: Re-enable twotx job

* Remake patch file
2022-08-31 01:41:05 +02:00
Jon Cinque b6259b3a51
token-2022: Add inverse fee calculation (#3524)
* token-2022: Add inverse fee calculation

* Rename functions
2022-08-30 17:56:34 +02:00
Jon Cinque ffbab71d49
token-2022: Use updated generic types for Token client in confidentials (#3546) 2022-08-29 23:27:29 +02:00
Andrii Tretyakov d65ab18fbd
token-cli: Removed usage of Account::LEN as a verificaton for token account (#3527)
replaced with Account::valid_account_data to support token2022
2022-08-29 12:42:33 -07:00
Jordan Sexton a578fc8159
add eslint-plugin-require-extensions (#3543) 2022-08-28 20:38:11 -05:00
hanako mumei 84c566b13e bump token-cli to 2.0.17
release has already been made and lives in the `token-cli-v2.0.17-branch` branch
2022-08-25 17:54:38 -07:00
hanako mumei 9382641da2 token-cli: remove #[allow(deprecated)] from toplevel
also remove ArcSigners temp code
2022-08-25 09:53:29 -07:00
Jordan Sexton d2b15ddc91 update spl-memo dependency 2022-08-24 19:04:27 -05:00
Jordan Sexton 65f5b102e8
spl-token: fix CJS imports (#3529)
* token-js: patch version bump

* add CJS package.json; fixes #3522

* alpha version bump

* remove alpha version

* add same postbuild step to memo js

* fix lockfiles
2022-08-24 19:01:19 -05:00
Athar Mohammad 2fe0ce60f8
[token-js] : Support for UiAmountToAmount and AmountToUiAmount instructions (#3345)
* suport for amountToUiAmount instruction

* support for uiamount to amount instruction

* upgrade @solana/web3.js to 1.47.4

* move amount.test from e2e-2022 to e2e

* fix and sort imports

Co-authored-by: Jordan Sexton <jordan@jordansexton.com>
2022-08-24 01:54:16 -05:00
hana e03a013184
token-cli: support `MintCloseAuthority` (#3487)
* cli: add --enable-close flag to create-token which sets its close authority to mint authority
* cli: add support to changing a mint close authority to authorize
* cli: add close-mint, a new command for closing a mint
* cli: update authorize and close-account to go through the token client
* client: change set_authority and close_account to support multisigners
2022-08-23 15:54:10 -07:00
Jordan Sexton 29d316e811
Fix Token program ESM exports (#3508)
* Fix Memo program ESM exports

* fix repository link

* Fix Token program ESM exports

* web3.js is a peer dependency

* memo/ts -> memo/js (same as token)

* add gh-pages dev dep

* add explicit js extensions

* use explicit js imports

* lint fixes for type imports

* fix version

* check in package-lock.json

* check in package-lock.json

* update spl-memo dep

* reorg imports

* move spl-memo to dev deps

* remove editorconfig

* update spl-memo

* update node version in CI

* memo and token use npm now

* use npm ci commands

* reorder imports
2022-08-22 19:07:03 -05:00
hanako mumei e06506b40b token-cli: dont push duplicates to bulk_signers 2022-08-22 16:28:43 -07:00
hanako mumei c426ed9749 Refactor create-token to go through token client
* cli: remove offline args from commands that create accounts
* cli: implement finish_tx, to be a replacement for handle_tx, which branches on the client return
* client: validate a transaction is fully signed before sending over rpc
* client: convert payer from Signer to Arc<dyn Signer> to support cli signers
* client: support nonce mode
* client: change create_mint to be an object method that returns SendTransaction::Output
* client: rename S2 to S everywhere that Token<T, S> is Token<T>
2022-08-18 17:35:55 -07: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
Jon Cinque 6e125f88a9
token[-2022]: Change `target_arch` to `target_os` (#3493) 2022-08-18 13:38:10 +02:00
Jordan Sexton d6297495ea
token/js - make unpack functions consistent (#3486)
* make argument order and comments consistent for unpack functions

* add function to unpack multisig for parity

* update spl-memo version

* patch version bump

* run prettier

* fix comment

* update lockfile
2022-08-16 16:20:54 -05:00
Tyera Eulberg 3c54aecfe9
Bump solana to v1.10.35 (#3485) 2022-08-16 12:33:24 -06:00
Tyera Eulberg 5d03efbabe
Bump token-2022 to 0.4.3 (#3480) 2022-08-15 22:08:32 -06:00
Jon Cinque d611db6a01
docs: Add token-2022 extension docs and JS examples (#3457)
* token-js: Add examples for all extensions

* docs: Add token-2022 extensions guide for JS

* Address feedback

* Fix extension
2022-08-16 01:07:21 +02:00
hanako mumei 2ea6dfa1de token-cli: let clients return signature or txn 2022-08-15 16:06:50 -07:00
hanako mumei c5caba0d63 token-cli: use program_client for blockhash 2022-08-15 16:06:50 -07:00
Jon Cinque 3d42786e6e token-cli: Add no-op client 2022-08-15 16:06:50 -07:00
Pierre 730b628c57
token-js: expose unpack methods (#3471)
* feat: expose unpack methods

* default program id

Co-authored-by: Arrowana <8245419+Arrowana@users.noreply.github.com>
2022-08-15 15:30:51 +02:00
Jon Cinque 1970356887
token-js: Version bump to 0.3.0 (#3448)
* token-js: Bump version 0.3.0 for release

* Improve README with support info
2022-08-09 18:54:46 +02:00
Jon Cinque 6b5e7cbbeb
token-js: Add reallocate instruction implementation (#3447) 2022-08-09 17:26:31 +02:00
Justin Malčić cc2739fce1
token-cli: Clone signers (#3290)
* Switch to Arc

* Add temporary structs

To be removed upon upstream changes

* Get multisig signers earlier

* Build SignerFromPathConfig with multisig pubkeys

* Get default signer and address

* Store default signer and address

* Use stored default address

* Use stored default signer

* Avoid rereading signer for fee payer

* Clean up use statements

* Rename to ArcSigner

* Remove default_keypair

* Remove default_address

* Add comment for temporary newtype

* Refactor config

* Create config from args in tests

* Remove unused params

* Fix clippy warnings

* Fix rustfmt warnings

* Fix clippy warnings

* Move imports
2022-08-08 23:40:08 +02:00
Tyera Eulberg 7c6235d9e7
Bump token to v3.5.0 and ata to v1.1.1 (#3430) 2022-08-04 01:09:38 -06:00
Tyera Eulberg 4a56a4b840
Prep for spl-token v3.5.0 (#3426)
* check that unpack is tolerant of small sizes (#3416)

* Refactor unpack and make test more robust (#3417)

* Refactor hasty fix to match token-2022

* Make test exhaustive

* cargo fmt

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

* Readd proptests without losing unit test, #3421

Co-authored-by: anatoly yakovenko <anatoly@solana.com>
Co-authored-by: Michael Vines <mvines@gmail.com>
2022-08-04 00:25:07 -06:00
Jon Cinque f5ce86d43d
token/ata: Bump versions to 3.4.0 and 1.1.0, respectively (#3427) 2022-08-04 01:03:04 +02:00
hana abc63ad946
token-cli: don't error when missing default config (#3424) 2022-08-03 14:58:24 -07:00
Jon Cinque 4fadd553e1
token: Reassign and reallocate accounts on close (#3415)
* token: Reassign and reallocate accounts on close

* Revert "Refactor unpack and make test more robust (#3417)"

This reverts commit c618de374e.

* Revert "check that unpack is tolerant of small sizes (#3416)"

This reverts commit 22faa05f18.

* Also revert d7f352bd78
2022-08-03 23:49:36 +02:00
Jon Cinque 93ec6cf74a
token-cli: Split out CI into separate step, run tests in serial (#3425)
* token-cli: Split out CI into separate step, run tests in serial

* Remove dependency on cargo-test-bpf to speed things up

* Don't download programs since they won't be available
2022-08-03 21:54:35 +02:00
Jon Cinque d7f352bd78
token[-2022]: Add proptest for unpacking (#3421) 2022-08-03 20:01:08 +02:00
Jon Cinque 4aa529d194
ci: Separate twoxtx build step, match Rust version (#3422)
* ci: Separate twoxtx build step, match Rust version

* Make a change to trigger CI

* Really trigger CI this time

* Fixup yaml issue

* Also set RUST_STABLE_VERSION

* Define env variable earlier
2022-08-03 19:53:35 +02:00
Tyera Eulberg c618de374e
Refactor unpack and make test more robust (#3417)
* Refactor hasty fix to match token-2022

* Make test exhaustive

* cargo fmt

Co-authored-by: Michael Vines <mvines@gmail.com>
2022-08-03 01:44:55 -06:00
Tyera Eulberg e0ff9add17
Bump spl-token (#3418) 2022-08-03 01:24:38 -06:00
anatoly yakovenko 22faa05f18
check that unpack is tolerant of small sizes (#3416) 2022-08-02 23:11:13 -06:00
samkim-crypto c98609850f
token-2022: merge instruction data for confidential Transfer and TransferWithFee (#3410) 2022-08-03 12:15:31 +09:00
Jon Cinque 8f74ba517c
token-cli: Run fewer tests at once (#3414) 2022-08-03 01:14:55 +02:00
Jon Cinque 674b0ac70e
token-cli: Add token-client dependency for token-2022 support (#3386) 2022-08-01 17:13:42 +02:00
Jon Cinque 80b8ff3b1d
token-cli: Run tests in batches (#3396) 2022-07-30 00:34:49 +02:00
Tyera Eulberg c21b4ae24a
Bump spl-token-2022 to 0.4.2 (#3390) 2022-07-27 12:25:11 -06:00
Tyera Eulberg c00194d225
Bump solana crates to v1.10.33 (#3385) 2022-07-27 11:28:14 -06:00
Jon Cinque 48e6acb53f
token-cli: Support base token-2022 (without extensions) (#3071) 2022-07-27 10:47:43 +02:00
Justin Malčić d4bd86e162
Improve token error messages in token-swap (#3357)
* Move PrintProgramError impls

* Add wrapper function

* Add PrintProgramError to use declaration
2022-07-26 13:59:37 +02:00
Jon Cinque 60117fd9c5
token-cli: Figure out program_id dynamically (#3354)
* Resolve program id with mint info, use it where possible

* Avoid using `config.program_id` when we can figure it out

* Rename function
2022-07-25 23:22:47 +02:00
Jon Cinque 37280ce2e6
token-cli: Move everything to async (#3353) 2022-07-25 21:05:01 +02:00
Jon Cinque d3cbe360ac
token-2022: Refactor PrintProgramError impl to error file (#3366) 2022-07-24 21:28:09 +02:00
Jon Cinque 725430d81c
Revert "token-cli: Downgrade to crates.io versions for release (#3371)" (#3372)
This reverts commit 1c9e2a540c.
2022-07-23 20:16:24 +02:00
Jon Cinque 1c9e2a540c
token-cli: Downgrade to crates.io versions for release (#3371) 2022-07-23 19:14:14 +02:00
Jon Cinque 4d1f8169a9
token-cli: Make BPF program builds in build.rs dependent on env var (#3362)
* token-cli: Make BPF program build dependent on env var

* Do it during `build` and not `test`
2022-07-22 09:30:30 +02:00
Justin Malčić 04954d0a1e
Add delegation tests (#3316)
* Add transfer test

* Add burn test

* Fix formatting
2022-07-21 14:51:45 +02:00
Jon Cinque b709607271
token-cli: Bump version to 2.0.16 for release (#3360) 2022-07-20 20:15:03 +02:00
Alisamar Husain b39efe8fb8
token-cli: Fix unexpected behavior when closing a wrapped SOL account with another wrapped SOL account as recipient (#3278)
* Check if recipient is a wrapped account

* Make clippy and fmt happy

* Avoided mutable, more functional clarity

* Add test for closing wrapped sol account

* wrap the default account

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

* Fix formatting and failing tests

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
2022-07-17 16:50:39 +02: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
jon wong 024ba3ad41
token-2022: Bump version for 0.4.1 release (#3328)
* Bumping `spl-token-2022` version

* Bump Cargo.lock
2022-07-09 01:02:49 +02:00
omertxyz f30ad1d752
Add serde feature - token-2022 (#3291)
* Add serde to token-2022

* Add tests

* Fix feature syntax

* Formatting, enabling features

* Make CI work, and some naming nit cleanup

* Un-async tests

Co-authored-by: jon wong <j@jnwng.com>
Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
2022-07-07 13:18:47 -04: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
Jon Cinque 5874a14584
token-cli: Move cmd test into a separate file (#3306) 2022-07-01 19:41:27 -04:00
Jon Cinque c1ee6a58be
Update Solana crates to 1.10.29 (#3303) 2022-07-01 16:51:01 -04:00
Jon Cinque c4f10d8d53
token-js: Throw if using token-2022 instructions with tokenkeg (#3296)
* token-js: Throw if using token-2022 instructions with tokenkeg

* Fixup updated params
2022-06-29 13:39:30 -04:00
Kunal Desai 7caf27cca6
Support interest bearing mint in token-js (#3266)
* Support interest bearing mint in token-js

* pr feedback

* Add tests + actions.ts

* Update docs

* pr feedback
2022-06-27 18:50:05 -04: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 0f316fb357
bump solana to v1.10.26 (#3274) 2022-06-20 09:55:49 +09:00
Jon Cinque e44d174f63
token-js: Clarify how to run tests (#3269) 2022-06-17 19:32:25 -04:00
Athar Mohammad 351cd60a5e
spl-token: Enums for Cli command names (#2598) (#3236)
* Added Enums which can be turned into strings
  for command names.
2022-06-17 16:56:03 -04:00
Jon Cinque 056948bbd1
token-js: Add memo transfer support (#3257) 2022-06-16 11:32:28 -04:00
Jon Cinque 5c478568c6
token-js: Support non-transferable mint (#3256) 2022-06-16 09:40:29 -04:00
Jon Cinque b461406e97
token-js: Add default account state support (#3255) 2022-06-16 09:40:11 -04:00
Jon Cinque 79d2c606b8
CI: Add `--max-warnings 0` to eslint to abort on errors (#3254)
* CI: Add `--max-warnings 0` to eslint to abort on errors

* Fix lint issue
2022-06-16 09:39:55 -04:00
Jon Cinque 27014732dd
token-2022: Bump version for next release (#3239) 2022-06-10 22:38:33 +02:00
Ronald Hood Jr 5493842399
token-js: Bindings For Transfer Fee Extension IXs (#3102)
* JS Bindings For Transfer Fee Extensions IXs

* Add tests and actions

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
2022-06-10 01:31:57 +02:00
Kunal Desai ad97543192
Support InitializeAccount3 in token js (#3233) 2022-06-09 13:57:01 +02:00
Kunal Desai 6096ac6f46
Support InitializeAccount2 instruction (#3229)
* Support InitializeAccount2 instruction

* Add unit test
2022-06-08 22:29:49 +02:00
dboures 3e9104736a
token-cli: produce error if invalid --config option (#3166)
* token-cli: produce error if invalid --config option

* token-cli: add test for invalid --config
2022-06-08 14:48:55 +02: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
Jon Cinque f7abf4a6bc
token-2022: Remove `reallocate` and `sibling-instruction` features (#3213) 2022-06-01 16:46:41 +02:00
Jon Cinque 773e2ee469
token-2022: Add interest-bearing extension (#3013)
* token-2022: Add interest-bearing extension

* Rename / comment feedback

* Rename interest-bearing -> interest-bearing mint
2022-06-01 16:46:30 +02:00
samkim-crypto 424c900345
bump solana to v1.10.19 (#3195)
* bump solana to v1.10.19

* update solana-version.sh
2022-05-25 08:40:30 +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
beeman 3af176d6c4
token-js: move start-server-and-test dep to devDependencies (#3186) 2022-05-20 14:19:04 +02: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
Michael Vines f1c693d067
token-2022: Add support for Non-Transferable Tokens (NTTs) - NonTransferableMint extension (#3178)
Co-authored-by: Juan Oxoby <me@jmoxo.by>
2022-05-17 16:16:13 -07:00
Dmitri Makarov 791cc8a776
Use target_os instead of target_arch for Solana conditional compilation (#3148) 2022-05-17 12:25:24 -07:00
Dmitri Makarov f1c1d440e9
Bump solana to v1.10.15 (#3176) 2022-05-17 11:27:30 -07:00
dboures 49c53ad653
token-js: Add sync version of getAssociatedTokenAddress (#3171)
* token-js: Bump web3.js dependency to 1.41.0

* token-js: Add sync version of getAssociatedTokenAddress

* token-js: add test for getAssociatedTokenAddressSync

* Update lockfile

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
2022-05-17 00:30:31 +02: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 bcf7aa2d6e
token-2022: client for confidential withdraw withheld tokens (#3134) 2022-05-06 15:52:43 +09:00
Tyera Eulberg 731a1363b1
Token client improvements (#3139)
* Use-stmt cleanup

* Use nonblocking RpcClient

* Arc-wrap RpcClient

* Confirm tx when using RpcClient

* Bump version for releasing
2022-05-04 18:11:11 -06:00
Tyera Eulberg d087b574e6
Accommodate upstream web3.js changes in twotx patch (#3140) 2022-05-04 17:32:51 -06:00
Jon Cinque e59a0dc186
token-2022: Set transfer fee two epochs ahead (#3120) 2022-04-27 17:48:08 +02:00
Tyera Eulberg 51ece68cec
Add feature-wrapping for new ConfidentialTransferInstruction::TransferWithFee (#3116) 2022-04-26 13:15:09 -06:00
Tyera Eulberg b3fe5b6d5d
Bump token-2022 (#3113)
* Bump token-2022

* Bump solana dependencies
2022-04-26 12:15:26 -06:00
Tyera Eulberg 2c1a671a77
Make spl-token-2022 instruction decoders pub (#3112)
* Make instruction decoders pub

* Add missing doc
2022-04-26 07:56:08 -06:00
Tyera Eulberg 2491b29a1e
Add AuthorityType variant to use for mint close-authority adjustment (#3111) 2022-04-26 07:55:15 -06:00
Jon Cinque c616db83c4
token-2022: Add compatibility test for instructions (#3106) 2022-04-22 23:55:18 +02: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
Harsh Ghodkar f7d4ebecc6
added a flag to check if the recipient address is correct (#3085)
* added a flag to check if the recipient address is correct

* small fix

* Made the changes of adding the check to a suggested block

* updating from base

* was able to clear merge conflicts

* added a couple tests

* better names for tests

* done with fixes

* cargo fmt
2022-04-21 21:53:30 +02:00
Ronald Hood Jr ae2e000434
InitializeImmutableOwner Instruction (#3068)
* initializeImmutableOwner Instruction

* Immutable Owner Testing

* immutable owner tests

* Creating Mint and Initializing Account

* Parameter Synchronization

* Documentation Update

Co-authored-by: Ronald Hood <ronald.hood@yale.edu>
2022-04-21 20:43:56 +02: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
Jon Cinque bbde6d8703
token-cli: Add tests for all cases from docs (#3070)
* token-cli: Add tests for all cases from docs

* Add TestValidator and build.rs for programs

* Fix solana-test-validator version

* Add solana-test-validator to patch script
2022-04-15 21:51:16 +02:00
Jon Cinque 1d1c2b178b
Upgrade crates to 1.10.8 (#3076) 2022-04-11 22:25:27 +02:00
Jon Cinque 513c1143a2
token-cli-bench: Remove RPC utils in favor of Tpu Client (#3046) 2022-04-01 13:41:33 +02:00
Jordan Sexton 552ada1035 remove old ts dir 2022-03-30 11:12:13 -06:00
Jon Cinque fe4eb13fec
token-js: Fix build due to duplicated web3.js (#3048) 2022-03-29 21:24:21 +02:00
Danny Povolotski 29d424e597
fully switch to @solana/buffer-layout (#2634)
* remove unused buffer-layout

* change to solana implementation of buffer-layout

* use latest buffer-layout and utils

* update buffer-layout-utils

* update buffer-layout-utils

* info.data is already Uint8Array

* update deps, fix lint

* remove node engine requirements

Co-authored-by: Danny Povolotski <danny@192.168.1.34>
Co-authored-by: Jordan Sexton <jordan@jordansexton.com>
2022-03-26 22:00:59 -06:00
Jon Cinque b7a3fc6243
token-2022: Fix (rarely) flakey test by changing tx (#3015) 2022-03-19 02:39:31 +01:00
Jon Cinque 2292dc2c8c
token-2022: Refactor instruction encoding / decoding (#3011) 2022-03-17 18:27:06 +01:00
Brennan Gebotys a2bbabc1dc
add getMultipleAccounts for Token (#2990)
* add getMultipleAccounts for Token

* update naming convention of fcn

* rename & reorg code

* lint fix

Co-authored-by: obiwan <you@example.com>
2022-03-11 22:11:50 +01: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
Jon Cinque 56a1e97c95
token-js: Update @solana/web3.js dependency (#3001) 2022-03-10 22:32:31 +01:00
Jon Cinque 29479fcc72
token-2022: Make program and crate deployable (#2985)
* token-2022: Make program and crate deployable

* Featurize the syscall usage

* Re-add GenericTokenAccount

* Rebase correctly with GenericTokenAccount

* Add updated valid_account_data implementation
2022-03-10 17:42:16 +01:00
Tyera Eulberg 810c79ec32
token-2022: Allow anyone to burn/close an Account owned by the system program or the incinerator (#2890)
* Allow anyone to burn and close token Accounts owned by the system program and the incinerator

* Require rent from incinerator/system-owned token accounts be burnt when accounts closed

* Add support to OG program
2022-03-09 19:31:39 -07:00
Lijun Wang 76a92cda2d
Added checks if a token account is initialized when checking validity (#2986)
* Added checks if an account is initialized when checking validity
2022-03-09 16:53:48 -08:00
Tyera Eulberg 221935bdba
Ignore failing test (#2999) 2022-03-09 16:48:36 -07:00
Tyera Eulberg 26d3a33939
Update twoxtx patch (#2997) 2022-03-09 12:15:42 -07:00
samkim-crypto 7ab4de6174
token-2022: minor rename pod types with descriptive types (#2983) 2022-03-04 12:26:28 -05:00
Tyera Eulberg e17706c7be
Spell out destination (#2977) 2022-03-03 12:34:17 -07:00
Lijun Wang bbbf250a67
Support unpacking token accounts fields partially (#2970)
* Support unpacking token accounts fields partially

Co-authored-by: Tyera Eulberg <teulberg@gmail.com>
2022-03-02 11:34:55 -08: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 3450f173de Fix transfer bug 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
Tyera Eulberg 29089e873e
Fix copypasta (#2962) 2022-02-26 13:28:57 -07:00
samkim-crypto 66cf3e9720
token-2022: update doc style for confidential extension instructions (#2961) 2022-02-26 09:21:48 -05:00
Jon Cinque 2e1286b06a
token-js: Support MintCloseAuthority (#2951) 2022-02-25 00:24:26 -05: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
Tyera Eulberg 0268d76d30
token-2022: complete memo extension functionality (#2876)
* Add NoMemo error and use syscall to require memos

* Flesh out + dedupe memo-transfer tests

* Add memo v1 test cases
2022-02-24 16:48:42 -07:00
Tyera Eulberg d505f2a739
Add comment (#2954) 2022-02-24 16:46:47 -07:00
Jon Cinque c3fda0d956
token-js: Add support for extension data (#2950) 2022-02-24 15:55:29 -05:00
Jon Cinque 5229a21c6a
token-js: Update instruction enum for UiAmountToAmount / AmountToUiAmount (#2949)
* token-js: Unflake create native test

* Add UiAmountToAmount and AmountToUiAmount to enum
2022-02-24 15:17:32 -05:00
Tyera Eulberg f4c5fdcfcf
Bump solana to v1.9.9 (#2902) 2022-02-23 16:20:55 -07:00
Michael Vines 131612417a Do not permit token accounts to be closed when the withheld amount is non-zero 2022-02-23 11:48:03 -08:00
Michael Vines 10559aed7a Reduce mut usage 2022-02-23 11:48:03 -08: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 7bdb77b330 Enable balance credits by default 2022-02-23 08:37:19 -08:00
Michael Vines 3f393e8a85 Remove unnecessary approval checks 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
Tyera Eulberg 6944577691
Custom build.rs for program-2022-test (#2940)
* Add custom build script from program-2022-test to build .so

* Log output
2022-02-22 22:29:28 -07:00
Michael Vines c4c14b5c51 Add confidential transfer initialize/update mint tests 2022-02-22 21:25:18 -07:00
Michael Vines 45ce0818f0 Add zktoken paper 2022-02-22 12:22:48 -07:00
Tyera Eulberg 3d92f8f4dc
Add token Amount/UiAmount conversion Instructions (#2928)
* Add Amount/UiAmount conversion Instructions to spl-token

* Use invalid-mint error in spl_token get_account_data_size

* Add Amount/UiAmount conversion Instructions to spl-token-2022
2022-02-17 16:25:57 -07:00
Jon Cinque bb6a91c56f
token-js: Support token-2022 in base tests (#2927) 2022-02-17 23:26:54 +01:00
Jon Cinque 558322798f
token-2022: Support extensions in `SyncNative` (#2926) 2022-02-17 22:50:10 +01:00
Zicklag 48fbb5b7c4 Fix Broken Link to Token Program TypeScript Docs 2022-02-16 12:59:12 -06:00
Tyera Eulberg 172e24e1f2
Initialize close_authority explicitly (#2919) 2022-02-15 17:27:28 -07:00
Jordan Sexton b5f3dfe0e4 token: fix gh-pages deploy path 2022-02-15 16:57:16 -06:00
Jordan Sexton d525d1ea2e token: fix gh-pages 2022-02-15 16:38:39 -06:00
Jordan Sexton f487f520bf run example 2022-02-15 16:33:36 -06:00
Jordan Sexton 00371383e8 update gh-pages config and link 2022-02-15 16:33:36 -06:00
Jordan Sexton f2134f36e8 remove usage 2022-02-15 16:33:36 -06:00
Jordan Sexton 16aa92df0a fix faq link 2022-02-15 16:33:36 -06:00
Jordan Sexton 292153ad40 increase mocha timeout 2022-02-15 16:33:36 -06:00