@ledgerhq/coin-stacks
Version:
Ledger Stacks Coin integration
112 lines • 4.24 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.acceptTokenTransfer = exports.acceptTransaction = void 0;
const specs_1 = require("@ledgerhq/coin-framework/bot/specs");
const token_1 = require("../bridge/utils/token");
const formatCurrencyUnit_1 = require("@ledgerhq/coin-framework/lib/currencies/formatCurrencyUnit");
const state_1 = require("@ledgerhq/cryptoassets/state");
const invariant_1 = __importDefault(require("invariant"));
exports.acceptTransaction = (0, specs_1.deviceActionFlow)({
steps: [
{
title: "Please",
button: specs_1.SpeculosButton.RIGHT,
expectedValue: () => "review",
},
{
title: "Origin",
button: specs_1.SpeculosButton.RIGHT,
expectedValue: ({ account }) => account.freshAddress,
},
{
title: "Nonce",
button: specs_1.SpeculosButton.RIGHT,
expectedValue: ({ transaction }) => (transaction.nonce ? transaction.nonce.toFixed() : "0"),
},
{
title: "Fee (uSTX)",
button: specs_1.SpeculosButton.RIGHT,
expectedValue: ({ transaction }) => (transaction.fee ? transaction.fee.toFixed() : "0"),
},
{
title: "Amount uSTX",
button: specs_1.SpeculosButton.RIGHT,
expectedValue: ({ status }) => status.amount.toFixed(),
},
{
title: "To",
button: specs_1.SpeculosButton.RIGHT,
expectedValue: ({ transaction }) => transaction.recipient,
},
{
title: "Memo",
button: specs_1.SpeculosButton.RIGHT,
expectedValue: ({ transaction }) => transaction.memo || "",
},
{
title: "APPROVE",
button: specs_1.SpeculosButton.BOTH,
},
],
});
exports.acceptTokenTransfer = (0, specs_1.deviceActionFlow)({
steps: [
{
title: "Please",
button: specs_1.SpeculosButton.RIGHT,
expectedValue: () => "review",
},
{
title: "Origin",
button: specs_1.SpeculosButton.RIGHT,
expectedValue: ({ account }) => account.freshAddress,
},
{
title: "Nonce",
button: specs_1.SpeculosButton.RIGHT,
expectedValue: ({ transaction }) => (transaction.nonce ? transaction.nonce.toFixed() : "0"),
},
{
title: "Fee (uSTX)",
button: specs_1.SpeculosButton.RIGHT,
expectedValue: ({ transaction }) => (transaction.fee ? transaction.fee.toFixed() : "0"),
},
{
title: "Amount",
button: specs_1.SpeculosButton.RIGHT,
expectedValue: async ({ transaction, status, account }) => {
const subAccount = (0, token_1.getSubAccount)(account, transaction);
(0, invariant_1.default)(subAccount, "subAccount not found");
const token = await (0, state_1.getCryptoAssetsStore)().findTokenById(subAccount.token.id);
if (!token) {
throw new Error("Token not found");
}
const formattedAmount = (0, formatCurrencyUnit_1.formatCurrencyUnit)(token.units[0], status.amount);
return `${formattedAmount} (${token.ticker})`;
},
},
{
title: "From",
button: specs_1.SpeculosButton.RIGHT,
expectedValue: ({ account }) => account.freshAddress,
},
{
title: "To",
button: specs_1.SpeculosButton.RIGHT,
expectedValue: ({ transaction }) => transaction.recipient,
},
{
title: "Memo",
button: specs_1.SpeculosButton.RIGHT,
expectedValue: ({ transaction }) => (transaction.memo ? "Complex memo value" : "None"),
},
{
title: "APPROVE",
button: specs_1.SpeculosButton.BOTH,
},
],
});
//# sourceMappingURL=bot-deviceActions.js.map