PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@bitgo/sdk-coin-vet/dist/src/lib/transactionBuilder
Просмотр файла: tokenTransactionBuilder.js
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TokenTransactionBuilder = void 0;
const ethereumjs_util_1 = require("ethereumjs-util");
const sdk_core_1 = require("@bitgo/sdk-core");
const transactionBuilder_1 = require("./transactionBuilder");
const utils_1 = __importDefault(require("../utils"));
class TokenTransactionBuilder extends transactionBuilder_1.TransactionBuilder {
constructor(_coinConfig) {
super(_coinConfig);
}
initBuilder(tx) {
this._transaction = tx;
}
get tokenTransaction() {
return this._transaction;
}
get transactionType() {
return sdk_core_1.TransactionType.Send;
}
/**
* Validates the transaction clauses for flush token transaction.
* @param {TransactionClause[]} clauses - The transaction clauses to validate.
* @returns {boolean} - Returns true if the clauses are valid, false otherwise.
*/
isValidTransactionClauses(clauses) {
try {
if (!clauses || !Array.isArray(clauses) || clauses.length === 0) {
return false;
}
const clause = clauses[0];
if (!clause.to || !utils_1.default.isValidAddress(clause.to)) {
return false;
}
// For token transactions, the value should be 0
if (clause.value !== 0) {
return false;
}
const { address } = utils_1.default.decodeTransferTokenData(clause.data);
const recipientAddress = (0, ethereumjs_util_1.addHexPrefix)(address.toString()).toLowerCase();
if (!recipientAddress || !utils_1.default.isValidAddress(recipientAddress)) {
return false;
}
return true;
}
catch (e) {
return false;
}
}
tokenAddress(address) {
this.validateAddress({ address });
this.tokenTransaction.tokenAddress = address;
return this;
}
/** @inheritdoc */
validateTransaction(transaction) {
if (!transaction) {
throw new Error('transaction not defined');
}
if (!transaction.tokenAddress) {
throw new Error('Token address is required');
}
this.validateAddress({ address: transaction.tokenAddress });
}
}
exports.TokenTransactionBuilder = TokenTransactionBuilder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5UcmFuc2FjdGlvbkJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uQnVpbGRlci90b2tlblRyYW5zYWN0aW9uQnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxREFBK0M7QUFFL0MsOENBQWtEO0FBR2xELDZEQUEwRDtBQUUxRCxxREFBNkI7QUFFN0IsTUFBYSx1QkFBd0IsU0FBUSx1Q0FBa0I7SUFDN0QsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVcsQ0FBQyxFQUFvQjtRQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBZ0MsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyx5QkFBeUIsQ0FBQyxPQUE0QjtRQUM5RCxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNoRSxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNuRCxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCxnREFBZ0Q7WUFDaEQsSUFBSSxNQUFNLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUN2QixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFFRCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsZUFBSyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvRCxNQUFNLGdCQUFnQixHQUFHLElBQUEsOEJBQVksRUFBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUV4RSxJQUFJLENBQUMsZ0JBQWdCLElBQUksQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztnQkFDakUsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBRUQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsT0FBZTtRQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUM3QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsbUJBQW1CLENBQUMsV0FBOEI7UUFDaEQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztDQUNGO0FBdEVELDBEQXNFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZEhleFByZWZpeCB9IGZyb20gJ2V0aGVyZXVtanMtdXRpbCc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQ2xhdXNlIH0gZnJvbSAnQHZlY2hhaW4vc2RrLWNvcmUnO1xuXG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUb2tlblRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vdHJhbnNhY3Rpb24vdG9rZW5UcmFuc2FjdGlvbic7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgVG9rZW5UcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBpbml0QnVpbGRlcih0eDogVG9rZW5UcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHg7XG4gIH1cblxuICBnZXQgdG9rZW5UcmFuc2FjdGlvbigpOiBUb2tlblRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb24gYXMgVG9rZW5UcmFuc2FjdGlvbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgdHJhbnNhY3Rpb24gY2xhdXNlcyBmb3IgZmx1c2ggdG9rZW4gdHJhbnNhY3Rpb24uXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25DbGF1c2VbXX0gY2xhdXNlcyAtIFRoZSB0cmFuc2FjdGlvbiBjbGF1c2VzIHRvIHZhbGlkYXRlLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBSZXR1cm5zIHRydWUgaWYgdGhlIGNsYXVzZXMgYXJlIHZhbGlkLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNWYWxpZFRyYW5zYWN0aW9uQ2xhdXNlcyhjbGF1c2VzOiBUcmFuc2FjdGlvbkNsYXVzZVtdKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICghY2xhdXNlcyB8fCAhQXJyYXkuaXNBcnJheShjbGF1c2VzKSB8fCBjbGF1c2VzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNsYXVzZSA9IGNsYXVzZXNbMF07XG5cbiAgICAgIGlmICghY2xhdXNlLnRvIHx8ICF1dGlscy5pc1ZhbGlkQWRkcmVzcyhjbGF1c2UudG8pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgLy8gRm9yIHRva2VuIHRyYW5zYWN0aW9ucywgdGhlIHZhbHVlIHNob3VsZCBiZSAwXG4gICAgICBpZiAoY2xhdXNlLnZhbHVlICE9PSAwKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBhZGRyZXNzIH0gPSB1dGlscy5kZWNvZGVUcmFuc2ZlclRva2VuRGF0YShjbGF1c2UuZGF0YSk7XG4gICAgICBjb25zdCByZWNpcGllbnRBZGRyZXNzID0gYWRkSGV4UHJlZml4KGFkZHJlc3MudG9TdHJpbmcoKSkudG9Mb3dlckNhc2UoKTtcblxuICAgICAgaWYgKCFyZWNpcGllbnRBZGRyZXNzIHx8ICF1dGlscy5pc1ZhbGlkQWRkcmVzcyhyZWNpcGllbnRBZGRyZXNzKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICB0b2tlbkFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogdGhpcyB7XG4gICAgdGhpcy52YWxpZGF0ZUFkZHJlc3MoeyBhZGRyZXNzIH0pO1xuICAgIHRoaXMudG9rZW5UcmFuc2FjdGlvbi50b2tlbkFkZHJlc3MgPSBhZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb24/OiBUb2tlblRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0cmFuc2FjdGlvbiBub3QgZGVmaW5lZCcpO1xuICAgIH1cblxuICAgIGlmICghdHJhbnNhY3Rpb24udG9rZW5BZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Rva2VuIGFkZHJlc3MgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG5cbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IHRyYW5zYWN0aW9uLnRva2VuQWRkcmVzcyB9KTtcbiAgfVxufVxuIl19Выполнить команду
Для локальной разработки. Не используйте в интернете!