PHP WebShell
Текущая директория: /opt/BitGoJS/modules/sdk-coin-sol/dist/src/lib
Просмотр файла: closeAtaBuilder.js
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.CloseAtaBuilder = void 0;
const sdk_core_1 = require("@bitgo/sdk-core");
const assert_1 = __importDefault(require("assert"));
const constants_1 = require("./constants");
const transaction_1 = require("./transaction");
const transactionBuilder_1 = require("./transactionBuilder");
const utils_1 = require("./utils");
class CloseAtaBuilder extends transactionBuilder_1.TransactionBuilder {
constructor(_coinConfig) {
super(_coinConfig);
this._transaction = new transaction_1.Transaction(_coinConfig);
}
get transactionType() {
return sdk_core_1.TransactionType.CloseAssociatedTokenAccount;
}
accountAddress(accountAddress) {
(0, utils_1.validateAddress)(accountAddress, 'accountAddress');
this._accountAddress = accountAddress;
return this;
}
destinationAddress(destinationAddress) {
(0, utils_1.validateAddress)(destinationAddress, 'destinationAddress');
this._destinationAddress = destinationAddress;
return this;
}
authorityAddress(authorityAddress) {
(0, utils_1.validateAddress)(authorityAddress, 'authorityAddress');
this._authorityAddress = authorityAddress;
return this;
}
/** @inheritDoc */
initBuilder(tx) {
super.initBuilder(tx);
for (const instruction of this._instructionsData) {
if (instruction.type === constants_1.InstructionBuilderTypes.CloseAssociatedTokenAccount) {
const ataCloseInstruction = instruction;
this.accountAddress(ataCloseInstruction.params.accountAddress);
this.destinationAddress(ataCloseInstruction.params.destinationAddress);
this.authorityAddress(ataCloseInstruction.params.authorityAddress);
}
}
}
/** @inheritdoc */
async buildImplementation() {
(0, assert_1.default)(this._accountAddress, 'Account Address must be set before building the transaction');
(0, assert_1.default)(this._destinationAddress, 'Destination Address must be set before building the transaction');
(0, assert_1.default)(this._authorityAddress, 'Authority Address must be set before building the transaction');
if (this._accountAddress === this._destinationAddress) {
throw new sdk_core_1.BuildTransactionError('Account address to close cannot be the same as the destination address');
}
const closeAssociatedTokenAccountData = {
type: constants_1.InstructionBuilderTypes.CloseAssociatedTokenAccount,
params: {
accountAddress: this._accountAddress,
destinationAddress: this._destinationAddress,
authorityAddress: this._authorityAddress,
},
};
this._instructionsData = [closeAssociatedTokenAccountData];
return await super.buildImplementation();
}
}
exports.CloseAtaBuilder = CloseAtaBuilder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvc2VBdGFCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jbG9zZUF0YUJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOENBQXlFO0FBRXpFLG9EQUE0QjtBQUM1QiwyQ0FBc0Q7QUFFdEQsK0NBQTRDO0FBQzVDLDZEQUEwRDtBQUMxRCxtQ0FBMEM7QUFFMUMsTUFBYSxlQUFnQixTQUFRLHVDQUFrQjtJQUtyRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUkseUJBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQywyQkFBMkIsQ0FBQztJQUNyRCxDQUFDO0lBRUQsY0FBYyxDQUFDLGNBQXNCO1FBQ25DLElBQUEsdUJBQWUsRUFBQyxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxrQkFBMEI7UUFDM0MsSUFBQSx1QkFBZSxFQUFDLGtCQUFrQixFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGtCQUFrQixDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGdCQUFnQixDQUFDLGdCQUF3QjtRQUN2QyxJQUFBLHVCQUFlLEVBQUMsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUFDMUMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsS0FBSyxNQUFNLFdBQVcsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNqRCxJQUFJLFdBQVcsQ0FBQyxJQUFJLEtBQUssbUNBQXVCLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztnQkFDN0UsTUFBTSxtQkFBbUIsR0FBYSxXQUFXLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2dCQUMvRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQ3ZFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNyRSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUEsZ0JBQU0sRUFBQyxJQUFJLENBQUMsZUFBZSxFQUFFLDZEQUE2RCxDQUFDLENBQUM7UUFDNUYsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxpRUFBaUUsQ0FBQyxDQUFDO1FBQ3BHLElBQUEsZ0JBQU0sRUFBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsK0RBQStELENBQUMsQ0FBQztRQUVoRyxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdEQsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHdFQUF3RSxDQUFDLENBQUM7UUFDNUcsQ0FBQztRQUVELE1BQU0sK0JBQStCLEdBQWE7WUFDaEQsSUFBSSxFQUFFLG1DQUF1QixDQUFDLDJCQUEyQjtZQUN6RCxNQUFNLEVBQUU7Z0JBQ04sY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlO2dCQUNwQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsbUJBQW1CO2dCQUM1QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCO2FBQ3pDO1NBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFFM0QsT0FBTyxNQUFNLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQXBFRCwwQ0FvRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBdGFDbG9zZSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IHZhbGlkYXRlQWRkcmVzcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgQ2xvc2VBdGFCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF9hY2NvdW50QWRkcmVzczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2Rlc3RpbmF0aW9uQWRkcmVzczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX2F1dGhvcml0eUFkZHJlc3M6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLkNsb3NlQXNzb2NpYXRlZFRva2VuQWNjb3VudDtcbiAgfVxuXG4gIGFjY291bnRBZGRyZXNzKGFjY291bnRBZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB2YWxpZGF0ZUFkZHJlc3MoYWNjb3VudEFkZHJlc3MsICdhY2NvdW50QWRkcmVzcycpO1xuICAgIHRoaXMuX2FjY291bnRBZGRyZXNzID0gYWNjb3VudEFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBkZXN0aW5hdGlvbkFkZHJlc3MoZGVzdGluYXRpb25BZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB2YWxpZGF0ZUFkZHJlc3MoZGVzdGluYXRpb25BZGRyZXNzLCAnZGVzdGluYXRpb25BZGRyZXNzJyk7XG4gICAgdGhpcy5fZGVzdGluYXRpb25BZGRyZXNzID0gZGVzdGluYXRpb25BZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgYXV0aG9yaXR5QWRkcmVzcyhhdXRob3JpdHlBZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB2YWxpZGF0ZUFkZHJlc3MoYXV0aG9yaXR5QWRkcmVzcywgJ2F1dGhvcml0eUFkZHJlc3MnKTtcbiAgICB0aGlzLl9hdXRob3JpdHlBZGRyZXNzID0gYXV0aG9yaXR5QWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgZm9yIChjb25zdCBpbnN0cnVjdGlvbiBvZiB0aGlzLl9pbnN0cnVjdGlvbnNEYXRhKSB7XG4gICAgICBpZiAoaW5zdHJ1Y3Rpb24udHlwZSA9PT0gSW5zdHJ1Y3Rpb25CdWlsZGVyVHlwZXMuQ2xvc2VBc3NvY2lhdGVkVG9rZW5BY2NvdW50KSB7XG4gICAgICAgIGNvbnN0IGF0YUNsb3NlSW5zdHJ1Y3Rpb246IEF0YUNsb3NlID0gaW5zdHJ1Y3Rpb247XG4gICAgICAgIHRoaXMuYWNjb3VudEFkZHJlc3MoYXRhQ2xvc2VJbnN0cnVjdGlvbi5wYXJhbXMuYWNjb3VudEFkZHJlc3MpO1xuICAgICAgICB0aGlzLmRlc3RpbmF0aW9uQWRkcmVzcyhhdGFDbG9zZUluc3RydWN0aW9uLnBhcmFtcy5kZXN0aW5hdGlvbkFkZHJlc3MpO1xuICAgICAgICB0aGlzLmF1dGhvcml0eUFkZHJlc3MoYXRhQ2xvc2VJbnN0cnVjdGlvbi5wYXJhbXMuYXV0aG9yaXR5QWRkcmVzcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICBhc3NlcnQodGhpcy5fYWNjb3VudEFkZHJlc3MsICdBY2NvdW50IEFkZHJlc3MgbXVzdCBiZSBzZXQgYmVmb3JlIGJ1aWxkaW5nIHRoZSB0cmFuc2FjdGlvbicpO1xuICAgIGFzc2VydCh0aGlzLl9kZXN0aW5hdGlvbkFkZHJlc3MsICdEZXN0aW5hdGlvbiBBZGRyZXNzIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcbiAgICBhc3NlcnQodGhpcy5fYXV0aG9yaXR5QWRkcmVzcywgJ0F1dGhvcml0eSBBZGRyZXNzIG11c3QgYmUgc2V0IGJlZm9yZSBidWlsZGluZyB0aGUgdHJhbnNhY3Rpb24nKTtcblxuICAgIGlmICh0aGlzLl9hY2NvdW50QWRkcmVzcyA9PT0gdGhpcy5fZGVzdGluYXRpb25BZGRyZXNzKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdBY2NvdW50IGFkZHJlc3MgdG8gY2xvc2UgY2Fubm90IGJlIHRoZSBzYW1lIGFzIHRoZSBkZXN0aW5hdGlvbiBhZGRyZXNzJyk7XG4gICAgfVxuXG4gICAgY29uc3QgY2xvc2VBc3NvY2lhdGVkVG9rZW5BY2NvdW50RGF0YTogQXRhQ2xvc2UgPSB7XG4gICAgICB0eXBlOiBJbnN0cnVjdGlvbkJ1aWxkZXJUeXBlcy5DbG9zZUFzc29jaWF0ZWRUb2tlbkFjY291bnQsXG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgYWNjb3VudEFkZHJlc3M6IHRoaXMuX2FjY291bnRBZGRyZXNzLFxuICAgICAgICBkZXN0aW5hdGlvbkFkZHJlc3M6IHRoaXMuX2Rlc3RpbmF0aW9uQWRkcmVzcyxcbiAgICAgICAgYXV0aG9yaXR5QWRkcmVzczogdGhpcy5fYXV0aG9yaXR5QWRkcmVzcyxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHRoaXMuX2luc3RydWN0aW9uc0RhdGEgPSBbY2xvc2VBc3NvY2lhdGVkVG9rZW5BY2NvdW50RGF0YV07XG5cbiAgICByZXR1cm4gYXdhaXQgc3VwZXIuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICB9XG59XG4iXX0=Выполнить команду
Для локальной разработки. Не используйте в интернете!