sdk: Add Borsh support for types and utilities (#15290)

* sdk: Add Borsh to Pubkey

* Add serialization error for easier borsh integration

* Add Borsh usage to banks-client and sdk

* Rename SerializationError -> IOError

* Add new errors to proto

* Update Cargo lock

* Update Cargo.lock based on CI

* Clippy

* Update ABI on bank

* Address review feedback

* Update sanity program instruction count test
This commit is contained in:
Jon Cinque
2021-02-18 11:14:56 +01:00
committed by GitHub
parent fb1f2d54a5
commit 0f6f6080f3
16 changed files with 288 additions and 12 deletions

View File

@@ -25,6 +25,12 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "567b077b825e468cc974f0020d4082ee6e03132512f207ef1a02fd5d00d1f32d"
[[package]]
name = "ahash"
version = "0.4.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e"
[[package]]
name = "aho-corasick"
version = "0.7.10"
@@ -196,6 +202,51 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
[[package]]
name = "borsh"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a5a26c53ddf60281f18e7a29b20db7ba3db82a9d81b9650bfaa02d646f50d364"
dependencies = [
"borsh-derive",
"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",
"borsh-schema-derive-internal",
"proc-macro-crate",
"proc-macro2 1.0.24",
"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.6",
"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.6",
"syn 1.0.60",
]
[[package]]
name = "bs58"
version = "0.3.1"
@@ -1011,6 +1062,15 @@ dependencies = [
"byteorder 1.3.4",
]
[[package]]
name = "hashbrown"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
dependencies = [
"ahash",
]
[[package]]
name = "hermit-abi"
version = "0.1.13"
@@ -3079,6 +3139,8 @@ name = "solana-program"
version = "1.6.0"
dependencies = [
"bincode",
"borsh",
"borsh-derive",
"bs58",
"bv",
"curve25519-dalek 2.1.0",

View File

@@ -1233,7 +1233,7 @@ fn assert_instruction_count() {
("solana_bpf_rust_noop", 488),
("solana_bpf_rust_param_passing", 48),
("solana_bpf_rust_ristretto", 19399),
("solana_bpf_rust_sanity", 894),
("solana_bpf_rust_sanity", 935),
]);
}