import BigNumber from "bignumber.js";
import evm from "./walletApiAdapter";
describe("getWalletAPITransactionSignFlowInfos", () => {
    describe("should properly get infos for ETH platform tx", () => {
        test("without fees provided", () => {
            const ethPlatformTx = {
                family: "ethereum",
                amount: new BigNumber(100000),
                recipient: "0xABCDEF",
            };
            const { canEditFees, hasFeesProvided, liveTx } = evm.getWalletAPITransactionSignFlowInfos({
                walletApiTransaction: ethPlatformTx,
                account: {},
            });
            expect(canEditFees).toBe(true);
            expect(hasFeesProvided).toBe(false);
            expect(liveTx).toMatchInlineSnapshot(`
{
  "amount": "100000",
  "chainId": 0,
  "family": "evm",
  "feesStrategy": "medium",
  "gasLimit": "21000",
  "gasPrice": undefined,
  "maxFeePerGas": undefined,
  "maxPriorityFeePerGas": undefined,
  "mode": "send",
  "nonce": -1,
  "recipient": "0xABCDEF",
  "type": 2,
  "useAllAmount": false,
}
`);
        });
        test("with fees provided for legacy tx", () => {
            const ethPlatformTx = {
                family: "ethereum",
                amount: new BigNumber(100000),
                recipient: "0xABCDEF",
                gasPrice: new BigNumber(300),
                gasLimit: new BigNumber(21000),
            };
            const { canEditFees, hasFeesProvided, liveTx } = evm.getWalletAPITransactionSignFlowInfos({
                walletApiTransaction: ethPlatformTx,
                account: {},
            });
            expect(canEditFees).toBe(true);
            expect(hasFeesProvided).toBe(true);
            expect(liveTx).toMatchInlineSnapshot(`
{
  "amount": "100000",
  "chainId": 0,
  "customGasLimit": "21000",
  "family": "evm",
  "feesStrategy": "custom",
  "gasLimit": "21000",
  "gasPrice": "300",
  "maxFeePerGas": undefined,
  "maxPriorityFeePerGas": undefined,
  "mode": "send",
  "nonce": -1,
  "recipient": "0xABCDEF",
  "type": 0,
  "useAllAmount": false,
}
`);
        });
        test("with fees provided for eip1559 tx", () => {
            const ethPlatformTx = {
                family: "ethereum",
                amount: new BigNumber(100000),
                recipient: "0xABCDEF",
                gasLimit: new BigNumber(21000),
                maxFeePerGas: new BigNumber(300),
                maxPriorityFeePerGas: new BigNumber(200),
            };
            const { canEditFees, hasFeesProvided, liveTx } = evm.getWalletAPITransactionSignFlowInfos({
                walletApiTransaction: ethPlatformTx,
                account: {},
            });
            expect(canEditFees).toBe(true);
            expect(hasFeesProvided).toBe(true);
            expect(liveTx).toMatchInlineSnapshot(`
{
  "amount": "100000",
  "chainId": 0,
  "customGasLimit": "21000",
  "family": "evm",
  "feesStrategy": "custom",
  "gasLimit": "21000",
  "gasPrice": undefined,
  "maxFeePerGas": "300",
  "maxPriorityFeePerGas": "200",
  "mode": "send",
  "nonce": -1,
  "recipient": "0xABCDEF",
  "type": 2,
  "useAllAmount": false,
}
`);
        });
        test("with only gasLimit provided", () => {
            const ethPlatformTx = {
                family: "ethereum",
                amount: new BigNumber(100000),
                recipient: "0xABCDEF",
                gasLimit: new BigNumber(21000),
            };
            const { canEditFees, hasFeesProvided, liveTx } = evm.getWalletAPITransactionSignFlowInfos({
                walletApiTransaction: ethPlatformTx,
                account: {},
            });
            expect(canEditFees).toBe(true);
            expect(hasFeesProvided).toBe(false);
            expect(liveTx).toMatchInlineSnapshot(`
{
  "amount": "100000",
  "chainId": 0,
  "customGasLimit": "21000",
  "family": "evm",
  "feesStrategy": "medium",
  "gasLimit": "21000",
  "gasPrice": undefined,
  "maxFeePerGas": undefined,
  "maxPriorityFeePerGas": undefined,
  "mode": "send",
  "nonce": -1,
  "recipient": "0xABCDEF",
  "type": 2,
  "useAllAmount": false,
}
`);
        });
        test("with nonce provided", () => {
            const ethPlatformTx = {
                family: "ethereum",
                amount: new BigNumber(100000),
                recipient: "0xABCDEF",
                nonce: 1,
            };
            const { canEditFees, hasFeesProvided, liveTx } = evm.getWalletAPITransactionSignFlowInfos({
                walletApiTransaction: ethPlatformTx,
                account: {},
            });
            expect(canEditFees).toBe(true);
            expect(hasFeesProvided).toBe(false);
            expect(liveTx).toMatchInlineSnapshot(`
{
  "amount": "100000",
  "chainId": 0,
  "family": "evm",
  "feesStrategy": "medium",
  "gasLimit": "21000",
  "gasPrice": undefined,
  "maxFeePerGas": undefined,
  "maxPriorityFeePerGas": undefined,
  "mode": "send",
  "nonce": 1,
  "recipient": "0xABCDEF",
  "type": 2,
  "useAllAmount": false,
}
`);
        });
        test("with data provided", () => {
            const ethPlatformTx = {
                family: "ethereum",
                amount: new BigNumber(100000),
                recipient: "0xABCDEF",
                data: Buffer.from("testBufferString"),
            };
            const { canEditFees, hasFeesProvided, liveTx } = evm.getWalletAPITransactionSignFlowInfos({
                walletApiTransaction: ethPlatformTx,
                account: {},
            });
            expect(canEditFees).toBe(true);
            expect(hasFeesProvided).toBe(false);
            expect(liveTx).toMatchInlineSnapshot(`
{
  "amount": "100000",
  "chainId": 0,
  "data": {
    "data": [
      116,
      101,
      115,
      116,
      66,
      117,
      102,
      102,
      101,
      114,
      83,
      116,
      114,
      105,
      110,
      103,
    ],
    "type": "Buffer",
  },
  "family": "evm",
  "feesStrategy": "medium",
  "gasLimit": "21000",
  "gasPrice": undefined,
  "maxFeePerGas": undefined,
  "maxPriorityFeePerGas": undefined,
  "mode": "send",
  "nonce": -1,
  "recipient": "0xABCDEF",
  "type": 2,
  "useAllAmount": false,
}
`);
        });
        test("with account (chainId) provided", () => {
            const ethPlatformTx = {
                family: "ethereum",
                amount: new BigNumber(100000),
                recipient: "0xABCDEF",
            };
            const { canEditFees, hasFeesProvided, liveTx } = evm.getWalletAPITransactionSignFlowInfos({
                walletApiTransaction: ethPlatformTx,
                account: { type: "Account", currency: { ethereumLikeInfo: { chainId: 1 } } },
            });
            expect(canEditFees).toBe(true);
            expect(hasFeesProvided).toBe(false);
            expect(liveTx).toMatchInlineSnapshot(`
{
  "amount": "100000",
  "chainId": 1,
  "family": "evm",
  "feesStrategy": "medium",
  "gasLimit": "21000",
  "gasPrice": undefined,
  "maxFeePerGas": undefined,
  "maxPriorityFeePerGas": undefined,
  "mode": "send",
  "nonce": -1,
  "recipient": "0xABCDEF",
  "type": 2,
  "useAllAmount": false,
}
`);
        });
    });
});
//# sourceMappingURL=walletApiAdapter.test.js.map