diamante-base
Version:
Low-level support library for the Diamante network.
44 lines (43 loc) • 1.76 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.extendFootprintTtl = extendFootprintTtl;
var _xdr = _interopRequireDefault(require("../xdr"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
/**
* Builds an operation to bump the time-to-live of a footprint (read and written
* ledger keys). Its only parameter is the new, absolute ledger sequence number
* at which the entry will expire.
*
* The footprint itself is derived from the transaction (see
* {@link TransactionBuilder}'s `opts.sorobanData` parameter, which is a
* {@link xdr.SorobanTransactionData} instance that contains fee data & resource
* usage as part of {@link xdr.SorobanResources}).
*
* @function
* @alias Operation.extendFootprintTtl
*
* @param {object} opts - object holding operation parameters
* @param {number} opts.extendTo - the absolute ledger sequence number at which
* the transaction's ledger keys will now expire
* @param {string} [opts.source] - an optional source account
*
* @returns {xdr.Operation} an Extend Footprint TTL operation
* (xdr.ExtendFootprintTTLOp)
*/
function extendFootprintTtl(opts) {
var _opts$extendTo;
if (((_opts$extendTo = opts.extendTo) !== null && _opts$extendTo !== void 0 ? _opts$extendTo : -1) <= 0) {
throw new RangeError("extendTo isn't a ledger quantity (uint32)");
}
var extendFootprintOp = new _xdr["default"].ExtendFootprintTtlOp({
ext: new _xdr["default"].ExtensionPoint(0),
extendTo: opts.extendTo
});
var opAttributes = {
body: _xdr["default"].OperationBody.extendFootprintTtl(extendFootprintOp)
};
this.setSourceAccount(opAttributes, opts);
return new _xdr["default"].Operation(opAttributes);
}
;