sdk/js: fix token bridge cpi accounts

This commit is contained in:
A5 Pickle 2022-12-13 20:37:55 +00:00 committed by kev1n-peters
parent 612ae1a7e5
commit 1616df817e
1 changed files with 12 additions and 11 deletions

View File

@ -340,23 +340,24 @@ export interface CompleteTransferNativeWithPayloadCpiAccounts
* you only need to pass your `toTokenAccount` into the complete transfer * you only need to pass your `toTokenAccount` into the complete transfer
* instruction for the `toFeesTokenAccount`. * instruction for the `toFeesTokenAccount`.
* *
* @param cpiProgramId
* @param tokenBridgeProgramId * @param tokenBridgeProgramId
* @param wormholeProgramId * @param wormholeProgramId
* @param payer * @param payer
* @param vaa * @param vaa
* @param toTokenAccount
* @returns * @returns
*/ */
export function getCompleteTransferNativeWithPayloadCpiAccounts( export function getCompleteTransferNativeWithPayloadCpiAccounts(
cpiProgramId: PublicKeyInitData,
tokenBridgeProgramId: PublicKeyInitData, tokenBridgeProgramId: PublicKeyInitData,
wormholeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData,
payer: PublicKeyInitData, payer: PublicKeyInitData,
vaa: SignedVaa | ParsedTokenTransferVaa vaa: SignedVaa | ParsedTokenTransferVaa,
toTokenAccount: PublicKeyInitData
): CompleteTransferNativeWithPayloadCpiAccounts { ): CompleteTransferNativeWithPayloadCpiAccounts {
const parsed = isBytes(vaa) ? parseTokenTransferVaa(vaa) : vaa; const parsed = isBytes(vaa) ? parseTokenTransferVaa(vaa) : vaa;
const mint = new PublicKey(parsed.tokenAddress); const mint = new PublicKey(parsed.tokenAddress);
const toTokenAccount = new PublicKey(parsed.to); const cpiProgramId = new PublicKey(parsed.to);
return { return {
payer: new PublicKey(payer), payer: new PublicKey(payer),
tokenBridgeConfig: deriveTokenBridgeConfigKey(tokenBridgeProgramId), tokenBridgeConfig: deriveTokenBridgeConfigKey(tokenBridgeProgramId),
@ -372,9 +373,9 @@ export function getCompleteTransferNativeWithPayloadCpiAccounts(
parsed.emitterChain, parsed.emitterChain,
parsed.emitterAddress parsed.emitterAddress
), ),
toTokenAccount, toTokenAccount: new PublicKey(toTokenAccount),
tokenBridgeRedeemer: deriveRedeemerAccountKey(cpiProgramId), tokenBridgeRedeemer: deriveRedeemerAccountKey(cpiProgramId),
toFeesTokenAccount: toTokenAccount, toFeesTokenAccount: new PublicKey(toTokenAccount),
tokenBridgeCustody: deriveCustodyKey(tokenBridgeProgramId, mint), tokenBridgeCustody: deriveCustodyKey(tokenBridgeProgramId, mint),
mint, mint,
tokenBridgeCustodySigner: deriveCustodySignerKey(tokenBridgeProgramId), tokenBridgeCustodySigner: deriveCustodySignerKey(tokenBridgeProgramId),
@ -435,11 +436,11 @@ export interface CompleteTransferWrappedWithPayloadCpiAccounts
* @returns * @returns
*/ */
export function getCompleteTransferWrappedWithPayloadCpiAccounts( export function getCompleteTransferWrappedWithPayloadCpiAccounts(
cpiProgramId: PublicKeyInitData,
tokenBridgeProgramId: PublicKeyInitData, tokenBridgeProgramId: PublicKeyInitData,
wormholeProgramId: PublicKeyInitData, wormholeProgramId: PublicKeyInitData,
payer: PublicKeyInitData, payer: PublicKeyInitData,
vaa: SignedVaa | ParsedTokenTransferVaa vaa: SignedVaa | ParsedTokenTransferVaa,
toTokenAccount: PublicKeyInitData
): CompleteTransferWrappedWithPayloadCpiAccounts { ): CompleteTransferWrappedWithPayloadCpiAccounts {
const parsed = isBytes(vaa) ? parseTokenTransferVaa(vaa) : vaa; const parsed = isBytes(vaa) ? parseTokenTransferVaa(vaa) : vaa;
const mint = deriveWrappedMintKey( const mint = deriveWrappedMintKey(
@ -447,7 +448,7 @@ export function getCompleteTransferWrappedWithPayloadCpiAccounts(
parsed.tokenChain, parsed.tokenChain,
parsed.tokenAddress parsed.tokenAddress
); );
const toTokenAccount = new PublicKey(parsed.to); const cpiProgramId = new PublicKey(parsed.to);
return { return {
payer: new PublicKey(payer), payer: new PublicKey(payer),
tokenBridgeConfig: deriveTokenBridgeConfigKey(tokenBridgeProgramId), tokenBridgeConfig: deriveTokenBridgeConfigKey(tokenBridgeProgramId),
@ -463,9 +464,9 @@ export function getCompleteTransferWrappedWithPayloadCpiAccounts(
parsed.emitterChain, parsed.emitterChain,
parsed.emitterAddress parsed.emitterAddress
), ),
toTokenAccount, toTokenAccount: new PublicKey(toTokenAccount),
tokenBridgeRedeemer: deriveRedeemerAccountKey(cpiProgramId), tokenBridgeRedeemer: deriveRedeemerAccountKey(cpiProgramId),
toFeesTokenAccount: toTokenAccount, toFeesTokenAccount: new PublicKey(toTokenAccount),
tokenBridgeWrappedMint: mint, tokenBridgeWrappedMint: mint,
tokenBridgeWrappedMeta: deriveWrappedMetaKey(tokenBridgeProgramId, mint), tokenBridgeWrappedMeta: deriveWrappedMetaKey(tokenBridgeProgramId, mint),
tokenBridgeMintAuthority: deriveMintAuthorityKey(tokenBridgeProgramId), tokenBridgeMintAuthority: deriveMintAuthorityKey(tokenBridgeProgramId),