feature: add new token program feature (backport #18780) (#18803)

* feature: add new token program feature (#18780)

* feature: add new token program feature

* Fixup test

* Update to spl-token v3.2.0

* Update Cargo.lock + fmt

* Update token program version in fetch-spl.sh

* Bump associated token program to 1.0.3

* Add aToken so

(cherry picked from commit 51f3b9aa7c)

# Conflicts:
#	Cargo.lock
#	account-decoder/Cargo.toml
#	accounts-cluster-bench/Cargo.toml
#	programs/bpf/Cargo.lock
#	rpc/Cargo.toml
#	sdk/src/feature_set.rs
#	tokens/Cargo.toml
#	transaction-status/Cargo.toml

* Fix merge issues

* Re-generate lock files

Co-authored-by: Jon Cinque <jon.cinque@gmail.com>
This commit is contained in:
mergify[bot]
2021-07-21 15:05:45 +00:00
committed by GitHub
parent 1cdcabf7cf
commit 7427dafc36
18 changed files with 125 additions and 176 deletions

110
Cargo.lock generated
View File

@ -352,63 +352,29 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
[[package]]
name = "borsh"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a5a26c53ddf60281f18e7a29b20db7ba3db82a9d81b9650bfaa02d646f50d364"
dependencies = [
"borsh-derive 0.8.1",
"hashbrown 0.9.1",
]
[[package]] [[package]]
name = "borsh" name = "borsh"
version = "0.9.0" version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fcabb02816fdadf90866dc9a7824491ccb63d69f55375a266dc03509ac68d36" checksum = "4fcabb02816fdadf90866dc9a7824491ccb63d69f55375a266dc03509ac68d36"
dependencies = [ dependencies = [
"borsh-derive 0.9.0", "borsh-derive",
"hashbrown 0.9.1", "hashbrown 0.9.1",
] ]
[[package]]
name = "borsh-derive"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b637a47728b78a78cd7f4b85bf06d71ef4221840e059a38f048be2422bf673b2"
dependencies = [
"borsh-derive-internal 0.8.1",
"borsh-schema-derive-internal 0.8.1",
"proc-macro-crate",
"proc-macro2 1.0.24",
"syn 1.0.60",
]
[[package]] [[package]]
name = "borsh-derive" name = "borsh-derive"
version = "0.9.0" version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4bd16f0729b89f0a212b0e2e1d19cc6593df63f771161a11863967780e2d033d" checksum = "4bd16f0729b89f0a212b0e2e1d19cc6593df63f771161a11863967780e2d033d"
dependencies = [ dependencies = [
"borsh-derive-internal 0.9.0", "borsh-derive-internal",
"borsh-schema-derive-internal 0.9.0", "borsh-schema-derive-internal",
"proc-macro-crate", "proc-macro-crate",
"proc-macro2 1.0.24", "proc-macro2 1.0.24",
"syn 1.0.60", "syn 1.0.60",
] ]
[[package]]
name = "borsh-derive-internal"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d813fa25eb0bed78c36492cff4415f38c760d6de833d255ba9095bd8ebb7d725"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.9",
"syn 1.0.60",
]
[[package]] [[package]]
name = "borsh-derive-internal" name = "borsh-derive-internal"
version = "0.9.0" version = "0.9.0"
@ -420,17 +386,6 @@ dependencies = [
"syn 1.0.60", "syn 1.0.60",
] ]
[[package]]
name = "borsh-schema-derive-internal"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dcf78ee4a98c8cb9eba1bac3d3e2a1ea3d7673c719ce691e67b5cbafc472d3b7"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.9",
"syn 1.0.60",
]
[[package]] [[package]]
name = "borsh-schema-derive-internal" name = "borsh-schema-derive-internal"
version = "0.9.0" version = "0.9.0"
@ -4162,8 +4117,8 @@ name = "solana-banks-client"
version = "1.7.7" version = "1.7.7"
dependencies = [ dependencies = [
"bincode", "bincode",
"borsh 0.9.0", "borsh",
"borsh-derive 0.9.0", "borsh-derive",
"futures 0.3.8", "futures 0.3.8",
"mio 0.7.6", "mio 0.7.6",
"solana-banks-interface", "solana-banks-interface",
@ -4642,9 +4597,9 @@ dependencies = [
[[package]] [[package]]
name = "solana-frozen-abi" name = "solana-frozen-abi"
version = "1.7.1" version = "1.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95c481f0f29753f5b2d382628abae98a1dd87b572ddc7cbe5fe55ca62b6f7f07" checksum = "b0b98d31e0662fedf3a1ee30919c655713874d578e19e65affe46109b1b927f9"
dependencies = [ dependencies = [
"bs58", "bs58",
"bv", "bv",
@ -4655,8 +4610,8 @@ dependencies = [
"serde", "serde",
"serde_derive", "serde_derive",
"sha2 0.9.2", "sha2 0.9.2",
"solana-frozen-abi-macro 1.7.1", "solana-frozen-abi-macro 1.7.6",
"solana-logger 1.7.1", "solana-logger 1.7.6",
"thiserror", "thiserror",
] ]
@ -4680,9 +4635,9 @@ dependencies = [
[[package]] [[package]]
name = "solana-frozen-abi-macro" name = "solana-frozen-abi-macro"
version = "1.7.1" version = "1.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2068bcc47160ac9081893439b10a05e4bbe85cc0f6bccb6f1b0815423fbdd0c" checksum = "ceac6e8ad1a784c92ff5f3d6ad68a8d664d389b08055b674c38b2b9abb69e6d4"
dependencies = [ dependencies = [
"proc-macro2 1.0.24", "proc-macro2 1.0.24",
"quote 1.0.9", "quote 1.0.9",
@ -4959,9 +4914,9 @@ dependencies = [
[[package]] [[package]]
name = "solana-logger" name = "solana-logger"
version = "1.7.1" version = "1.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ea5932e186629f47859924b3773cfd8bcb4b8796898ac85c1fa0a6a2024e5c6" checksum = "ec7c514fe57f8c5042fa88c19f5711c67f264db723d9d79379fcb78dd1f09bbf"
dependencies = [ dependencies = [
"env_logger", "env_logger",
"lazy_static", "lazy_static",
@ -5145,20 +5100,21 @@ dependencies = [
[[package]] [[package]]
name = "solana-program" name = "solana-program"
version = "1.7.1" version = "1.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a2df39c63e21c5b58e2012e7675bed5e8dd5100470ffddedcafb78f5a7e3abe" checksum = "3bfe6a5dfc5372c0a946018ecdd8115e38af78cea8275bac48cf3d105c6b1fb3"
dependencies = [ dependencies = [
"bincode", "bincode",
"blake3", "blake3",
"borsh 0.8.1", "borsh",
"borsh-derive 0.8.1", "borsh-derive",
"bs58", "bs58",
"bv", "bv",
"curve25519-dalek 2.1.0", "curve25519-dalek 2.1.0",
"hex", "hex",
"itertools 0.9.0", "itertools 0.9.0",
"lazy_static", "lazy_static",
"libsecp256k1",
"log 0.4.11", "log 0.4.11",
"num-derive", "num-derive",
"num-traits", "num-traits",
@ -5170,10 +5126,10 @@ dependencies = [
"serde_derive", "serde_derive",
"sha2 0.9.2", "sha2 0.9.2",
"sha3", "sha3",
"solana-frozen-abi 1.7.1", "solana-frozen-abi 1.7.6",
"solana-frozen-abi-macro 1.7.1", "solana-frozen-abi-macro 1.7.6",
"solana-logger 1.7.1", "solana-logger 1.7.6",
"solana-sdk-macro 1.7.1", "solana-sdk-macro 1.7.6",
"thiserror", "thiserror",
] ]
@ -5184,8 +5140,8 @@ dependencies = [
"assert_matches", "assert_matches",
"bincode", "bincode",
"blake3", "blake3",
"borsh 0.9.0", "borsh",
"borsh-derive 0.9.0", "borsh-derive",
"bs58", "bs58",
"bv", "bv",
"curve25519-dalek 2.1.0", "curve25519-dalek 2.1.0",
@ -5422,9 +5378,9 @@ dependencies = [
[[package]] [[package]]
name = "solana-sdk-macro" name = "solana-sdk-macro"
version = "1.7.1" version = "1.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6473d8fa445520564c84e8803320721404d160ffd876a125326a726541f11534" checksum = "84710ce45a21cccd9f2b09d8e9aad529080bb2540f27b1253874b6e732b465b9"
dependencies = [ dependencies = [
"bs58", "bs58",
"proc-macro2 1.0.24", "proc-macro2 1.0.24",
@ -5762,11 +5718,11 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
[[package]] [[package]]
name = "spl-associated-token-account" name = "spl-associated-token-account"
version = "1.0.2" version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4adc47eebe5d2b662cbaaba1843719c28a67e5ec5d0460bc3ca60900a51f74e2" checksum = "393e2240d521c3dd770806bff25c2c00d761ac962be106e14e22dd912007f428"
dependencies = [ dependencies = [
"solana-program 1.7.1", "solana-program 1.7.6",
"spl-token", "spl-token",
] ]
@ -5776,20 +5732,20 @@ version = "3.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd0dc6f70db6bacea7ff25870b016a65ba1d1b6013536f08e4fd79a8f9005325" checksum = "bd0dc6f70db6bacea7ff25870b016a65ba1d1b6013536f08e4fd79a8f9005325"
dependencies = [ dependencies = [
"solana-program 1.7.1", "solana-program 1.7.6",
] ]
[[package]] [[package]]
name = "spl-token" name = "spl-token"
version = "3.1.1" version = "3.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbfa8fd791aeb4d7ad5fedb7872478de9f4e8b4fcb02dfd9e7f2f9ae3f3ddd73" checksum = "93bfdd5bd7c869cb565c7d7635c4fafe189b988a0bdef81063cd9585c6b8dc01"
dependencies = [ dependencies = [
"arrayref", "arrayref",
"num-derive", "num-derive",
"num-traits", "num-traits",
"num_enum", "num_enum",
"solana-program 1.7.1", "solana-program 1.7.6",
"thiserror", "thiserror",
] ]

View File

@ -22,7 +22,7 @@ serde_json = "1.0.56"
solana-config-program = { path = "../programs/config", version = "=1.7.7" } solana-config-program = { path = "../programs/config", version = "=1.7.7" }
solana-sdk = { path = "../sdk", version = "=1.7.7" } solana-sdk = { path = "../sdk", version = "=1.7.7" }
solana-vote-program = { path = "../programs/vote", version = "=1.7.7" } solana-vote-program = { path = "../programs/vote", version = "=1.7.7" }
spl-token-v2-0 = { package = "spl-token", version = "=3.1.1", features = ["no-entrypoint"] } spl-token-v2-0 = { package = "spl-token", version = "=3.2.0", features = ["no-entrypoint"] }
thiserror = "1.0" thiserror = "1.0"
zstd = "0.5.1" zstd = "0.5.1"

View File

@ -26,7 +26,7 @@ solana-runtime = { path = "../runtime", version = "=1.7.7" }
solana-sdk = { path = "../sdk", version = "=1.7.7" } solana-sdk = { path = "../sdk", version = "=1.7.7" }
solana-transaction-status = { path = "../transaction-status", version = "=1.7.7" } solana-transaction-status = { path = "../transaction-status", version = "=1.7.7" }
solana-version = { path = "../version", version = "=1.7.7" } solana-version = { path = "../version", version = "=1.7.7" }
spl-token-v2-0 = { package = "spl-token", version = "=3.1.1", features = ["no-entrypoint"] } spl-token-v2-0 = { package = "spl-token", version = "=3.2.0", features = ["no-entrypoint"] }
[dev-dependencies] [dev-dependencies]
solana-local-cluster = { path = "../local-cluster", version = "=1.7.7" } solana-local-cluster = { path = "../local-cluster", version = "=1.7.7" }

View File

@ -66,7 +66,7 @@ solana-streamer = { path = "../streamer", version = "=1.7.7" }
solana-transaction-status = { path = "../transaction-status", version = "=1.7.7" } solana-transaction-status = { path = "../transaction-status", version = "=1.7.7" }
solana-version = { path = "../version", version = "=1.7.7" } solana-version = { path = "../version", version = "=1.7.7" }
solana-vote-program = { path = "../programs/vote", version = "=1.7.7" } solana-vote-program = { path = "../programs/vote", version = "=1.7.7" }
spl-token-v2-0 = { package = "spl-token", version = "=3.1.1", features = ["no-entrypoint"] } spl-token-v2-0 = { package = "spl-token", version = "=3.2.0", features = ["no-entrypoint"] }
tempfile = "3.1.0" tempfile = "3.1.0"
thiserror = "1.0" thiserror = "1.0"
solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.7.7" } solana-rayon-threadlimit = { path = "../rayon-threadlimit", version = "=1.7.7" }

View File

@ -38,10 +38,10 @@ fetch_program() {
} }
fetch_program token 3.1.0 TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA BPFLoader2111111111111111111111111111111111 fetch_program token 3.2.0 TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA BPFLoader2111111111111111111111111111111111
fetch_program memo 1.0.0 Memo1UhkJRfHyvLMcVucJwxXeuD728EqVDDwQDxFMNo BPFLoader1111111111111111111111111111111111 fetch_program memo 1.0.0 Memo1UhkJRfHyvLMcVucJwxXeuD728EqVDDwQDxFMNo BPFLoader1111111111111111111111111111111111
fetch_program memo 3.0.0 MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr BPFLoader2111111111111111111111111111111111 fetch_program memo 3.0.0 MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr BPFLoader2111111111111111111111111111111111
fetch_program associated-token-account 1.0.1 ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL BPFLoader2111111111111111111111111111111111 fetch_program associated-token-account 1.0.3 ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL BPFLoader2111111111111111111111111111111111
fetch_program feature-proposal 1.0.0 Feat1YXHhH6t1juaWF74WLcfv4XoNocjXA6sPWHNgAse BPFLoader2111111111111111111111111111111111 fetch_program feature-proposal 1.0.0 Feat1YXHhH6t1juaWF74WLcfv4XoNocjXA6sPWHNgAse BPFLoader2111111111111111111111111111111111
echo "${genesis_args[@]}" > spl-genesis-args.sh echo "${genesis_args[@]}" > spl-genesis-args.sh

View File

@ -18,7 +18,7 @@ mod spl_associated_token_account {
} }
static SPL_PROGRAMS: &[(Pubkey, &[u8])] = &[ static SPL_PROGRAMS: &[(Pubkey, &[u8])] = &[
(spl_token::ID, include_bytes!("programs/spl_token-3.1.0.so")), (spl_token::ID, include_bytes!("programs/spl_token-3.2.0.so")),
( (
spl_memo_1_0::ID, spl_memo_1_0::ID,
include_bytes!("programs/spl_memo-1.0.0.so"), include_bytes!("programs/spl_memo-1.0.0.so"),
@ -29,7 +29,7 @@ static SPL_PROGRAMS: &[(Pubkey, &[u8])] = &[
), ),
( (
spl_associated_token_account::ID, spl_associated_token_account::ID,
include_bytes!("programs/spl_associated-token-account-1.0.1.so"), include_bytes!("programs/spl_associated-token-account-1.0.3.so"),
), ),
]; ];

Binary file not shown.

110
programs/bpf/Cargo.lock generated
View File

@ -221,63 +221,29 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
[[package]]
name = "borsh"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a5a26c53ddf60281f18e7a29b20db7ba3db82a9d81b9650bfaa02d646f50d364"
dependencies = [
"borsh-derive 0.8.1",
"hashbrown",
]
[[package]] [[package]]
name = "borsh" name = "borsh"
version = "0.9.0" version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4fcabb02816fdadf90866dc9a7824491ccb63d69f55375a266dc03509ac68d36" checksum = "4fcabb02816fdadf90866dc9a7824491ccb63d69f55375a266dc03509ac68d36"
dependencies = [ dependencies = [
"borsh-derive 0.9.0", "borsh-derive",
"hashbrown", "hashbrown",
] ]
[[package]]
name = "borsh-derive"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b637a47728b78a78cd7f4b85bf06d71ef4221840e059a38f048be2422bf673b2"
dependencies = [
"borsh-derive-internal 0.8.1",
"borsh-schema-derive-internal 0.8.1",
"proc-macro-crate",
"proc-macro2 1.0.24",
"syn 1.0.67",
]
[[package]] [[package]]
name = "borsh-derive" name = "borsh-derive"
version = "0.9.0" version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4bd16f0729b89f0a212b0e2e1d19cc6593df63f771161a11863967780e2d033d" checksum = "4bd16f0729b89f0a212b0e2e1d19cc6593df63f771161a11863967780e2d033d"
dependencies = [ dependencies = [
"borsh-derive-internal 0.9.0", "borsh-derive-internal",
"borsh-schema-derive-internal 0.9.0", "borsh-schema-derive-internal",
"proc-macro-crate", "proc-macro-crate",
"proc-macro2 1.0.24", "proc-macro2 1.0.24",
"syn 1.0.67", "syn 1.0.67",
] ]
[[package]]
name = "borsh-derive-internal"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d813fa25eb0bed78c36492cff4415f38c760d6de833d255ba9095bd8ebb7d725"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"syn 1.0.67",
]
[[package]] [[package]]
name = "borsh-derive-internal" name = "borsh-derive-internal"
version = "0.9.0" version = "0.9.0"
@ -289,17 +255,6 @@ dependencies = [
"syn 1.0.67", "syn 1.0.67",
] ]
[[package]]
name = "borsh-schema-derive-internal"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dcf78ee4a98c8cb9eba1bac3d3e2a1ea3d7673c719ce691e67b5cbafc472d3b7"
dependencies = [
"proc-macro2 1.0.24",
"quote 1.0.6",
"syn 1.0.67",
]
[[package]] [[package]]
name = "borsh-schema-derive-internal" name = "borsh-schema-derive-internal"
version = "0.9.0" version = "0.9.0"
@ -2787,8 +2742,8 @@ name = "solana-banks-client"
version = "1.7.7" version = "1.7.7"
dependencies = [ dependencies = [
"bincode", "bincode",
"borsh 0.9.0", "borsh",
"borsh-derive 0.9.0", "borsh-derive",
"futures 0.3.12", "futures 0.3.12",
"mio 0.7.7", "mio 0.7.7",
"solana-banks-interface", "solana-banks-interface",
@ -3290,9 +3245,9 @@ dependencies = [
[[package]] [[package]]
name = "solana-frozen-abi" name = "solana-frozen-abi"
version = "1.7.1" version = "1.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "95c481f0f29753f5b2d382628abae98a1dd87b572ddc7cbe5fe55ca62b6f7f07" checksum = "b0b98d31e0662fedf3a1ee30919c655713874d578e19e65affe46109b1b927f9"
dependencies = [ dependencies = [
"bs58", "bs58",
"bv", "bv",
@ -3303,8 +3258,8 @@ dependencies = [
"serde", "serde",
"serde_derive", "serde_derive",
"sha2", "sha2",
"solana-frozen-abi-macro 1.7.1", "solana-frozen-abi-macro 1.7.6",
"solana-logger 1.7.1", "solana-logger 1.7.6",
"thiserror", "thiserror",
] ]
@ -3328,9 +3283,9 @@ dependencies = [
[[package]] [[package]]
name = "solana-frozen-abi-macro" name = "solana-frozen-abi-macro"
version = "1.7.1" version = "1.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2068bcc47160ac9081893439b10a05e4bbe85cc0f6bccb6f1b0815423fbdd0c" checksum = "ceac6e8ad1a784c92ff5f3d6ad68a8d664d389b08055b674c38b2b9abb69e6d4"
dependencies = [ dependencies = [
"proc-macro2 1.0.24", "proc-macro2 1.0.24",
"quote 1.0.6", "quote 1.0.6",
@ -3350,9 +3305,9 @@ dependencies = [
[[package]] [[package]]
name = "solana-logger" name = "solana-logger"
version = "1.7.1" version = "1.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7ea5932e186629f47859924b3773cfd8bcb4b8796898ac85c1fa0a6a2024e5c6" checksum = "ec7c514fe57f8c5042fa88c19f5711c67f264db723d9d79379fcb78dd1f09bbf"
dependencies = [ dependencies = [
"env_logger", "env_logger",
"lazy_static", "lazy_static",
@ -3411,20 +3366,21 @@ dependencies = [
[[package]] [[package]]
name = "solana-program" name = "solana-program"
version = "1.7.1" version = "1.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a2df39c63e21c5b58e2012e7675bed5e8dd5100470ffddedcafb78f5a7e3abe" checksum = "3bfe6a5dfc5372c0a946018ecdd8115e38af78cea8275bac48cf3d105c6b1fb3"
dependencies = [ dependencies = [
"bincode", "bincode",
"blake3", "blake3",
"borsh 0.8.1", "borsh",
"borsh-derive 0.8.1", "borsh-derive",
"bs58", "bs58",
"bv", "bv",
"curve25519-dalek 2.1.0", "curve25519-dalek 2.1.0",
"hex", "hex",
"itertools 0.9.0", "itertools 0.9.0",
"lazy_static", "lazy_static",
"libsecp256k1",
"log", "log",
"num-derive 0.3.0", "num-derive 0.3.0",
"num-traits", "num-traits",
@ -3436,10 +3392,10 @@ dependencies = [
"serde_derive", "serde_derive",
"sha2", "sha2",
"sha3", "sha3",
"solana-frozen-abi 1.7.1", "solana-frozen-abi 1.7.6",
"solana-frozen-abi-macro 1.7.1", "solana-frozen-abi-macro 1.7.6",
"solana-logger 1.7.1", "solana-logger 1.7.6",
"solana-sdk-macro 1.7.1", "solana-sdk-macro 1.7.6",
"thiserror", "thiserror",
] ]
@ -3449,8 +3405,8 @@ version = "1.7.7"
dependencies = [ dependencies = [
"bincode", "bincode",
"blake3", "blake3",
"borsh 0.9.0", "borsh",
"borsh-derive 0.9.0", "borsh-derive",
"bs58", "bs58",
"bv", "bv",
"curve25519-dalek 2.1.0", "curve25519-dalek 2.1.0",
@ -3625,9 +3581,9 @@ dependencies = [
[[package]] [[package]]
name = "solana-sdk-macro" name = "solana-sdk-macro"
version = "1.7.1" version = "1.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6473d8fa445520564c84e8803320721404d160ffd876a125326a726541f11534" checksum = "84710ce45a21cccd9f2b09d8e9aad529080bb2540f27b1253874b6e732b465b9"
dependencies = [ dependencies = [
"bs58", "bs58",
"proc-macro2 1.0.24", "proc-macro2 1.0.24",
@ -3756,11 +3712,11 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
[[package]] [[package]]
name = "spl-associated-token-account" name = "spl-associated-token-account"
version = "1.0.2" version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4adc47eebe5d2b662cbaaba1843719c28a67e5ec5d0460bc3ca60900a51f74e2" checksum = "393e2240d521c3dd770806bff25c2c00d761ac962be106e14e22dd912007f428"
dependencies = [ dependencies = [
"solana-program 1.7.1", "solana-program 1.7.6",
"spl-token", "spl-token",
] ]
@ -3770,20 +3726,20 @@ version = "3.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bd0dc6f70db6bacea7ff25870b016a65ba1d1b6013536f08e4fd79a8f9005325" checksum = "bd0dc6f70db6bacea7ff25870b016a65ba1d1b6013536f08e4fd79a8f9005325"
dependencies = [ dependencies = [
"solana-program 1.7.1", "solana-program 1.7.6",
] ]
[[package]] [[package]]
name = "spl-token" name = "spl-token"
version = "3.1.1" version = "3.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbfa8fd791aeb4d7ad5fedb7872478de9f4e8b4fcb02dfd9e7f2f9ae3f3ddd73" checksum = "93bfdd5bd7c869cb565c7d7635c4fafe189b988a0bdef81063cd9585c6b8dc01"
dependencies = [ dependencies = [
"arrayref", "arrayref",
"num-derive 0.3.0", "num-derive 0.3.0",
"num-traits", "num-traits",
"num_enum", "num_enum",
"solana-program 1.7.1", "solana-program 1.7.6",
"thiserror", "thiserror",
] ]

View File

@ -42,7 +42,7 @@ solana-storage-bigtable = { path = "../storage-bigtable", version = "=1.7.7" }
solana-transaction-status = { path = "../transaction-status", version = "=1.7.7" } solana-transaction-status = { path = "../transaction-status", version = "=1.7.7" }
solana-version = { path = "../version", version = "=1.7.7" } solana-version = { path = "../version", version = "=1.7.7" }
solana-vote-program = { path = "../programs/vote", version = "=1.7.7" } solana-vote-program = { path = "../programs/vote", version = "=1.7.7" }
spl-token-v2-0 = { package = "spl-token", version = "=3.1.1", features = ["no-entrypoint"] } spl-token-v2-0 = { package = "spl-token", version = "=3.2.0", features = ["no-entrypoint"] }
tokio = { version = "1", features = ["full"] } tokio = { version = "1", features = ["full"] }
tokio_02 = { version = "0.2", package = "tokio", features = ["full"] } tokio_02 = { version = "0.2", package = "tokio", features = ["full"] }
tokio-util = { version = "0.3", features = ["codec"] } # This crate needs to stay in sync with tokio_02, until that dependency can be removed tokio-util = { version = "0.3", features = ["codec"] } # This crate needs to stay in sync with tokio_02, until that dependency can be removed

View File

@ -5168,8 +5168,8 @@ impl Bank {
self.rent_collector.rent.burn_percent = 50; // 50% rent burn self.rent_collector.rent.burn_percent = 50; // 50% rent burn
} }
if new_feature_activations.contains(&feature_set::spl_token_v2_self_transfer_fix::id()) { if new_feature_activations.contains(&feature_set::spl_token_v2_set_authority_fix::id()) {
self.apply_spl_token_v2_self_transfer_fix(); self.apply_spl_token_v2_set_authority_fix();
} }
// Remove me after a while around v1.6 // Remove me after a while around v1.6
if !self.no_stake_rewrite.load(Relaxed) if !self.no_stake_rewrite.load(Relaxed)
@ -5302,13 +5302,13 @@ impl Bank {
} }
} }
fn apply_spl_token_v2_self_transfer_fix(&mut self) { fn apply_spl_token_v2_set_authority_fix(&mut self) {
if let Some(old_account) = self.get_account_with_fixed_root(&inline_spl_token_v2_0::id()) { if let Some(old_account) = self.get_account_with_fixed_root(&inline_spl_token_v2_0::id()) {
if let Some(new_account) = if let Some(new_account) =
self.get_account_with_fixed_root(&inline_spl_token_v2_0::new_token_program::id()) self.get_account_with_fixed_root(&inline_spl_token_v2_0::new_token_program::id())
{ {
datapoint_info!( datapoint_info!(
"bank-apply_spl_token_v2_self_transfer_fix", "bank-apply_spl_token_v2_set_authority_fix",
("slot", self.slot, i64), ("slot", self.slot, i64),
); );
@ -11761,7 +11761,7 @@ pub(crate) mod tests {
} }
#[test] #[test]
fn test_spl_token_v2_self_transfer_fix() { fn test_spl_token_v2_replacement() {
let (genesis_config, _mint_keypair) = create_genesis_config(0); let (genesis_config, _mint_keypair) = create_genesis_config(0);
let mut bank = Bank::new(&genesis_config); let mut bank = Bank::new(&genesis_config);
@ -11791,7 +11791,7 @@ pub(crate) mod tests {
let original_capitalization = bank.capitalization(); let original_capitalization = bank.capitalization();
bank.apply_spl_token_v2_self_transfer_fix(); bank.apply_spl_token_v2_set_authority_fix();
// New token account is now empty // New token account is now empty
assert_eq!( assert_eq!(

View File

@ -2,7 +2,7 @@
solana_sdk::declare_id!("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"); solana_sdk::declare_id!("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA");
pub(crate) mod new_token_program { pub(crate) mod new_token_program {
solana_sdk::declare_id!("t31zsgDmRntje65uXV3LrnWaJtJJpMd4LyJxq2R2VrU"); solana_sdk::declare_id!("NToKV6K2hAz79S73NtC9vVWrAGn77mBduBn95xQFGSZ");
} }
/* /*

View File

@ -171,6 +171,10 @@ pub mod merge_nonce_error_into_system_error {
solana_sdk::declare_id!("21AWDosvp3pBamFW91KB35pNoaoZVTM7ess8nr2nt53B"); solana_sdk::declare_id!("21AWDosvp3pBamFW91KB35pNoaoZVTM7ess8nr2nt53B");
} }
pub mod spl_token_v2_set_authority_fix {
solana_sdk::declare_id!("FToKNBYyiF4ky9s8WsmLBXHCht17Ek7RXaLZGHzzQhJ1");
}
lazy_static! { lazy_static! {
/// Map of feature identifiers to user-visible description /// Map of feature identifiers to user-visible description
pub static ref FEATURE_NAMES: HashMap<Pubkey, &'static str> = [ pub static ref FEATURE_NAMES: HashMap<Pubkey, &'static str> = [
@ -213,6 +217,7 @@ lazy_static! {
(rent_for_sysvars::id(), "collect rent from accounts owned by sysvars"), (rent_for_sysvars::id(), "collect rent from accounts owned by sysvars"),
(libsecp256k1_0_5_upgrade_enabled::id(), "upgrade libsecp256k1 to v0.5.0"), (libsecp256k1_0_5_upgrade_enabled::id(), "upgrade libsecp256k1 to v0.5.0"),
(merge_nonce_error_into_system_error::id(), "merge NonceError into SystemError"), (merge_nonce_error_into_system_error::id(), "merge NonceError into SystemError"),
(spl_token_v2_set_authority_fix::id(), "spl-token set_authority fix"),
/*************** ADD NEW FEATURES HERE ***************/ /*************** ADD NEW FEATURES HERE ***************/
] ]
.iter() .iter()

View File

@ -29,8 +29,8 @@ solana-runtime = { path = "../runtime", version = "=1.7.7" }
solana-sdk = { path = "../sdk", version = "=1.7.7" } solana-sdk = { path = "../sdk", version = "=1.7.7" }
solana-transaction-status = { path = "../transaction-status", version = "=1.7.7" } solana-transaction-status = { path = "../transaction-status", version = "=1.7.7" }
solana-version = { path = "../version", version = "=1.7.7" } solana-version = { path = "../version", version = "=1.7.7" }
spl-associated-token-account-v1-0 = { package = "spl-associated-token-account", version = "=1.0.2" } spl-associated-token-account-v1-0 = { package = "spl-associated-token-account", version = "=1.0.3" }
spl-token-v2-0 = { package = "spl-token", version = "=3.1.1", features = ["no-entrypoint"] } spl-token-v2-0 = { package = "spl-token", version = "=3.2.0", features = ["no-entrypoint"] }
tempfile = "3.1.0" tempfile = "3.1.0"
thiserror = "1.0" thiserror = "1.0"

View File

@ -22,9 +22,9 @@ solana-account-decoder = { path = "../account-decoder", version = "=1.7.7" }
solana-sdk = { path = "../sdk", version = "=1.7.7" } solana-sdk = { path = "../sdk", version = "=1.7.7" }
solana-runtime = { path = "../runtime", version = "=1.7.7" } solana-runtime = { path = "../runtime", version = "=1.7.7" }
solana-vote-program = { path = "../programs/vote", version = "=1.7.7" } solana-vote-program = { path = "../programs/vote", version = "=1.7.7" }
spl-associated-token-account-v1-0 = { package = "spl-associated-token-account", version = "=1.0.2", features = ["no-entrypoint"] } spl-associated-token-account-v1-0 = { package = "spl-associated-token-account", version = "=1.0.3", features = ["no-entrypoint"] }
spl-memo = { version = "=3.0.1", features = ["no-entrypoint"] } spl-memo = { version = "=3.0.1", features = ["no-entrypoint"] }
spl-token-v2-0 = { package = "spl-token", version = "=3.1.1", features = ["no-entrypoint"] } spl-token-v2-0 = { package = "spl-token", version = "=3.2.0", features = ["no-entrypoint"] }
thiserror = "1.0" thiserror = "1.0"
[package.metadata.docs.rs] [package.metadata.docs.rs]

View File

@ -372,6 +372,15 @@ pub fn parse_token(
info: value, info: value,
}) })
} }
TokenInstruction::SyncNative => {
check_num_token_accounts(&instruction.accounts, 1)?;
Ok(ParsedInstructionEnum {
instruction_type: "syncNative".to_string(),
info: json!({
"account": account_keys[instruction.accounts[0] as usize].to_string(),
}),
})
}
} }
} }
@ -930,7 +939,7 @@ mod test {
} }
); );
// Test Approve2, incl multisig // Test ApproveChecked, incl multisig
let approve_ix = approve_checked( let approve_ix = approve_checked(
&spl_token_v2_0::id(), &spl_token_v2_0::id(),
&convert_pubkey(keys[1]), &convert_pubkey(keys[1]),
@ -996,7 +1005,7 @@ mod test {
} }
); );
// Test MintTo2 // Test MintToChecked
let mint_to_ix = mint_to_checked( let mint_to_ix = mint_to_checked(
&spl_token_v2_0::id(), &spl_token_v2_0::id(),
&convert_pubkey(keys[1]), &convert_pubkey(keys[1]),
@ -1027,7 +1036,7 @@ mod test {
} }
); );
// Test Burn2 // Test BurnChecked
let burn_ix = burn_checked( let burn_ix = burn_checked(
&spl_token_v2_0::id(), &spl_token_v2_0::id(),
&convert_pubkey(keys[1]), &convert_pubkey(keys[1]),
@ -1057,6 +1066,20 @@ mod test {
}) })
} }
); );
// Test SyncNative
let sync_native_ix = sync_native(&spl_token_v2_0::id(), &convert_pubkey(keys[0])).unwrap();
let message = Message::new(&[sync_native_ix], None);
let compiled_instruction = convert_compiled_instruction(&message.instructions[0]);
assert_eq!(
parse_token(&compiled_instruction, &keys).unwrap(),
ParsedInstructionEnum {
instruction_type: "syncNative".to_string(),
info: json!({
"account": keys[0].to_string(),
})
}
);
} }
#[test] #[test]
@ -1421,5 +1444,14 @@ mod test {
compiled_instruction.accounts = compiled_instruction.accounts =
compiled_instruction.accounts[0..compiled_instruction.accounts.len() - 1].to_vec(); compiled_instruction.accounts[0..compiled_instruction.accounts.len() - 1].to_vec();
assert!(parse_token(&compiled_instruction, &keys).is_err()); assert!(parse_token(&compiled_instruction, &keys).is_err());
// Test SyncNative
let sync_native_ix = sync_native(&spl_token_v2_0::id(), &convert_pubkey(keys[0])).unwrap();
let message = Message::new(&[sync_native_ix], None);
let mut compiled_instruction = convert_compiled_instruction(&message.instructions[0]);
assert!(parse_token(&compiled_instruction, &[]).is_err());
compiled_instruction.accounts =
compiled_instruction.accounts[0..compiled_instruction.accounts.len() - 1].to_vec();
assert!(parse_token(&compiled_instruction, &keys).is_err());
} }
} }