Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 8 additions & 5 deletions rust/chains/tw_solana/src/modules/message_builder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -605,10 +605,13 @@ impl<'a> MessageBuilder<'a> {
.into_tw()
.context("Invalid fee mint address")?;

let sponsor_token_address =
SolanaAddress::from_str(sponsored_transfer_token.fee_sponsor_token_address.as_ref())
.into_tw()
.context("Invalid sponsor token address")?;
let fee_recipient_token_address = SolanaAddress::from_str(
sponsored_transfer_token
.fee_recipient_token_address
.as_ref(),
)
.into_tw()
.context("Invalid sponsor token address")?;

let fee_sender_token_address =
SolanaAddress::from_str(sponsored_transfer_token.fee_sender_token_address.as_ref())
Expand All @@ -625,7 +628,7 @@ impl<'a> MessageBuilder<'a> {
builder.add_instruction(TokenInstructionBuilder::transfer_checked(
fee_sender_token_address,
fee_mint_address,
sponsor_token_address,
fee_recipient_token_address,
signer,
sponsored_transfer_token.fee_amount,
fee_decimals,
Expand Down
2 changes: 1 addition & 1 deletion rust/tw_tests/tests/chains/solana/solana_sign.rs
Original file line number Diff line number Diff line change
Expand Up @@ -978,7 +978,7 @@ fn test_solana_sign_transfer_token_2022() {
fn test_solana_sign_sponsored_transfer_token_with_external_fee_payer() {
let token_transfer_to_fee_payer = Proto::TokenTransferToFeePayer {
fee_token_mint_address: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v".into(),
fee_sponsor_token_address: "reqtRKoVXCKVtvCL47VBxwncifQE8oJL6ZUzo1a28hD".into(),
fee_recipient_token_address: "reqtRKoVXCKVtvCL47VBxwncifQE8oJL6ZUzo1a28hD".into(),
fee_sender_token_address: "5Wa3KnBQAGs2KKZvHGZ7TcWJHexKCgG3F2H6RFMars67".into(),
fee_amount: 1,
fee_decimals: 6,
Expand Down
5 changes: 3 additions & 2 deletions src/proto/Solana.proto
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,9 @@ message TokenTransferToFeePayer {
// Mint address of the fee token
string fee_token_mint_address = 1;

// Token account address of the fee sponsor for the fee mint
string fee_sponsor_token_address = 2;
// Token account address of the fee recipient.
// Note that it could be different from the token account of the feepayer.
string fee_recipient_token_address = 2;

// Fee amount
uint64 fee_amount = 3;
Expand Down
Loading