sdk/aptos: move transfer logic to sdk
This commit is contained in:
parent
9ae43b3dd9
commit
027354f319
|
@ -202,31 +202,39 @@ export const transferTokens = (
|
|||
recipientChain: ChainId | ChainName,
|
||||
recipient: Uint8Array,
|
||||
relayerFee: string,
|
||||
nonce: number,
|
||||
payload: string = "",
|
||||
nonce: number
|
||||
): Types.EntryFunctionPayload => {
|
||||
if (!tokenBridgeAddress) throw new Error("Need token bridge address.");
|
||||
if (!isValidAptosType(fullyQualifiedType)) {
|
||||
throw new Error("Need fully qualified address");
|
||||
throw new Error("Invalid qualified type");
|
||||
}
|
||||
|
||||
const recipientChainId = coalesceChainId(recipientChain);
|
||||
if (payload) {
|
||||
throw new Error("Transfer with payload are not yet supported in the sdk");
|
||||
} else {
|
||||
return {
|
||||
function: `${tokenBridgeAddress}::transfer_tokens::transfer_tokens_entry`,
|
||||
type_arguments: [fullyQualifiedType],
|
||||
arguments: [amount, recipientChainId, recipient, relayerFee, nonce],
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
export const transferTokensWithPayload = (
|
||||
tokenBridgeAddress: string,
|
||||
fullyQualifiedType: string,
|
||||
amount: string,
|
||||
recipientChain: ChainId | ChainName,
|
||||
recipient: Uint8Array,
|
||||
relayerFee: string,
|
||||
nonce: number,
|
||||
payload: string
|
||||
): Types.EntryFunctionPayload => {
|
||||
throw new Error("Transfer with payload are not yet supported in the sdk");
|
||||
};
|
||||
|
||||
// Created wrapped coin
|
||||
|
||||
export const createWrappedCoinType = (
|
||||
tokenBridgeAddress: string,
|
||||
vaa: Uint8Array,
|
||||
vaa: Uint8Array
|
||||
): Types.EntryFunctionPayload => {
|
||||
if (!tokenBridgeAddress) throw new Error("Need token bridge address.");
|
||||
return {
|
||||
|
|
|
@ -53,7 +53,7 @@ const BN = require("bn.js");
|
|||
import { FunctionCallOptions } from "near-api-js/lib/account";
|
||||
import { Provider } from "near-api-js/lib/providers";
|
||||
import { MsgExecuteContract as XplaMsgExecuteContract } from "@xpla/xpla.js";
|
||||
import { transferTokens as transferTokensAptos } from "../aptos";
|
||||
import { transferTokens as transferTokensAptos, transferTokensWithPayload } from "../aptos";
|
||||
|
||||
export async function getAllowanceEth(
|
||||
tokenBridgeAddress: string,
|
||||
|
@ -981,7 +981,9 @@ export function transferFromAptos(
|
|||
relayerFee: string = "0",
|
||||
payload: string = ""
|
||||
): Types.EntryFunctionPayload {
|
||||
return transferTokensAptos(
|
||||
if (payload) {
|
||||
// Currently unsupported
|
||||
return transferTokensWithPayload(
|
||||
tokenBridgeAddress,
|
||||
fullyQualifiedType,
|
||||
amount,
|
||||
|
@ -991,4 +993,15 @@ export function transferFromAptos(
|
|||
createNonce().readUInt32LE(0),
|
||||
payload
|
||||
);
|
||||
}
|
||||
|
||||
return transferTokensAptos(
|
||||
tokenBridgeAddress,
|
||||
fullyQualifiedType,
|
||||
amount,
|
||||
recipientChain,
|
||||
recipient,
|
||||
relayerFee,
|
||||
createNonce().readUInt32LE(0)
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue