Decode token instructions (#11281)

* Token->SplToken

* Add spl_token instruction parsing

* Rebase on master

* Gracefully fail key len mismatches
This commit is contained in:
Tyera Eulberg
2020-07-31 13:26:09 -06:00
committed by GitHub
parent 1733f6c9e9
commit 0f551d4f75
7 changed files with 908 additions and 22 deletions

View File

@@ -16,7 +16,7 @@ lazy_static! {
pub static ref PARSABLE_PROGRAM_IDS: HashMap<Pubkey, ParsableAccount> = {
let mut m = HashMap::new();
m.insert(*SYSTEM_PROGRAM_ID, ParsableAccount::Nonce);
m.insert(*TOKEN_PROGRAM_ID, ParsableAccount::Token);
m.insert(*TOKEN_PROGRAM_ID, ParsableAccount::SplToken);
m.insert(*VOTE_PROGRAM_ID, ParsableAccount::Vote);
m
};
@@ -41,7 +41,7 @@ pub enum ParseAccountError {
#[serde(rename_all = "camelCase")]
pub enum ParsableAccount {
Nonce,
Token,
SplToken,
Vote,
}
@@ -51,7 +51,7 @@ pub fn parse_account_data(program_id: &Pubkey, data: &[u8]) -> Result<Value, Par
.ok_or_else(|| ParseAccountError::ProgramNotParsable)?;
let parsed_json = match program_name {
ParsableAccount::Nonce => serde_json::to_value(parse_nonce(data)?)?,
ParsableAccount::Token => serde_json::to_value(parse_token(data)?)?,
ParsableAccount::SplToken => serde_json::to_value(parse_token(data)?)?,
ParsableAccount::Vote => serde_json::to_value(parse_vote(data)?)?,
};
Ok(json!({