Add derivation methods for claims and spl meta
Change-Id: I4e8056b37d441caf7bca94037585c37afe25cc24
This commit is contained in:
parent
4c9bf1162c
commit
1421e5d76f
|
@ -46,6 +46,8 @@ use crate::{
|
|||
GovernancePayloadTransferFees,
|
||||
GovernancePayloadUpgrade,
|
||||
},
|
||||
Claim,
|
||||
ClaimDerivationData,
|
||||
PostVAAData,
|
||||
VerifySignaturesData,
|
||||
};
|
||||
|
@ -343,6 +345,22 @@ pub fn fee_collector_address(bridge: String) -> Vec<u8> {
|
|||
bridge_key.to_bytes().to_vec()
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn claim_address(program_id: String, vaa: Vec<u8>) -> Vec<u8> {
|
||||
let program_id = Pubkey::from_str(program_id.as_str()).unwrap();
|
||||
|
||||
let vaa = VAA::deserialize(vaa.as_slice()).unwrap();
|
||||
let claim_key = Claim::<'_, { AccountState::Initialized }>::key(
|
||||
&ClaimDerivationData {
|
||||
emitter_address: vaa.emitter_address,
|
||||
emitter_chain: vaa.emitter_chain,
|
||||
sequence: vaa.sequence,
|
||||
},
|
||||
&program_id,
|
||||
);
|
||||
claim_key.to_bytes().to_vec()
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn parse_posted_message(data: Vec<u8>) -> JsValue {
|
||||
JsValue::from_serde(&PostedVAAData::try_from_slice(data.as_slice()).unwrap().0).unwrap()
|
||||
|
|
|
@ -2,6 +2,8 @@ use crate::{
|
|||
accounts::{
|
||||
AuthoritySigner,
|
||||
EmitterAccount,
|
||||
SplTokenMeta,
|
||||
SplTokenMetaDerivationData,
|
||||
WrappedDerivationData,
|
||||
WrappedMetaDerivationData,
|
||||
WrappedMint,
|
||||
|
@ -404,6 +406,18 @@ pub fn wrapped_meta_address(program_id: String, mint_address: Vec<u8>) -> Vec<u8
|
|||
wrapped_meta_addr.to_bytes().to_vec()
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn spl_meta_address(mint_address: Vec<u8>) -> Vec<u8> {
|
||||
let mint_key = Pubkey::new(mint_address.as_slice());
|
||||
|
||||
let spl_metadata = SplTokenMeta::key(
|
||||
&SplTokenMetaDerivationData { mint: mint_key },
|
||||
&spl_token_metadata::id(),
|
||||
);
|
||||
|
||||
spl_metadata.to_bytes().to_vec()
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn parse_wrapped_meta(data: Vec<u8>) -> JsValue {
|
||||
JsValue::from_serde(&WrappedMeta::try_from_slice(data.as_slice()).unwrap()).unwrap()
|
||||
|
|
Loading…
Reference in New Issue