@libra-opensource/client-sdk-typescript
Version:
66 lines (65 loc) • 3.41 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.submit = exports.executeSubmit = void 0;
const accountKeys_1 = __importDefault(require("../../../account/accountKeys"));
const diemUtils_1 = __importDefault(require("../../../diemUtils"));
const bcsSerializer_1 = require("../../../bcs/bcs/bcsSerializer");
const command_1 = require("../command");
const submitPeerToPeerTransaction_1 = require("./submitPeerToPeerTransaction");
const submitAddCurrencyToAccountTransaction_1 = require("./submitAddCurrencyToAccountTransaction");
const submitGenericTypeTransaction_1 = require("./submitGenericTypeTransaction");
const cliError_1 = require("../../cliError");
const bytes_1 = require("../../../utils/bytes");
const submitArgs_1 = require("../../args/submitArgs");
function getAccountKeys(argv) {
return new accountKeys_1.default({
privateKey: bytes_1.bytesFromHexString(argv.privateKey),
publicKey: bytes_1.bytesFromHexString(argv.publicKey),
});
}
function executeSubmit(argv, tx) {
return __awaiter(this, void 0, void 0, function* () {
const accountKeys = getAccountKeys(argv);
const signedTransaction = diemUtils_1.default.signTransaction(tx, accountKeys);
const signedTxSerializer = new bcsSerializer_1.BcsSerializer();
signedTransaction.serialize(signedTxSerializer);
const signedBytes = signedTxSerializer.getBytes();
const hexTransaction = bytes_1.bytesToHexString(signedBytes);
try {
yield command_1.getClient().submitRawSignedTransaction(hexTransaction);
}
catch (e) {
throw new cliError_1.CliError('Failed to execute submit', e);
}
const transactionHash = diemUtils_1.default.hashTransaction(signedBytes);
yield command_1.getClient().waitForTransaction(argv.senderAddress, argv.sequenceNumber, false, transactionHash, argv.expirationTime);
});
}
exports.executeSubmit = executeSubmit;
function submit(argv, logger) {
return __awaiter(this, void 0, void 0, function* () {
const type = argv._[1];
if (type === submitArgs_1.PEER_TO_PEER_WITH_METADATA) {
yield submitPeerToPeerTransaction_1.submitPeerToPeerTransaction(argv);
}
else if (type === submitArgs_1.ADD_CURRENCY_TO_ACCOUNT) {
yield submitAddCurrencyToAccountTransaction_1.submitAddCurrencyToAccountTransaction(argv);
}
else {
yield submitGenericTypeTransaction_1.submitGenericTypeTransaction(type, argv);
}
});
}
exports.submit = submit;