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,
|
GovernancePayloadTransferFees,
|
||||||
GovernancePayloadUpgrade,
|
GovernancePayloadUpgrade,
|
||||||
},
|
},
|
||||||
|
Claim,
|
||||||
|
ClaimDerivationData,
|
||||||
PostVAAData,
|
PostVAAData,
|
||||||
VerifySignaturesData,
|
VerifySignaturesData,
|
||||||
};
|
};
|
||||||
|
@ -343,6 +345,22 @@ pub fn fee_collector_address(bridge: String) -> Vec<u8> {
|
||||||
bridge_key.to_bytes().to_vec()
|
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]
|
#[wasm_bindgen]
|
||||||
pub fn parse_posted_message(data: Vec<u8>) -> JsValue {
|
pub fn parse_posted_message(data: Vec<u8>) -> JsValue {
|
||||||
JsValue::from_serde(&PostedVAAData::try_from_slice(data.as_slice()).unwrap().0).unwrap()
|
JsValue::from_serde(&PostedVAAData::try_from_slice(data.as_slice()).unwrap().0).unwrap()
|
||||||
|
|
|
@ -2,6 +2,8 @@ use crate::{
|
||||||
accounts::{
|
accounts::{
|
||||||
AuthoritySigner,
|
AuthoritySigner,
|
||||||
EmitterAccount,
|
EmitterAccount,
|
||||||
|
SplTokenMeta,
|
||||||
|
SplTokenMetaDerivationData,
|
||||||
WrappedDerivationData,
|
WrappedDerivationData,
|
||||||
WrappedMetaDerivationData,
|
WrappedMetaDerivationData,
|
||||||
WrappedMint,
|
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()
|
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]
|
#[wasm_bindgen]
|
||||||
pub fn parse_wrapped_meta(data: Vec<u8>) -> JsValue {
|
pub fn parse_wrapped_meta(data: Vec<u8>) -> JsValue {
|
||||||
JsValue::from_serde(&WrappedMeta::try_from_slice(data.as_slice()).unwrap()).unwrap()
|
JsValue::from_serde(&WrappedMeta::try_from_slice(data.as_slice()).unwrap()).unwrap()
|
||||||
|
|
Loading…
Reference in New Issue