UNPKG

@okxweb3/coin-stellar

Version:

@ok/coin-stellar is a Stellar SDK for building Web3 wallets and applications. It supports Stellar and PI blockchains, enabling private key management, address generation, transaction signing, trustline creation, and asset transfers

85 lines 2.85 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SorobanDataBuilder = void 0; const xdr_1 = __importDefault(require("./xdr")); class SorobanDataBuilder { constructor(sorobanData) { let data; if (!sorobanData) { data = new xdr_1.default.SorobanTransactionData({ resources: new xdr_1.default.SorobanResources({ footprint: new xdr_1.default.LedgerFootprint({ readOnly: [], readWrite: [] }), instructions: 0, readBytes: 0, writeBytes: 0 }), ext: new xdr_1.default.ExtensionPoint(0), resourceFee: new xdr_1.default.Int64(0) }); } else if (typeof sorobanData === 'string' || ArrayBuffer.isView(sorobanData)) { data = SorobanDataBuilder.fromXDR(sorobanData); } else { data = SorobanDataBuilder.fromXDR(sorobanData.toXDR()); } this._data = data; } static fromXDR(data) { return xdr_1.default.SorobanTransactionData.fromXDR(data, typeof data === 'string' ? 'base64' : 'raw'); } setResourceFee(fee) { this._data.resourceFee(new xdr_1.default.Int64(fee)); return this; } setResources(cpuInstrs, readBytes, writeBytes) { this._data.resources().instructions(cpuInstrs); this._data.resources().readBytes(readBytes); this._data.resources().writeBytes(writeBytes); return this; } appendFootprint(readOnly, readWrite) { return this.setFootprint(this.getReadOnly().concat(readOnly), this.getReadWrite().concat(readWrite)); } setFootprint(readOnly, readWrite) { if (readOnly !== null) { this.setReadOnly(readOnly); } if (readWrite !== null) { this.setReadWrite(readWrite); } return this; } setReadOnly(readOnly) { this._data .resources() .footprint() .readOnly(readOnly ?? []); return this; } setReadWrite(readWrite) { this._data .resources() .footprint() .readWrite(readWrite ?? []); return this; } build() { return xdr_1.default.SorobanTransactionData.fromXDR(this._data.toXDR()); } getReadOnly() { return this.getFootprint().readOnly(); } getReadWrite() { return this.getFootprint().readWrite(); } getFootprint() { return this._data.resources().footprint(); } } exports.SorobanDataBuilder = SorobanDataBuilder; //# sourceMappingURL=sorobandata_builder.js.map