solana/token_bridge: sollet mints renamed to generic external
Change-Id: Ib9269991d95982dc5cae03844906e1f826a95d6c
This commit is contained in:
parent
59e0e586ef
commit
496d2385f5
|
@ -242,9 +242,9 @@ pub fn complete_wrapped(
|
||||||
accs.vaa.verify(ctx.program_id)?;
|
accs.vaa.verify(ctx.program_id)?;
|
||||||
accs.vaa.claim(ctx, accs.payer.key)?;
|
accs.vaa.claim(ctx, accs.payer.key)?;
|
||||||
|
|
||||||
let (_, is_sollet) =
|
let (_, is_external) =
|
||||||
derive_mint_for_token(ctx.program_id, accs.vaa.token_address, accs.vaa.token_chain);
|
derive_mint_for_token(ctx.program_id, accs.vaa.token_address, accs.vaa.token_chain);
|
||||||
let (amount, fee) = if is_sollet && accs.wrapped_meta.original_decimals > 6 {
|
let (amount, fee) = if is_external && accs.wrapped_meta.original_decimals > 6 {
|
||||||
// Sollet assets are truncated to 6 decimals, however Wormhole uses 8 and assumes
|
// Sollet assets are truncated to 6 decimals, however Wormhole uses 8 and assumes
|
||||||
// wire-truncation to 8 decimals.
|
// wire-truncation to 8 decimals.
|
||||||
(
|
(
|
||||||
|
|
|
@ -102,7 +102,7 @@ impl<'b> InstructionContext<'b> for CreateWrapped<'b> {
|
||||||
pub struct CreateWrappedData {}
|
pub struct CreateWrappedData {}
|
||||||
|
|
||||||
#[cfg(not(feature = "test"))]
|
#[cfg(not(feature = "test"))]
|
||||||
pub static SOLLET_MINTS: phf::Map<&str, (u16, &str)> = phf_map! {
|
pub static EXTERNAL_MINTS: phf::Map<&str, (u16, &str)> = phf_map! {
|
||||||
// "WETH",
|
// "WETH",
|
||||||
"000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" => (2, "2FPyTwcZLUg1MDrwsyoP4D6s1tM7hAkHYRjkNb5w6Pxk"),
|
"000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" => (2, "2FPyTwcZLUg1MDrwsyoP4D6s1tM7hAkHYRjkNb5w6Pxk"),
|
||||||
// "YFI",
|
// "YFI",
|
||||||
|
@ -150,7 +150,7 @@ pub static SOLLET_MINTS: phf::Map<&str, (u16, &str)> = phf_map! {
|
||||||
};
|
};
|
||||||
|
|
||||||
#[cfg(feature = "test")]
|
#[cfg(feature = "test")]
|
||||||
pub static SOLLET_MINTS: phf::Map<&str, (u16, &str)> = phf_map! {
|
pub static EXTERNAL_MINTS: phf::Map<&str, (u16, &str)> = phf_map! {
|
||||||
// "TEST",
|
// "TEST",
|
||||||
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" => (2, "FDhdMYh3KsF64Jxzh8tnx9rJXQTcN461rguUK9z9zm64"),
|
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" => (2, "FDhdMYh3KsF64Jxzh8tnx9rJXQTcN461rguUK9z9zm64"),
|
||||||
};
|
};
|
||||||
|
@ -160,8 +160,8 @@ pub fn derive_mint_for_token(
|
||||||
token_address: Address,
|
token_address: Address,
|
||||||
token_chain: ChainID,
|
token_chain: ChainID,
|
||||||
) -> (Pubkey, bool) {
|
) -> (Pubkey, bool) {
|
||||||
let mut sollet_mint = SOLLET_MINTS.get(hex::encode(token_address).as_str());
|
let mut external_mint = EXTERNAL_MINTS.get(hex::encode(token_address).as_str());
|
||||||
if let Some(mint) = sollet_mint {
|
if let Some(mint) = external_mint {
|
||||||
if mint.0 == token_chain {
|
if mint.0 == token_chain {
|
||||||
return (Pubkey::from_str(mint.1).unwrap(), true);
|
return (Pubkey::from_str(mint.1).unwrap(), true);
|
||||||
}
|
}
|
||||||
|
@ -184,7 +184,7 @@ pub fn create_wrapped(
|
||||||
accs: &mut CreateWrapped,
|
accs: &mut CreateWrapped,
|
||||||
data: CreateWrappedData,
|
data: CreateWrappedData,
|
||||||
) -> Result<()> {
|
) -> Result<()> {
|
||||||
let (mint, is_sollet) =
|
let (mint, is_external) =
|
||||||
derive_mint_for_token(ctx.program_id, accs.vaa.token_address, accs.vaa.token_chain);
|
derive_mint_for_token(ctx.program_id, accs.vaa.token_address, accs.vaa.token_chain);
|
||||||
if *accs.mint.info().key != mint {
|
if *accs.mint.info().key != mint {
|
||||||
return Err(InvalidMint.into());
|
return Err(InvalidMint.into());
|
||||||
|
@ -201,7 +201,7 @@ pub fn create_wrapped(
|
||||||
accs.vaa.verify(ctx.program_id)?;
|
accs.vaa.verify(ctx.program_id)?;
|
||||||
accs.vaa.claim(ctx, accs.payer.key)?;
|
accs.vaa.claim(ctx, accs.payer.key)?;
|
||||||
|
|
||||||
if !is_sollet {
|
if !is_external {
|
||||||
// Create mint account
|
// Create mint account
|
||||||
accs.mint
|
accs.mint
|
||||||
.create(&((&*accs).into()), ctx, accs.payer.key, Exempt)?;
|
.create(&((&*accs).into()), ctx, accs.payer.key, Exempt)?;
|
||||||
|
|
|
@ -331,12 +331,12 @@ pub fn transfer_wrapped(
|
||||||
|
|
||||||
invoke(&transfer_ix, ctx.accounts)?;
|
invoke(&transfer_ix, ctx.accounts)?;
|
||||||
|
|
||||||
let (_, is_sollet) = derive_mint_for_token(
|
let (_, is_external) = derive_mint_for_token(
|
||||||
ctx.program_id,
|
ctx.program_id,
|
||||||
accs.wrapped_meta.token_address,
|
accs.wrapped_meta.token_address,
|
||||||
accs.wrapped_meta.chain,
|
accs.wrapped_meta.chain,
|
||||||
);
|
);
|
||||||
let (amount, fee) = if is_sollet && accs.wrapped_meta.original_decimals > 6 {
|
let (amount, fee) = if is_external && accs.wrapped_meta.original_decimals > 6 {
|
||||||
// Sollet assets are truncated to 6 decimals, however Wormhole uses 8 and assumes
|
// Sollet assets are truncated to 6 decimals, however Wormhole uses 8 and assumes
|
||||||
// wire-truncation to 8 decimals.
|
// wire-truncation to 8 decimals.
|
||||||
(
|
(
|
||||||
|
|
|
@ -28,7 +28,7 @@ use crate::{
|
||||||
TransferNativeData,
|
TransferNativeData,
|
||||||
TransferWrappedData,
|
TransferWrappedData,
|
||||||
UpgradeContractData,
|
UpgradeContractData,
|
||||||
SOLLET_MINTS,
|
EXTERNAL_MINTS,
|
||||||
},
|
},
|
||||||
messages::{
|
messages::{
|
||||||
PayloadAssetMeta,
|
PayloadAssetMeta,
|
||||||
|
|
|
@ -98,7 +98,7 @@ use token_bridge::{
|
||||||
WrappedDerivationData,
|
WrappedDerivationData,
|
||||||
WrappedMint,
|
WrappedMint,
|
||||||
},
|
},
|
||||||
api::SOLLET_MINTS,
|
api::EXTERNAL_MINTS,
|
||||||
messages::{
|
messages::{
|
||||||
PayloadAssetMeta,
|
PayloadAssetMeta,
|
||||||
PayloadGovernanceRegisterChain,
|
PayloadGovernanceRegisterChain,
|
||||||
|
@ -650,8 +650,8 @@ fn test_create_wrapped_preexisting(context: &mut Context) -> (Pubkey) {
|
||||||
|
|
||||||
let nonce = rand::thread_rng().gen();
|
let nonce = rand::thread_rng().gen();
|
||||||
println!("{}", hex::encode([0xaau8; 32]));
|
println!("{}", hex::encode([0xaau8; 32]));
|
||||||
println!("{:?}", SOLLET_MINTS);
|
println!("{:?}", EXTERNAL_MINTS);
|
||||||
println!("{:?}", SOLLET_MINTS.get(hex::encode([0xaau8; 32]).as_str()));
|
println!("{:?}", EXTERNAL_MINTS.get(hex::encode([0xaau8; 32]).as_str()));
|
||||||
|
|
||||||
let payload = PayloadAssetMeta {
|
let payload = PayloadAssetMeta {
|
||||||
token_address: [0xaau8; 32],
|
token_address: [0xaau8; 32],
|
||||||
|
|
Loading…
Reference in New Issue