New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@rosen-bridge/abstract-extractor

Package Overview
Dependencies
Maintainers
3
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@rosen-bridge/abstract-extractor - npm Package Compare versions

Comparing version 0.1.2-7aba94c9 to 0.1.2

22

dist/ergo/initializable/AbstractInitializable.js

@@ -23,20 +23,14 @@ import JsonBigInt from '@rosen-bridge/json-bigint';

const apiOutput = await this.getBoxesWithOffsetLimit(offset, limit);
const filteredBoxes = apiOutput.boxes.filter((box) => box.creationHeight <= initialHeight && this.hasData(box));
const filteredBoxes = apiOutput.boxes.filter((box) => box.inclusionHeight <= initialHeight && this.hasData(box));
for (const box of filteredBoxes) {
const data = this.extractBoxData(box, box.blockId, box.creationHeight);
const data = this.extractBoxData(box, box.blockId, box.inclusionHeight);
if (!data)
continue;
let spendBlock, spendHeight;
if (box.spentTransactionId) {
const block = await this.getTxBlock(box.spentTransactionId);
if (block.height <= initialHeight) {
this.logger.debug(`Box with id ${box.boxId} spent at block ${JsonBigInt.stringify(block)} bellow the initial height`);
spendBlock = block.hash;
spendHeight = block.height;
}
}
const spent = box.spentHeight && box.spentHeight <= initialHeight;
if (spent)
this.logger.debug(`Box with id ${box.boxId} spent at block ${JsonBigInt.stringify(box.blockId)} bellow the initial height`);
const extractedData = {
...data,
spendBlock,
spendHeight,
spendBlock: spent ? box.spentBlockId : undefined,
spendHeight: spent ? box.spentHeight : undefined,
};

@@ -85,2 +79,2 @@ this.logger.debug(`Extracted data ${JsonBigInt.stringify(extractedData)} from box ${box.boxId} in initialization phase`);

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RJbml0aWFsaXphYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vaW5pdGlhbGl6YWJsZS9BYnN0cmFjdEluaXRpYWxpemFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFHbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUlqRSxNQUFNLE9BQWdCLGtDQUVwQixTQUFRLHFCQUFvQztJQUNsQyxVQUFVLENBQVU7SUFHOUI7Ozs7T0FJRztJQUNILFlBQVksVUFBVSxHQUFHLElBQUksRUFBRSxNQUF1QjtRQUNwRCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBb0JEOzs7O09BSUc7SUFDSCx3QkFBd0IsR0FBRyxLQUFLLEVBQzlCLGFBQXFCLEVBQ3JCLE1BQWMsRUFDZCxLQUFhLEVBSVosRUFBRTtRQUNILE1BQU0sY0FBYyxHQUF5QixFQUFFLENBQUM7UUFDaEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXBFLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUMxQyxDQUFDLEdBQVksRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxhQUFhLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FDM0UsQ0FBQztRQUNGLEtBQUssTUFBTSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLE9B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LGFBQWEsVUFBVSxDQUMzRSxDQUFDO29CQUNKLEtBQUssSUFBSSxDQUFDLENBQUM7b0JBQ1gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2QsOEJBQThCLElBQUksQ0FBQyxLQUFLLEVBQUUsb0JBQW9CLEtBQUssRUFBRSxDQUN0RSxDQUFDO2dCQUNKLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxDQUFDLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7SUFDSCxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0TG9nZ2VyIH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9hYnN0cmFjdC1sb2dnZXInO1xuaW1wb3J0IEpzb25CaWdJbnQgZnJvbSAnQHJvc2VuLWJyaWRnZS9qc29uLWJpZ2ludCc7XG5cbmltcG9ydCB7IEVyZ29Cb3gsIEVyZ29FeHRyYWN0ZWREYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBBUElfTElNSVQsIFJFVFJJQUxfQ09VTlQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgQWJzdHJhY3RFcmdvRXh0cmFjdG9yIH0gZnJvbSAnLi4vQWJzdHJhY3RFcmdvRXh0cmFjdG9yJztcbmltcG9ydCB7IEFic3RyYWN0SW5pdGlhbGl6YWJsZUVyZ29FeHRyYWN0b3JBY3Rpb24gfSBmcm9tICcuL0Fic3RyYWN0SW5pdGlhbGl6YWJsZUFjdGlvbic7XG5pbXBvcnQgeyBCbG9ja0luZm8gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0SW5pdGlhbGl6YWJsZUVyZ29FeHRyYWN0b3I8XG4gIEV4dHJhY3RlZERhdGEgZXh0ZW5kcyBFcmdvRXh0cmFjdGVkRGF0YVxuPiBleHRlbmRzIEFic3RyYWN0RXJnb0V4dHJhY3RvcjxFeHRyYWN0ZWREYXRhPiB7XG4gIHByb3RlY3RlZCBpbml0aWFsaXplOiBib29sZWFuO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgYWN0aW9uczogQWJzdHJhY3RJbml0aWFsaXphYmxlRXJnb0V4dHJhY3RvckFjdGlvbjxFeHRyYWN0ZWREYXRhPjtcblxuICAvKipcbiAgICogY3JlYXRlIGFuIGluaXRpYWxpemFibGUgZXJnbyBleHRyYWN0b3JcbiAgICogQHBhcmFtIGluaXRpYWxpemUgaWdub3JlIHRoZSBpbml0aWFsaXphdGlvbiBzdGVwIGlmIGl0cyBmYWxzZVxuICAgKiBAcGFyYW0gbG9nZ2VyXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihpbml0aWFsaXplID0gdHJ1ZSwgbG9nZ2VyPzogQWJzdHJhY3RMb2dnZXIpIHtcbiAgICBzdXBlcihsb2dnZXIpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZSA9IGluaXRpYWxpemU7XG4gIH1cblxuICAvKipcbiAgICogcmV0dXJuIGluaXQgcmVxdWlyZWQgYm94ZXMgd2l0aCBvZmZzZXQgbGltaXRcbiAgICogQHBhcmFtIG9mZnNldFxuICAgKiBAcGFyYW0gbGltaXRcbiAgICogQHJldHVybiBib3hlcyBpbiBiYXRjaFxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0Qm94ZXNXaXRoT2Zmc2V0TGltaXQ6IChcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBsaW1pdDogbnVtYmVyXG4gICkgPT4gUHJvbWlzZTx7IGJveGVzOiBFcmdvQm94W107IGhhc05leHRCYXRjaDogYm9vbGVhbiB9PjtcblxuICAvKipcbiAgICogcmV0dXJuIGJsb2NrIGluZm9ybWF0aW9uIG9mIHNwZWNpZmllZCB0eFxuICAgKiBAcGFyYW0gdHhJZFxuICAgKiBAcmV0dXJuIGJsb2NrIGluZm9cbiAgICovXG4gIGFic3RyYWN0IGdldFR4QmxvY2s6ICh0eElkOiBzdHJpbmcpID0+IFByb21pc2U8QmxvY2tJbmZvPjtcblxuICAvKipcbiAgICogcmV0dXJuIGFsbCByZWxhdGVkIGRhdGEgYmVsb3cgdGhlIGluaXRpYWwgaGVpZ2h0IChpbmNsdWRpbmcgdGhlIGluaXQgaGVpZ2h0KVxuICAgKiBAcGFyYW0gaW5pdGlhbEhlaWdodFxuICAgKiBAcmV0dXJuIGV4dHJhY3RlZCBkYXRhIGluIGJhdGNoXG4gICAqL1xuICBmZXRjaERhdGFXaXRoT2Zmc2V0TGltaXQgPSBhc3luYyAoXG4gICAgaW5pdGlhbEhlaWdodDogbnVtYmVyLFxuICAgIG9mZnNldDogbnVtYmVyLFxuICAgIGxpbWl0OiBudW1iZXJcbiAgKTogUHJvbWlzZTx7XG4gICAgZXh0cmFjdGVkQm94ZXM6IEFycmF5PEV4dHJhY3RlZERhdGE+O1xuICAgIGhhc05leHRCYXRjaDogYm9vbGVhbjtcbiAgfT4gPT4ge1xuICAgIGNvbnN0IGV4dHJhY3RlZEJveGVzOiBBcnJheTxFeHRyYWN0ZWREYXRhPiA9IFtdO1xuICAgIGNvbnN0IGFwaU91dHB1dCA9IGF3YWl0IHRoaXMuZ2V0Qm94ZXNXaXRoT2Zmc2V0TGltaXQob2Zmc2V0LCBsaW1pdCk7XG5cbiAgICBjb25zdCBmaWx0ZXJlZEJveGVzID0gYXBpT3V0cHV0LmJveGVzLmZpbHRlcihcbiAgICAgIChib3g6IEVyZ29Cb3gpID0+IGJveC5jcmVhdGlvbkhlaWdodCA8PSBpbml0aWFsSGVpZ2h0ICYmIHRoaXMuaGFzRGF0YShib3gpXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IGJveCBvZiBmaWx0ZXJlZEJveGVzKSB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5leHRyYWN0Qm94RGF0YShib3gsIGJveC5ibG9ja0lkLCBib3guY3JlYXRpb25IZWlnaHQpO1xuICAgICAgaWYgKCFkYXRhKSBjb250aW51ZTtcbiAgICAgIGxldCBzcGVuZEJsb2NrLCBzcGVuZEhlaWdodDtcbiAgICAgIGlmIChib3guc3BlbnRUcmFuc2FjdGlvbklkKSB7XG4gICAgICAgIGNvbnN0IGJsb2NrID0gYXdhaXQgdGhpcy5nZXRUeEJsb2NrKGJveC5zcGVudFRyYW5zYWN0aW9uSWQpO1xuICAgICAgICBpZiAoYmxvY2suaGVpZ2h0IDw9IGluaXRpYWxIZWlnaHQpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgICAgIGBCb3ggd2l0aCBpZCAke2JveC5ib3hJZH0gc3BlbnQgYXQgYmxvY2sgJHtKc29uQmlnSW50LnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgYmxvY2tcbiAgICAgICAgICAgICl9IGJlbGxvdyB0aGUgaW5pdGlhbCBoZWlnaHRgXG4gICAgICAgICAgKTtcbiAgICAgICAgICBzcGVuZEJsb2NrID0gYmxvY2suaGFzaDtcbiAgICAgICAgICBzcGVuZEhlaWdodCA9IGJsb2NrLmhlaWdodDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgY29uc3QgZXh0cmFjdGVkRGF0YSA9IHtcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgc3BlbmRCbG9jayxcbiAgICAgICAgc3BlbmRIZWlnaHQsXG4gICAgICB9IGFzIEV4dHJhY3RlZERhdGE7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYEV4dHJhY3RlZCBkYXRhICR7SnNvbkJpZ0ludC5zdHJpbmdpZnkoZXh0cmFjdGVkRGF0YSl9IGZyb20gYm94ICR7XG4gICAgICAgICAgYm94LmJveElkXG4gICAgICAgIH0gaW4gaW5pdGlhbGl6YXRpb24gcGhhc2VgXG4gICAgICApO1xuICAgICAgZXh0cmFjdGVkQm94ZXMucHVzaChleHRyYWN0ZWREYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgZXh0cmFjdGVkQm94ZXMsIGhhc05leHRCYXRjaDogYXBpT3V0cHV0Lmhhc05leHRCYXRjaCB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiBpbml0aWFsaXplIGV4dHJhY3RvciBkYXRhYmFzZSB3aXRoIGRhdGEgY3JlYXRlZCBiZWxvdyB0aGUgaW5pdGlhbCBoZWlnaHRcbiAgICogaWdub3JlIGluaXRpYWxpemF0aW9uIGlmIHRoaXMgZmVhdHVyZSBpcyBvZmZcbiAgICogdHJ5IHRvIGdldCBkYXRhIG11bHRpcGxlIHRpbWVzIHRvIHBhc3MgYWNjaWRlbnRhbCBuZXR3b3JrIHByb2JsZW1zXG4gICAqIEBwYXJhbSBpbml0aWFsQmxvY2tcbiAgICovXG4gIGluaXRpYWxpemVCb3hlcyA9IGFzeW5jIChpbml0aWFsQmxvY2s6IEJsb2NrSW5mbykgPT4ge1xuICAgIGxldCB0cmlhbCA9IDE7XG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBJbml0aWFsaXppbmcgJHt0aGlzLmdldElkKCl9IHN0YXJ0ZWQsIHJlbW92aW5nIGFsbCBleGlzdGluZyBkYXRhYFxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMuYWN0aW9ucy5yZW1vdmVBbGxEYXRhKHRoaXMuZ2V0SWQoKSk7XG5cbiAgICAgIGxldCBoYXNOZXh0QmF0Y2ggPSB0cnVlO1xuICAgICAgbGV0IG9mZnNldCA9IDA7XG4gICAgICB3aGlsZSAoaGFzTmV4dEJhdGNoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuZmV0Y2hEYXRhV2l0aE9mZnNldExpbWl0KFxuICAgICAgICAgICAgaW5pdGlhbEJsb2NrLmhlaWdodCxcbiAgICAgICAgICAgIG9mZnNldCxcbiAgICAgICAgICAgIEFQSV9MSU1JVFxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgICAgIGBJbnNlcnRpbmcgJHtcbiAgICAgICAgICAgICAgZGF0YS5leHRyYWN0ZWRCb3hlcy5sZW5ndGhcbiAgICAgICAgICAgIH0gbmV3IGV4dHJhY3RlZCBkYXRhIGluICR7dGhpcy5nZXRJZCgpfSBpbml0aWFsaXphdGlvbmBcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IGluc2VydFN1Y2Nlc3MgPSBhd2FpdCB0aGlzLmFjdGlvbnMuaW5zZXJ0Qm94ZXMoXG4gICAgICAgICAgICBkYXRhLmV4dHJhY3RlZEJveGVzLFxuICAgICAgICAgICAgdGhpcy5nZXRJZCgpXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoIWluc2VydFN1Y2Nlc3MpIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IHN0b3JlIGV4dHJhY3RlZCBkYXRhJyk7XG5cbiAgICAgICAgICBoYXNOZXh0QmF0Y2ggPSBkYXRhLmhhc05leHRCYXRjaDtcbiAgICAgICAgICBvZmZzZXQgKz0gQVBJX0xJTUlUO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgICAgIGBJbml0aWFsaXphdGlvbiBmb3IgJHt0aGlzLmdldElkKCl9IGZhaWxlZCB3aXRoIGVycm9yIDoke2V9YFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKHRyaWFsID09IFJFVFJJQUxfQ09VTlQpXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgYEluaXRpYWxpemF0aW9uIGZvciAke3RoaXMuZ2V0SWQoKX0gZmFpbGVkIGFmdGVyICR7UkVUUklBTF9DT1VOVH0gcmV0cmlhbGBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgdHJpYWwgKz0gMTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgICAgYFRyeWluZyBhZ2FpbiB0byBpbml0aWFsaXplICR7dGhpcy5nZXRJZCgpfSB3aXRoIHRyaWFsIHN0ZXAgJHt0cmlhbH1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKGBJbml0aWFsaXphdGlvbiBmb3IgJHt0aGlzLmdldElkKCl9IGlzIHR1cm5lZCBvZmZgKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJzdHJhY3RJbml0aWFsaXphYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vaW5pdGlhbGl6YWJsZS9BYnN0cmFjdEluaXRpYWxpemFibGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxVQUFVLE1BQU0sMkJBQTJCLENBQUM7QUFHbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUlqRSxNQUFNLE9BQWdCLGtDQUVwQixTQUFRLHFCQUFvQztJQUNsQyxVQUFVLENBQVU7SUFHOUI7Ozs7T0FJRztJQUNILFlBQVksVUFBVSxHQUFHLElBQUksRUFBRSxNQUF1QjtRQUNwRCxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBb0JEOzs7O09BSUc7SUFDSCx3QkFBd0IsR0FBRyxLQUFLLEVBQzlCLGFBQXFCLEVBQ3JCLE1BQWMsRUFDZCxLQUFhLEVBSVosRUFBRTtRQUNILE1BQU0sY0FBYyxHQUF5QixFQUFFLENBQUM7UUFDaEQsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXBFLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUMxQyxDQUFDLEdBQVksRUFBRSxFQUFFLENBQ2YsR0FBRyxDQUFDLGVBQWUsSUFBSSxhQUFhLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FDNUQsQ0FBQztRQUNGLEtBQUssTUFBTSxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLE9B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TSxDQUFDLElBQUksQ0FDZCw4QkFBOEIsSUFBSSxDQUFDLEtBQUssRUFBRSxvQkFBb0IsS0FBSyxFQUFFLENBQ3RFLENBQUM7Z0JBQ0osQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHNCQUFzQixJQUFJLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDdkUsQ0FBQztJQUNILENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgSnNvbkJpZ0ludCBmcm9tICdAcm9zZW4tYnJpZGdlL2pzb24tYmlnaW50JztcblxuaW1wb3J0IHsgRXJnb0JveCwgRXJnb0V4dHJhY3RlZERhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFQSV9MSU1JVCwgUkVUUklBTF9DT1VOVCB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBBYnN0cmFjdEVyZ29FeHRyYWN0b3IgfSBmcm9tICcuLi9BYnN0cmFjdEVyZ29FeHRyYWN0b3InO1xuaW1wb3J0IHsgQWJzdHJhY3RJbml0aWFsaXphYmxlRXJnb0V4dHJhY3RvckFjdGlvbiB9IGZyb20gJy4vQWJzdHJhY3RJbml0aWFsaXphYmxlQWN0aW9uJztcbmltcG9ydCB7IEJsb2NrSW5mbyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RJbml0aWFsaXphYmxlRXJnb0V4dHJhY3RvcjxcbiAgRXh0cmFjdGVkRGF0YSBleHRlbmRzIEVyZ29FeHRyYWN0ZWREYXRhXG4+IGV4dGVuZHMgQWJzdHJhY3RFcmdvRXh0cmFjdG9yPEV4dHJhY3RlZERhdGE+IHtcbiAgcHJvdGVjdGVkIGluaXRpYWxpemU6IGJvb2xlYW47XG4gIHByb3RlY3RlZCBhYnN0cmFjdCBhY3Rpb25zOiBBYnN0cmFjdEluaXRpYWxpemFibGVFcmdvRXh0cmFjdG9yQWN0aW9uPEV4dHJhY3RlZERhdGE+O1xuXG4gIC8qKlxuICAgKiBjcmVhdGUgYW4gaW5pdGlhbGl6YWJsZSBlcmdvIGV4dHJhY3RvclxuICAgKiBAcGFyYW0gaW5pdGlhbGl6ZSBpZ25vcmUgdGhlIGluaXRpYWxpemF0aW9uIHN0ZXAgaWYgaXRzIGZhbHNlXG4gICAqIEBwYXJhbSBsb2dnZXJcbiAgICovXG4gIGNvbnN0cnVjdG9yKGluaXRpYWxpemUgPSB0cnVlLCBsb2dnZXI/OiBBYnN0cmFjdExvZ2dlcikge1xuICAgIHN1cGVyKGxvZ2dlcik7XG4gICAgdGhpcy5pbml0aWFsaXplID0gaW5pdGlhbGl6ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm4gaW5pdCByZXF1aXJlZCBib3hlcyB3aXRoIG9mZnNldCBsaW1pdFxuICAgKiBAcGFyYW0gb2Zmc2V0XG4gICAqIEBwYXJhbSBsaW1pdFxuICAgKiBAcmV0dXJuIGJveGVzIGluIGJhdGNoXG4gICAqL1xuICBhYnN0cmFjdCBnZXRCb3hlc1dpdGhPZmZzZXRMaW1pdDogKFxuICAgIG9mZnNldDogbnVtYmVyLFxuICAgIGxpbWl0OiBudW1iZXJcbiAgKSA9PiBQcm9taXNlPHsgYm94ZXM6IEVyZ29Cb3hbXTsgaGFzTmV4dEJhdGNoOiBib29sZWFuIH0+O1xuXG4gIC8qKlxuICAgKiByZXR1cm4gYmxvY2sgaW5mb3JtYXRpb24gb2Ygc3BlY2lmaWVkIHR4XG4gICAqIEBwYXJhbSB0eElkXG4gICAqIEByZXR1cm4gYmxvY2sgaW5mb1xuICAgKi9cbiAgYWJzdHJhY3QgZ2V0VHhCbG9jazogKHR4SWQ6IHN0cmluZykgPT4gUHJvbWlzZTxCbG9ja0luZm8+O1xuXG4gIC8qKlxuICAgKiByZXR1cm4gYWxsIHJlbGF0ZWQgZGF0YSBiZWxvdyB0aGUgaW5pdGlhbCBoZWlnaHQgKGluY2x1ZGluZyB0aGUgaW5pdCBoZWlnaHQpXG4gICAqIEBwYXJhbSBpbml0aWFsSGVpZ2h0XG4gICAqIEByZXR1cm4gZXh0cmFjdGVkIGRhdGEgaW4gYmF0Y2hcbiAgICovXG4gIGZldGNoRGF0YVdpdGhPZmZzZXRMaW1pdCA9IGFzeW5jIChcbiAgICBpbml0aWFsSGVpZ2h0OiBudW1iZXIsXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgbGltaXQ6IG51bWJlclxuICApOiBQcm9taXNlPHtcbiAgICBleHRyYWN0ZWRCb3hlczogQXJyYXk8RXh0cmFjdGVkRGF0YT47XG4gICAgaGFzTmV4dEJhdGNoOiBib29sZWFuO1xuICB9PiA9PiB7XG4gICAgY29uc3QgZXh0cmFjdGVkQm94ZXM6IEFycmF5PEV4dHJhY3RlZERhdGE+ID0gW107XG4gICAgY29uc3QgYXBpT3V0cHV0ID0gYXdhaXQgdGhpcy5nZXRCb3hlc1dpdGhPZmZzZXRMaW1pdChvZmZzZXQsIGxpbWl0KTtcblxuICAgIGNvbnN0IGZpbHRlcmVkQm94ZXMgPSBhcGlPdXRwdXQuYm94ZXMuZmlsdGVyKFxuICAgICAgKGJveDogRXJnb0JveCkgPT5cbiAgICAgICAgYm94LmluY2x1c2lvbkhlaWdodCA8PSBpbml0aWFsSGVpZ2h0ICYmIHRoaXMuaGFzRGF0YShib3gpXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IGJveCBvZiBmaWx0ZXJlZEJveGVzKSB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5leHRyYWN0Qm94RGF0YShib3gsIGJveC5ibG9ja0lkLCBib3guaW5jbHVzaW9uSGVpZ2h0KTtcbiAgICAgIGlmICghZGF0YSkgY29udGludWU7XG4gICAgICBjb25zdCBzcGVudCA9IGJveC5zcGVudEhlaWdodCAmJiBib3guc3BlbnRIZWlnaHQgPD0gaW5pdGlhbEhlaWdodDtcbiAgICAgIGlmIChzcGVudClcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgICAgYEJveCB3aXRoIGlkICR7Ym94LmJveElkfSBzcGVudCBhdCBibG9jayAke0pzb25CaWdJbnQuc3RyaW5naWZ5KFxuICAgICAgICAgICAgYm94LmJsb2NrSWRcbiAgICAgICAgICApfSBiZWxsb3cgdGhlIGluaXRpYWwgaGVpZ2h0YFxuICAgICAgICApO1xuICAgICAgY29uc3QgZXh0cmFjdGVkRGF0YSA9IHtcbiAgICAgICAgLi4uZGF0YSxcbiAgICAgICAgc3BlbmRCbG9jazogc3BlbnQgPyBib3guc3BlbnRCbG9ja0lkIDogdW5kZWZpbmVkLFxuICAgICAgICBzcGVuZEhlaWdodDogc3BlbnQgPyBib3guc3BlbnRIZWlnaHQgOiB1bmRlZmluZWQsXG4gICAgICB9IGFzIEV4dHJhY3RlZERhdGE7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcbiAgICAgICAgYEV4dHJhY3RlZCBkYXRhICR7SnNvbkJpZ0ludC5zdHJpbmdpZnkoZXh0cmFjdGVkRGF0YSl9IGZyb20gYm94ICR7XG4gICAgICAgICAgYm94LmJveElkXG4gICAgICAgIH0gaW4gaW5pdGlhbGl6YXRpb24gcGhhc2VgXG4gICAgICApO1xuICAgICAgZXh0cmFjdGVkQm94ZXMucHVzaChleHRyYWN0ZWREYXRhKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgZXh0cmFjdGVkQm94ZXMsIGhhc05leHRCYXRjaDogYXBpT3V0cHV0Lmhhc05leHRCYXRjaCB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiBpbml0aWFsaXplIGV4dHJhY3RvciBkYXRhYmFzZSB3aXRoIGRhdGEgY3JlYXRlZCBiZWxvdyB0aGUgaW5pdGlhbCBoZWlnaHRcbiAgICogaWdub3JlIGluaXRpYWxpemF0aW9uIGlmIHRoaXMgZmVhdHVyZSBpcyBvZmZcbiAgICogdHJ5IHRvIGdldCBkYXRhIG11bHRpcGxlIHRpbWVzIHRvIHBhc3MgYWNjaWRlbnRhbCBuZXR3b3JrIHByb2JsZW1zXG4gICAqIEBwYXJhbSBpbml0aWFsQmxvY2tcbiAgICovXG4gIGluaXRpYWxpemVCb3hlcyA9IGFzeW5jIChpbml0aWFsQmxvY2s6IEJsb2NrSW5mbykgPT4ge1xuICAgIGxldCB0cmlhbCA9IDE7XG4gICAgaWYgKHRoaXMuaW5pdGlhbGl6ZSkge1xuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoXG4gICAgICAgIGBJbml0aWFsaXppbmcgJHt0aGlzLmdldElkKCl9IHN0YXJ0ZWQsIHJlbW92aW5nIGFsbCBleGlzdGluZyBkYXRhYFxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMuYWN0aW9ucy5yZW1vdmVBbGxEYXRhKHRoaXMuZ2V0SWQoKSk7XG5cbiAgICAgIGxldCBoYXNOZXh0QmF0Y2ggPSB0cnVlO1xuICAgICAgbGV0IG9mZnNldCA9IDA7XG4gICAgICB3aGlsZSAoaGFzTmV4dEJhdGNoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuZmV0Y2hEYXRhV2l0aE9mZnNldExpbWl0KFxuICAgICAgICAgICAgaW5pdGlhbEJsb2NrLmhlaWdodCxcbiAgICAgICAgICAgIG9mZnNldCxcbiAgICAgICAgICAgIEFQSV9MSU1JVFxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcbiAgICAgICAgICAgIGBJbnNlcnRpbmcgJHtcbiAgICAgICAgICAgICAgZGF0YS5leHRyYWN0ZWRCb3hlcy5sZW5ndGhcbiAgICAgICAgICAgIH0gbmV3IGV4dHJhY3RlZCBkYXRhIGluICR7dGhpcy5nZXRJZCgpfSBpbml0aWFsaXphdGlvbmBcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IGluc2VydFN1Y2Nlc3MgPSBhd2FpdCB0aGlzLmFjdGlvbnMuaW5zZXJ0Qm94ZXMoXG4gICAgICAgICAgICBkYXRhLmV4dHJhY3RlZEJveGVzLFxuICAgICAgICAgICAgdGhpcy5nZXRJZCgpXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoIWluc2VydFN1Y2Nlc3MpIHRocm93IG5ldyBFcnJvcignQ291bGQgbm90IHN0b3JlIGV4dHJhY3RlZCBkYXRhJyk7XG5cbiAgICAgICAgICBoYXNOZXh0QmF0Y2ggPSBkYXRhLmhhc05leHRCYXRjaDtcbiAgICAgICAgICBvZmZzZXQgKz0gQVBJX0xJTUlUO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgdGhpcy5sb2dnZXIud2FybihcbiAgICAgICAgICAgIGBJbml0aWFsaXphdGlvbiBmb3IgJHt0aGlzLmdldElkKCl9IGZhaWxlZCB3aXRoIGVycm9yIDoke2V9YFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKHRyaWFsID09IFJFVFJJQUxfQ09VTlQpXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgICAgICAgYEluaXRpYWxpemF0aW9uIGZvciAke3RoaXMuZ2V0SWQoKX0gZmFpbGVkIGFmdGVyICR7UkVUUklBTF9DT1VOVH0gcmV0cmlhbGBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgdHJpYWwgKz0gMTtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKFxuICAgICAgICAgICAgYFRyeWluZyBhZ2FpbiB0byBpbml0aWFsaXplICR7dGhpcy5nZXRJZCgpfSB3aXRoIHRyaWFsIHN0ZXAgJHt0cmlhbH1gXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZ2dlci5pbmZvKGBJbml0aWFsaXphdGlvbiBmb3IgJHt0aGlzLmdldElkKCl9IGlzIHR1cm5lZCBvZmZgKTtcbiAgICB9XG4gIH07XG59XG4iXX0=

@@ -35,3 +35,5 @@ export declare enum ErgoNetworkType {

blockId: string;
spentTransactionId?: string;
inclusionHeight: number;
spentBlockId?: string;
spentHeight?: number;
}

@@ -38,0 +40,0 @@ export type Transaction = {

@@ -6,2 +6,2 @@ export var ErgoNetworkType;

})(ErgoNetworkType || (ErgoNetworkType = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9lcmdvL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN6Qix3Q0FBcUIsQ0FBQTtJQUNyQixnQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhXLGVBQWUsS0FBZixlQUFlLFFBRzFCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRXJnb05ldHdvcmtUeXBlIHtcbiAgRXhwbG9yZXIgPSAnZXhwbG9yZXInLFxuICBOb2RlID0gJ25vZGUnLFxufVxuXG5leHBvcnQgdHlwZSBJbnB1dEJveCA9IHtcbiAgYm94SWQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIERhdGFJbnB1dCA9IHtcbiAgYm94SWQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEFzc2V0ID0ge1xuICB0b2tlbklkOiBzdHJpbmc7XG4gIGFtb3VudDogYmlnaW50O1xufTtcblxuZXhwb3J0IHR5cGUgQWRkaXRpb25hbFJlZ2lzdGVycyA9IHtcbiAgUjQ/OiBzdHJpbmc7XG4gIFI1Pzogc3RyaW5nO1xuICBSNj86IHN0cmluZztcbiAgUjc/OiBzdHJpbmc7XG4gIFI4Pzogc3RyaW5nO1xuICBSOT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE91dHB1dEJveCA9IHtcbiAgYm94SWQ6IHN0cmluZztcbiAgdmFsdWU6IGJpZ2ludDtcbiAgZXJnb1RyZWU6IHN0cmluZztcbiAgY3JlYXRpb25IZWlnaHQ6IG51bWJlcjtcbiAgYXNzZXRzPzogQXJyYXk8QXNzZXQ+O1xuICBhZGRpdGlvbmFsUmVnaXN0ZXJzPzogQWRkaXRpb25hbFJlZ2lzdGVycztcbiAgdHJhbnNhY3Rpb25JZDogc3RyaW5nO1xuICBpbmRleDogYmlnaW50IHwgbnVtYmVyO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBFcmdvQm94IGV4dGVuZHMgT3V0cHV0Qm94IHtcbiAgYmxvY2tJZDogc3RyaW5nO1xuICBzcGVudFRyYW5zYWN0aW9uSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uID0ge1xuICBpZDogc3RyaW5nO1xuICBpbnB1dHM6IEFycmF5PElucHV0Qm94PjtcbiAgZGF0YUlucHV0czogQXJyYXk8RGF0YUlucHV0PjtcbiAgb3V0cHV0czogQXJyYXk8T3V0cHV0Qm94PjtcbiAgc2l6ZT86IGJpZ2ludDtcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BlbmRJbmZvIHtcbiAgYm94SWQ6IHN0cmluZztcbiAgdHhJZDogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVyZ29FeHRyYWN0ZWREYXRhIHtcbiAgYm94SWQ6IHN0cmluZztcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIGJsb2NrSWQ6IHN0cmluZztcbiAgc3BlbmRCbG9jaz86IHN0cmluZztcbiAgc3BlbmRIZWlnaHQ/OiBudW1iZXI7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9lcmdvL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksZUFHWDtBQUhELFdBQVksZUFBZTtJQUN6Qix3Q0FBcUIsQ0FBQTtJQUNyQixnQ0FBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhXLGVBQWUsS0FBZixlQUFlLFFBRzFCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRXJnb05ldHdvcmtUeXBlIHtcbiAgRXhwbG9yZXIgPSAnZXhwbG9yZXInLFxuICBOb2RlID0gJ25vZGUnLFxufVxuXG5leHBvcnQgdHlwZSBJbnB1dEJveCA9IHtcbiAgYm94SWQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIERhdGFJbnB1dCA9IHtcbiAgYm94SWQ6IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEFzc2V0ID0ge1xuICB0b2tlbklkOiBzdHJpbmc7XG4gIGFtb3VudDogYmlnaW50O1xufTtcblxuZXhwb3J0IHR5cGUgQWRkaXRpb25hbFJlZ2lzdGVycyA9IHtcbiAgUjQ/OiBzdHJpbmc7XG4gIFI1Pzogc3RyaW5nO1xuICBSNj86IHN0cmluZztcbiAgUjc/OiBzdHJpbmc7XG4gIFI4Pzogc3RyaW5nO1xuICBSOT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIE91dHB1dEJveCA9IHtcbiAgYm94SWQ6IHN0cmluZztcbiAgdmFsdWU6IGJpZ2ludDtcbiAgZXJnb1RyZWU6IHN0cmluZztcbiAgY3JlYXRpb25IZWlnaHQ6IG51bWJlcjtcbiAgYXNzZXRzPzogQXJyYXk8QXNzZXQ+O1xuICBhZGRpdGlvbmFsUmVnaXN0ZXJzPzogQWRkaXRpb25hbFJlZ2lzdGVycztcbiAgdHJhbnNhY3Rpb25JZDogc3RyaW5nO1xuICBpbmRleDogYmlnaW50IHwgbnVtYmVyO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBFcmdvQm94IGV4dGVuZHMgT3V0cHV0Qm94IHtcbiAgYmxvY2tJZDogc3RyaW5nO1xuICBpbmNsdXNpb25IZWlnaHQ6IG51bWJlcjtcbiAgc3BlbnRCbG9ja0lkPzogc3RyaW5nO1xuICBzcGVudEhlaWdodD86IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb24gPSB7XG4gIGlkOiBzdHJpbmc7XG4gIGlucHV0czogQXJyYXk8SW5wdXRCb3g+O1xuICBkYXRhSW5wdXRzOiBBcnJheTxEYXRhSW5wdXQ+O1xuICBvdXRwdXRzOiBBcnJheTxPdXRwdXRCb3g+O1xuICBzaXplPzogYmlnaW50O1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBTcGVuZEluZm8ge1xuICBib3hJZDogc3RyaW5nO1xuICB0eElkOiBzdHJpbmc7XG4gIGluZGV4OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXJnb0V4dHJhY3RlZERhdGEge1xuICBib3hJZDogc3RyaW5nO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgYmxvY2tJZDogc3RyaW5nO1xuICBzcGVuZEJsb2NrPzogc3RyaW5nO1xuICBzcGVuZEhlaWdodD86IG51bWJlcjtcbn1cbiJdfQ==
import { BlockInfo } from '../../interfaces';
import { ErgoBox } from '../interfaces';
import { AbstractNetwork } from './AbstractNetwork';
import { V1 } from '@rosen-clients/ergo-explorer';
export declare class ExplorerNetwork extends AbstractNetwork {

@@ -13,2 +14,8 @@ private api;

/**
* convert explorer api boxes to ErgoBox interface
* @param box
* @returns ErgoBox
*/
convertBox: (box: V1.OutputInfo) => Promise<ErgoBox>;
/**
* use explorer api to return related boxes by specified address

@@ -15,0 +22,0 @@ * @param address

@@ -21,2 +21,26 @@ import ergoExplorerClientFactory from '@rosen-clients/ergo-explorer';

/**
* convert explorer api boxes to ErgoBox interface
* @param box
* @returns ErgoBox
*/
convertBox = async (box) => {
const spendInfo = box.spentTransactionId
? await this.getTxBlock(box.spentTransactionId)
: undefined;
return {
blockId: box.blockId,
boxId: box.boxId,
creationHeight: box.creationHeight,
inclusionHeight: box.settlementHeight,
ergoTree: box.ergoTree,
index: box.index,
transactionId: box.transactionId,
value: box.value,
additionalRegisters: box.additionalRegisters,
assets: box.assets,
spentHeight: spendInfo?.height,
spentBlockId: spendInfo?.hash,
};
};
/**
* use explorer api to return related boxes by specified address

@@ -35,3 +59,7 @@ * @param address

throw new Error('Explorer BoxesByAddress api expected to have items');
return { boxes: boxes.items, hasNextBatch: boxes.total > offset + limit };
const resultBoxes = [];
for (const box of boxes.items) {
resultBoxes.push(await this.convertBox(box));
}
return { boxes: resultBoxes, hasNextBatch: boxes.total > offset + limit };
};

@@ -52,5 +80,9 @@ /**

throw new Error('Explorer BoxesByTokeId api expected to have items');
return { boxes: boxes.items, hasNextBatch: boxes.total > offset + limit };
const resultBoxes = [];
for (const box of boxes.items) {
resultBoxes.push(await this.convertBox(box));
}
return { boxes: resultBoxes, hasNextBatch: boxes.total > offset + limit };
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwbG9yZXJOZXR3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vbmV0d29yay9FeHBsb3Jlck5ldHdvcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyx5QkFBeUIsTUFBTSw4QkFBOEIsQ0FBQztBQUlyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZUFBZTtJQUMxQyxHQUFHLENBQUM7SUFFWixZQUFZLEdBQVc7UUFDckIsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsR0FBRyxHQUFHLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLEdBQUcsS0FBSyxFQUFFLElBQVksRUFBc0IsRUFBRTtRQUN0RCxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELE9BQU87WUFDTCxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU87WUFDaEIsTUFBTSxFQUFFLEVBQUUsQ0FBQyxlQUFlO1NBQzNCLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRjs7Ozs7O09BTUc7SUFDSCxpQkFBaUIsR0FBRyxLQUFLLEVBQ3ZCLE9BQWUsRUFDZixNQUFjLEVBQ2QsS0FBYSxFQUN5QyxFQUFFO1FBQ3hELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsT0FBTyxFQUFFO1lBQ2hFLE1BQU0sRUFBRSxNQUFNO1lBQ2QsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLG9EQUFvRCxDQUFDLENBQUM7UUFDeEUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsS0FBSyxHQUFHLE1BQU0sR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUM1RSxDQUFDLENBQUM7SUFFRjs7Ozs7O09BTUc7SUFDSCxpQkFBaUIsR0FBRyxLQUFLLEVBQ3ZCLE9BQWUsRUFDZixNQUFjLEVBQ2QsS0FBYSxFQUN5QyxFQUFFO1FBQ3hELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsT0FBTyxFQUFFO1lBQ2hFLE1BQU0sRUFBRSxNQUFNO1lBQ2QsS0FBSyxFQUFFLEtBQUs7U0FDYixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7WUFDZCxNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7UUFDdkUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsS0FBSyxHQUFHLE1BQU0sR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUM1RSxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBlcmdvRXhwbG9yZXJDbGllbnRGYWN0b3J5IGZyb20gJ0Byb3Nlbi1jbGllbnRzL2VyZ28tZXhwbG9yZXInO1xuXG5pbXBvcnQgeyBCbG9ja0luZm8gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVyZ29Cb3ggfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFic3RyYWN0TmV0d29yayB9IGZyb20gJy4vQWJzdHJhY3ROZXR3b3JrJztcblxuZXhwb3J0IGNsYXNzIEV4cGxvcmVyTmV0d29yayBleHRlbmRzIEFic3RyYWN0TmV0d29yayB7XG4gIHByaXZhdGUgYXBpO1xuXG4gIGNvbnN0cnVjdG9yKHVybDogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFwaSA9IGVyZ29FeHBsb3JlckNsaWVudEZhY3RvcnkodXJsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm4gYmxvY2sgaW5mb3JtYXRpb24gb2Ygc3BlY2lmaWVkIHR4XG4gICAqIEBwYXJhbSB0eElkXG4gICAqL1xuICBnZXRUeEJsb2NrID0gYXN5bmMgKHR4SWQ6IHN0cmluZyk6IFByb21pc2U8QmxvY2tJbmZvPiA9PiB7XG4gICAgY29uc3QgdHggPSBhd2FpdCB0aGlzLmFwaS52MS5nZXRBcGlWMVRyYW5zYWN0aW9uc1AxKHR4SWQpO1xuICAgIHJldHVybiB7XG4gICAgICBoYXNoOiB0eC5ibG9ja0lkLFxuICAgICAgaGVpZ2h0OiB0eC5pbmNsdXNpb25IZWlnaHQsXG4gICAgfTtcbiAgfTtcblxuICAvKipcbiAgICogdXNlIGV4cGxvcmVyIGFwaSB0byByZXR1cm4gcmVsYXRlZCBib3hlcyBieSBzcGVjaWZpZWQgYWRkcmVzc1xuICAgKiBAcGFyYW0gYWRkcmVzc1xuICAgKiBAcGFyYW0gb2Zmc2V0XG4gICAqIEBwYXJhbSBsaW1pdFxuICAgKiBAcmV0dXJucyByZWxhdGVkIGJveGVzXG4gICAqL1xuICBnZXRCb3hlc0J5QWRkcmVzcyA9IGFzeW5jIChcbiAgICBhZGRyZXNzOiBzdHJpbmcsXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgbGltaXQ6IG51bWJlclxuICApOiBQcm9taXNlPHsgYm94ZXM6IEVyZ29Cb3hbXTsgaGFzTmV4dEJhdGNoOiBib29sZWFuIH0+ID0+IHtcbiAgICBjb25zdCBib3hlcyA9IGF3YWl0IHRoaXMuYXBpLnYxLmdldEFwaVYxQm94ZXNCeWFkZHJlc3NQMShhZGRyZXNzLCB7XG4gICAgICBvZmZzZXQ6IG9mZnNldCxcbiAgICAgIGxpbWl0OiBsaW1pdCxcbiAgICB9KTtcbiAgICBpZiAoIWJveGVzLml0ZW1zKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBsb3JlciBCb3hlc0J5QWRkcmVzcyBhcGkgZXhwZWN0ZWQgdG8gaGF2ZSBpdGVtcycpO1xuICAgIHJldHVybiB7IGJveGVzOiBib3hlcy5pdGVtcywgaGFzTmV4dEJhdGNoOiBib3hlcy50b3RhbCA+IG9mZnNldCArIGxpbWl0IH07XG4gIH07XG5cbiAgLyoqXG4gICAqIHVzZSBleHBsb3JlciBhcGkgdG8gcmV0dXJuIHJlbGF0ZWQgYm94ZXMgYnkgc3BlY2lmaWVkIHRva2VuIGlkXG4gICAqIEBwYXJhbSB0b2tlbklkXG4gICAqIEBwYXJhbSBvZmZzZXRcbiAgICogQHBhcmFtIGxpbWl0XG4gICAqIEByZXR1cm5zIHJlbGF0ZWQgYm94ZXNcbiAgICovXG4gIGdldEJveGVzQnlUb2tlbklkID0gYXN5bmMgKFxuICAgIHRva2VuSWQ6IHN0cmluZyxcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBsaW1pdDogbnVtYmVyXG4gICk6IFByb21pc2U8eyBib3hlczogRXJnb0JveFtdOyBoYXNOZXh0QmF0Y2g6IGJvb2xlYW4gfT4gPT4ge1xuICAgIGNvbnN0IGJveGVzID0gYXdhaXQgdGhpcy5hcGkudjEuZ2V0QXBpVjFCb3hlc0J5dG9rZW5pZFAxKHRva2VuSWQsIHtcbiAgICAgIG9mZnNldDogb2Zmc2V0LFxuICAgICAgbGltaXQ6IGxpbWl0LFxuICAgIH0pO1xuICAgIGlmICghYm94ZXMuaXRlbXMpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGxvcmVyIEJveGVzQnlUb2tlSWQgYXBpIGV4cGVjdGVkIHRvIGhhdmUgaXRlbXMnKTtcbiAgICByZXR1cm4geyBib3hlczogYm94ZXMuaXRlbXMsIGhhc05leHRCYXRjaDogYm94ZXMudG90YWwgPiBvZmZzZXQgKyBsaW1pdCB9O1xuICB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhwbG9yZXJOZXR3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vbmV0d29yay9FeHBsb3Jlck5ldHdvcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyx5QkFBeUIsTUFBTSw4QkFBOEIsQ0FBQztBQUlyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHcEQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZUFBZTtJQUMxQyxHQUFHLENBQUM7SUFFWixZQUFZLEdBQVc7UUFDckIsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsR0FBRyxHQUFHLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLEdBQUcsS0FBSyxFQUFFLElBQVksRUFBc0IsRUFBRTtRQUN0RCxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFELE9BQU87WUFDTCxJQUFJLEVBQUUsRUFBRSxDQUFDLE9BQU87WUFDaEIsTUFBTSxFQUFFLEVBQUUsQ0FBQyxlQUFlO1NBQzNCLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRjs7OztPQUlHO0lBQ0gsVUFBVSxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFvQixFQUFFO1FBQzFELE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxrQkFBa0I7WUFDdEMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUM7WUFDL0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNkLE9BQU87WUFDTCxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87WUFDcEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1lBQ2hCLGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYztZQUNsQyxlQUFlLEVBQUUsR0FBRyxDQUFDLGdCQUFnQjtZQUNyQyxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7WUFDdEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1lBQ2hCLGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYTtZQUNoQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7WUFDaEIsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLG1CQUFtQjtZQUM1QyxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU07WUFDbEIsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNO1lBQzlCLFlBQVksRUFBRSxTQUFTLEVBQUUsSUFBSTtTQUM5QixDQUFDO0lBQ0osQ0FBQyxDQUFDO0lBRUY7Ozs7OztPQU1HO0lBQ0gsaUJBQWlCLEdBQUcsS0FBSyxFQUN2QixPQUFlLEVBQ2YsTUFBYyxFQUNkLEtBQWEsRUFDeUMsRUFBRTtRQUN4RCxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sRUFBRTtZQUNoRSxNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sV0FBVyxHQUFtQixFQUFFLENBQUM7UUFDdkMsS0FBSyxNQUFNLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDOUIsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsT0FBTyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxHQUFHLEtBQUssRUFBRSxDQUFDO0lBQzVFLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILGlCQUFpQixHQUFHLEtBQUssRUFDdkIsT0FBZSxFQUNmLE1BQWMsRUFDZCxLQUFhLEVBQ3lDLEVBQUU7UUFDeEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUU7WUFDaEUsTUFBTSxFQUFFLE1BQU07WUFDZCxLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztRQUN2RSxNQUFNLFdBQVcsR0FBbUIsRUFBRSxDQUFDO1FBQ3ZDLEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzlCLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELE9BQU8sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsS0FBSyxHQUFHLE1BQU0sR0FBRyxLQUFLLEVBQUUsQ0FBQztJQUM1RSxDQUFDLENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBlcmdvRXhwbG9yZXJDbGllbnRGYWN0b3J5IGZyb20gJ0Byb3Nlbi1jbGllbnRzL2VyZ28tZXhwbG9yZXInO1xuXG5pbXBvcnQgeyBCbG9ja0luZm8gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVyZ29Cb3ggfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFic3RyYWN0TmV0d29yayB9IGZyb20gJy4vQWJzdHJhY3ROZXR3b3JrJztcbmltcG9ydCB7IFYxIH0gZnJvbSAnQHJvc2VuLWNsaWVudHMvZXJnby1leHBsb3Jlcic7XG5cbmV4cG9ydCBjbGFzcyBFeHBsb3Jlck5ldHdvcmsgZXh0ZW5kcyBBYnN0cmFjdE5ldHdvcmsge1xuICBwcml2YXRlIGFwaTtcblxuICBjb25zdHJ1Y3Rvcih1cmw6IHN0cmluZykge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hcGkgPSBlcmdvRXhwbG9yZXJDbGllbnRGYWN0b3J5KHVybCk7XG4gIH1cblxuICAvKipcbiAgICogcmV0dXJuIGJsb2NrIGluZm9ybWF0aW9uIG9mIHNwZWNpZmllZCB0eFxuICAgKiBAcGFyYW0gdHhJZFxuICAgKi9cbiAgZ2V0VHhCbG9jayA9IGFzeW5jICh0eElkOiBzdHJpbmcpOiBQcm9taXNlPEJsb2NrSW5mbz4gPT4ge1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdGhpcy5hcGkudjEuZ2V0QXBpVjFUcmFuc2FjdGlvbnNQMSh0eElkKTtcbiAgICByZXR1cm4ge1xuICAgICAgaGFzaDogdHguYmxvY2tJZCxcbiAgICAgIGhlaWdodDogdHguaW5jbHVzaW9uSGVpZ2h0LFxuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIGNvbnZlcnQgZXhwbG9yZXIgYXBpIGJveGVzIHRvIEVyZ29Cb3ggaW50ZXJmYWNlXG4gICAqIEBwYXJhbSBib3hcbiAgICogQHJldHVybnMgRXJnb0JveFxuICAgKi9cbiAgY29udmVydEJveCA9IGFzeW5jIChib3g6IFYxLk91dHB1dEluZm8pOiBQcm9taXNlPEVyZ29Cb3g+ID0+IHtcbiAgICBjb25zdCBzcGVuZEluZm8gPSBib3guc3BlbnRUcmFuc2FjdGlvbklkXG4gICAgICA/IGF3YWl0IHRoaXMuZ2V0VHhCbG9jayhib3guc3BlbnRUcmFuc2FjdGlvbklkKVxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJsb2NrSWQ6IGJveC5ibG9ja0lkLFxuICAgICAgYm94SWQ6IGJveC5ib3hJZCxcbiAgICAgIGNyZWF0aW9uSGVpZ2h0OiBib3guY3JlYXRpb25IZWlnaHQsXG4gICAgICBpbmNsdXNpb25IZWlnaHQ6IGJveC5zZXR0bGVtZW50SGVpZ2h0LFxuICAgICAgZXJnb1RyZWU6IGJveC5lcmdvVHJlZSxcbiAgICAgIGluZGV4OiBib3guaW5kZXgsXG4gICAgICB0cmFuc2FjdGlvbklkOiBib3gudHJhbnNhY3Rpb25JZCxcbiAgICAgIHZhbHVlOiBib3gudmFsdWUsXG4gICAgICBhZGRpdGlvbmFsUmVnaXN0ZXJzOiBib3guYWRkaXRpb25hbFJlZ2lzdGVycyxcbiAgICAgIGFzc2V0czogYm94LmFzc2V0cyxcbiAgICAgIHNwZW50SGVpZ2h0OiBzcGVuZEluZm8/LmhlaWdodCxcbiAgICAgIHNwZW50QmxvY2tJZDogc3BlbmRJbmZvPy5oYXNoLFxuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIHVzZSBleHBsb3JlciBhcGkgdG8gcmV0dXJuIHJlbGF0ZWQgYm94ZXMgYnkgc3BlY2lmaWVkIGFkZHJlc3NcbiAgICogQHBhcmFtIGFkZHJlc3NcbiAgICogQHBhcmFtIG9mZnNldFxuICAgKiBAcGFyYW0gbGltaXRcbiAgICogQHJldHVybnMgcmVsYXRlZCBib3hlc1xuICAgKi9cbiAgZ2V0Qm94ZXNCeUFkZHJlc3MgPSBhc3luYyAoXG4gICAgYWRkcmVzczogc3RyaW5nLFxuICAgIG9mZnNldDogbnVtYmVyLFxuICAgIGxpbWl0OiBudW1iZXJcbiAgKTogUHJvbWlzZTx7IGJveGVzOiBFcmdvQm94W107IGhhc05leHRCYXRjaDogYm9vbGVhbiB9PiA9PiB7XG4gICAgY29uc3QgYm94ZXMgPSBhd2FpdCB0aGlzLmFwaS52MS5nZXRBcGlWMUJveGVzQnlhZGRyZXNzUDEoYWRkcmVzcywge1xuICAgICAgb2Zmc2V0OiBvZmZzZXQsXG4gICAgICBsaW1pdDogbGltaXQsXG4gICAgfSk7XG4gICAgaWYgKCFib3hlcy5pdGVtcylcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwbG9yZXIgQm94ZXNCeUFkZHJlc3MgYXBpIGV4cGVjdGVkIHRvIGhhdmUgaXRlbXMnKTtcbiAgICBjb25zdCByZXN1bHRCb3hlczogQXJyYXk8RXJnb0JveD4gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGJveCBvZiBib3hlcy5pdGVtcykge1xuICAgICAgcmVzdWx0Qm94ZXMucHVzaChhd2FpdCB0aGlzLmNvbnZlcnRCb3goYm94KSk7XG4gICAgfVxuICAgIHJldHVybiB7IGJveGVzOiByZXN1bHRCb3hlcywgaGFzTmV4dEJhdGNoOiBib3hlcy50b3RhbCA+IG9mZnNldCArIGxpbWl0IH07XG4gIH07XG5cbiAgLyoqXG4gICAqIHVzZSBleHBsb3JlciBhcGkgdG8gcmV0dXJuIHJlbGF0ZWQgYm94ZXMgYnkgc3BlY2lmaWVkIHRva2VuIGlkXG4gICAqIEBwYXJhbSB0b2tlbklkXG4gICAqIEBwYXJhbSBvZmZzZXRcbiAgICogQHBhcmFtIGxpbWl0XG4gICAqIEByZXR1cm5zIHJlbGF0ZWQgYm94ZXNcbiAgICovXG4gIGdldEJveGVzQnlUb2tlbklkID0gYXN5bmMgKFxuICAgIHRva2VuSWQ6IHN0cmluZyxcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBsaW1pdDogbnVtYmVyXG4gICk6IFByb21pc2U8eyBib3hlczogRXJnb0JveFtdOyBoYXNOZXh0QmF0Y2g6IGJvb2xlYW4gfT4gPT4ge1xuICAgIGNvbnN0IGJveGVzID0gYXdhaXQgdGhpcy5hcGkudjEuZ2V0QXBpVjFCb3hlc0J5dG9rZW5pZFAxKHRva2VuSWQsIHtcbiAgICAgIG9mZnNldDogb2Zmc2V0LFxuICAgICAgbGltaXQ6IGxpbWl0LFxuICAgIH0pO1xuICAgIGlmICghYm94ZXMuaXRlbXMpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGxvcmVyIEJveGVzQnlUb2tlSWQgYXBpIGV4cGVjdGVkIHRvIGhhdmUgaXRlbXMnKTtcbiAgICBjb25zdCByZXN1bHRCb3hlczogQXJyYXk8RXJnb0JveD4gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGJveCBvZiBib3hlcy5pdGVtcykge1xuICAgICAgcmVzdWx0Qm94ZXMucHVzaChhd2FpdCB0aGlzLmNvbnZlcnRCb3goYm94KSk7XG4gICAgfVxuICAgIHJldHVybiB7IGJveGVzOiByZXN1bHRCb3hlcywgaGFzTmV4dEJhdGNoOiBib3hlcy50b3RhbCA+IG9mZnNldCArIGxpbWl0IH07XG4gIH07XG59XG4iXX0=

@@ -9,3 +9,3 @@ import { IndexedErgoBox } from '@rosen-clients/ergo-node';

/**
* covert node api boxes to ErgoBox interface
* convert node api boxes to ErgoBox interface
* @param box

@@ -12,0 +12,0 @@ * @returns ErgoBox

@@ -10,3 +10,3 @@ import ergoNodeClientFactory from '@rosen-clients/ergo-node';

/**
* covert node api boxes to ErgoBox interface
* convert node api boxes to ErgoBox interface
* @param box

@@ -17,2 +17,5 @@ * @returns ErgoBox

const tx = await this.getTxBlock(box.transactionId);
const spendInfo = box.spentTransactionId
? await this.getTxBlock(box.spentTransactionId)
: undefined;
return {

@@ -24,2 +27,3 @@ transactionId: box.transactionId || '',

creationHeight: box.creationHeight || 0,
inclusionHeight: tx.height,
assets: box.assets || [],

@@ -29,3 +33,4 @@ additionalRegisters: box.additionalRegisters,

blockId: tx.hash,
spentTransactionId: box.spentTransactionId,
spentBlockId: spendInfo?.hash ?? undefined,
spentHeight: spendInfo?.height ?? undefined,
};

@@ -79,2 +84,2 @@ };

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZU5ldHdvcmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZXJnby9uZXR3b3JrL05vZGVOZXR3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8scUJBRU4sTUFBTSwwQkFBMEIsQ0FBQztBQUlsQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsTUFBTSxPQUFPLFdBQVksU0FBUSxlQUFlO0lBQ3RDLEdBQUcsQ0FBQztJQUVaLFlBQVksR0FBVztRQUNyQixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxHQUFHLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxnQkFBZ0IsR0FBRyxLQUFLLEVBQUUsR0FBbUIsRUFBb0IsRUFBRTtRQUNqRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWMsQ0FBQyxDQUFDO1FBQ3JELE9BQU87WUFDTCxhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWEsSUFBSSxFQUFFO1lBQ3RDLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUM7WUFDckIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUN0QixRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFO1lBQzVCLGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYyxJQUFJLENBQUM7WUFDdkMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRTtZQUN4QixtQkFBbUIsRUFBRSxHQUFHLENBQUMsbUJBQW1CO1lBQzVDLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdEIsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJO1lBQ2hCLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxrQkFBa0I7U0FDM0MsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILFVBQVUsR0FBRyxLQUFLLEVBQUUsSUFBWSxFQUFzQixFQUFFO1FBQ3RELE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsT0FBTztZQUNMLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTztZQUNoQixNQUFNLEVBQUUsRUFBRSxDQUFDLGVBQWU7U0FDM0IsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILGlCQUFpQixHQUFHLEtBQUssRUFDdkIsT0FBZSxFQUNmLE1BQWMsRUFDZCxLQUFhLEVBQ3lDLEVBQUU7UUFDeEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRTtZQUN0RCxNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sU0FBUyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDakMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDakUsQ0FBQztRQUNGLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNwRSxDQUFDLENBQUM7SUFFRjs7Ozs7O09BTUc7SUFDSCxpQkFBaUIsR0FBRyxLQUFLLEVBQ3ZCLE9BQWUsRUFDZixNQUFjLEVBQ2QsS0FBYSxFQUN5QyxFQUFFO1FBQ3hELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7WUFDdEQsTUFBTSxFQUFFLE1BQU07WUFDZCxLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztRQUN6RSxNQUFNLFNBQVMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2pDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ2pFLENBQUM7UUFDRixPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDcEUsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXJnb05vZGVDbGllbnRGYWN0b3J5LCB7XG4gIEluZGV4ZWRFcmdvQm94LFxufSBmcm9tICdAcm9zZW4tY2xpZW50cy9lcmdvLW5vZGUnO1xuXG5pbXBvcnQgeyBCbG9ja0luZm8gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVyZ29Cb3ggfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFic3RyYWN0TmV0d29yayB9IGZyb20gJy4vQWJzdHJhY3ROZXR3b3JrJztcblxuZXhwb3J0IGNsYXNzIE5vZGVOZXR3b3JrIGV4dGVuZHMgQWJzdHJhY3ROZXR3b3JrIHtcbiAgcHJpdmF0ZSBhcGk7XG5cbiAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYXBpID0gZXJnb05vZGVDbGllbnRGYWN0b3J5KHVybCk7XG4gIH1cblxuICAvKipcbiAgICogY292ZXJ0IG5vZGUgYXBpIGJveGVzIHRvIEVyZ29Cb3ggaW50ZXJmYWNlXG4gICAqIEBwYXJhbSBib3hcbiAgICogQHJldHVybnMgRXJnb0JveFxuICAgKi9cbiAgY29udmVydFRvRXJnb0JveCA9IGFzeW5jIChib3g6IEluZGV4ZWRFcmdvQm94KTogUHJvbWlzZTxFcmdvQm94PiA9PiB7XG4gICAgY29uc3QgdHggPSBhd2FpdCB0aGlzLmdldFR4QmxvY2soYm94LnRyYW5zYWN0aW9uSWQhKTtcbiAgICByZXR1cm4ge1xuICAgICAgdHJhbnNhY3Rpb25JZDogYm94LnRyYW5zYWN0aW9uSWQgfHwgJycsXG4gICAgICBpbmRleDogYm94LmluZGV4IHx8IDAsXG4gICAgICB2YWx1ZTogYm94LnZhbHVlIHx8IDBuLFxuICAgICAgZXJnb1RyZWU6IGJveC5lcmdvVHJlZSB8fCAnJyxcbiAgICAgIGNyZWF0aW9uSGVpZ2h0OiBib3guY3JlYXRpb25IZWlnaHQgfHwgMCxcbiAgICAgIGFzc2V0czogYm94LmFzc2V0cyB8fCBbXSxcbiAgICAgIGFkZGl0aW9uYWxSZWdpc3RlcnM6IGJveC5hZGRpdGlvbmFsUmVnaXN0ZXJzLFxuICAgICAgYm94SWQ6IGJveC5ib3hJZCB8fCAnJyxcbiAgICAgIGJsb2NrSWQ6IHR4Lmhhc2gsXG4gICAgICBzcGVudFRyYW5zYWN0aW9uSWQ6IGJveC5zcGVudFRyYW5zYWN0aW9uSWQsXG4gICAgfTtcbiAgfTtcblxuICAvKipcbiAgICogcmV0dXJuIGJsb2NrIGluZm9ybWF0aW9uIG9mIHNwZWNpZmllZCB0eFxuICAgKiBAcGFyYW0gdHhJZFxuICAgKi9cbiAgZ2V0VHhCbG9jayA9IGFzeW5jICh0eElkOiBzdHJpbmcpOiBQcm9taXNlPEJsb2NrSW5mbz4gPT4ge1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdGhpcy5hcGkuZ2V0VHhCeUlkKHR4SWQpO1xuICAgIHJldHVybiB7XG4gICAgICBoYXNoOiB0eC5ibG9ja0lkLFxuICAgICAgaGVpZ2h0OiB0eC5pbmNsdXNpb25IZWlnaHQsXG4gICAgfTtcbiAgfTtcblxuICAvKipcbiAgICogdXNlIG5vZGUgYXBpIHRvIHJldHVybiByZWxhdGVkIGJveGVzIGJ5IHNwZWNpZmllZCBhZGRyZXNzXG4gICAqIEBwYXJhbSBhZGRyZXNzXG4gICAqIEBwYXJhbSBvZmZzZXRcbiAgICogQHBhcmFtIGxpbWl0XG4gICAqIEByZXR1cm5zIHJlbGF0ZWQgYm94ZXNcbiAgICovXG4gIGdldEJveGVzQnlBZGRyZXNzID0gYXN5bmMgKFxuICAgIGFkZHJlc3M6IHN0cmluZyxcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBsaW1pdDogbnVtYmVyXG4gICk6IFByb21pc2U8eyBib3hlczogRXJnb0JveFtdOyBoYXNOZXh0QmF0Y2g6IGJvb2xlYW4gfT4gPT4ge1xuICAgIGNvbnN0IGJveGVzID0gYXdhaXQgdGhpcy5hcGkuZ2V0Qm94ZXNCeUFkZHJlc3MoYWRkcmVzcywge1xuICAgICAgb2Zmc2V0OiBvZmZzZXQsXG4gICAgICBsaW1pdDogbGltaXQsXG4gICAgfSk7XG4gICAgaWYgKCFib3hlcy5pdGVtcylcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXJnbyBub2RlIEJveGVzQnlBZGRyZXNzIGFwaSBleHBlY3RlZCB0byBoYXZlIGl0ZW1zJyk7XG4gICAgY29uc3QgZXJnb0JveGVzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBib3hlcy5pdGVtcy5tYXAoYXN5bmMgKGJveCkgPT4gYXdhaXQgdGhpcy5jb252ZXJ0VG9FcmdvQm94KGJveCkpXG4gICAgKTtcbiAgICByZXR1cm4geyBib3hlczogZXJnb0JveGVzLCBoYXNOZXh0QmF0Y2g6IGJveGVzLml0ZW1zLmxlbmd0aCA+IDAgfTtcbiAgfTtcblxuICAvKipcbiAgICogdXNlIG5vZGUgYXBpIHRvIHJldHVybiByZWxhdGVkIGJveGVzIGJ5IHNwZWNpZmllZCB0b2tlbiBpZFxuICAgKiBAcGFyYW0gdG9rZW5JZFxuICAgKiBAcGFyYW0gb2Zmc2V0XG4gICAqIEBwYXJhbSBsaW1pdFxuICAgKiBAcmV0dXJucyByZWxhdGVkIGJveGVzXG4gICAqL1xuICBnZXRCb3hlc0J5VG9rZW5JZCA9IGFzeW5jIChcbiAgICB0b2tlbklkOiBzdHJpbmcsXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgbGltaXQ6IG51bWJlclxuICApOiBQcm9taXNlPHsgYm94ZXM6IEVyZ29Cb3hbXTsgaGFzTmV4dEJhdGNoOiBib29sZWFuIH0+ID0+IHtcbiAgICBjb25zdCBib3hlcyA9IGF3YWl0IHRoaXMuYXBpLmdldEJveGVzQnlUb2tlbklkKHRva2VuSWQsIHtcbiAgICAgIG9mZnNldDogb2Zmc2V0LFxuICAgICAgbGltaXQ6IGxpbWl0LFxuICAgIH0pO1xuICAgIGlmICghYm94ZXMuaXRlbXMpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VyZ28gbm9kZSBCb3hlc0J5VG9rZW5JZCBhcGkgZXhwZWN0ZWQgdG8gaGF2ZSBpdGVtcycpO1xuICAgIGNvbnN0IGVyZ29Cb3hlcyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgYm94ZXMuaXRlbXMubWFwKGFzeW5jIChib3gpID0+IGF3YWl0IHRoaXMuY29udmVydFRvRXJnb0JveChib3gpKVxuICAgICk7XG4gICAgcmV0dXJuIHsgYm94ZXM6IGVyZ29Cb3hlcywgaGFzTmV4dEJhdGNoOiBib3hlcy5pdGVtcy5sZW5ndGggPiAwIH07XG4gIH07XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm9kZU5ldHdvcmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZXJnby9uZXR3b3JrL05vZGVOZXR3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8scUJBRU4sTUFBTSwwQkFBMEIsQ0FBQztBQUlsQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsTUFBTSxPQUFPLFdBQVksU0FBUSxlQUFlO0lBQ3RDLEdBQUcsQ0FBQztJQUVaLFlBQVksR0FBVztRQUNyQixLQUFLLEVBQUUsQ0FBQztRQUNSLElBQUksQ0FBQyxHQUFHLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxnQkFBZ0IsR0FBRyxLQUFLLEVBQUUsR0FBbUIsRUFBb0IsRUFBRTtRQUNqRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGFBQWMsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxrQkFBa0I7WUFDdEMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUM7WUFDL0MsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNkLE9BQU87WUFDTCxhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWEsSUFBSSxFQUFFO1lBQ3RDLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUM7WUFDckIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUN0QixRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFO1lBQzVCLGNBQWMsRUFBRSxHQUFHLENBQUMsY0FBYyxJQUFJLENBQUM7WUFDdkMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxNQUFNO1lBQzFCLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUU7WUFDeEIsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLG1CQUFtQjtZQUM1QyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3RCLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSTtZQUNoQixZQUFZLEVBQUUsU0FBUyxFQUFFLElBQUksSUFBSSxTQUFTO1lBQzFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxJQUFJLFNBQVM7U0FDNUMsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOzs7T0FHRztJQUNILFVBQVUsR0FBRyxLQUFLLEVBQUUsSUFBWSxFQUFzQixFQUFFO1FBQ3RELE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUMsT0FBTztZQUNMLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTztZQUNoQixNQUFNLEVBQUUsRUFBRSxDQUFDLGVBQWU7U0FDM0IsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILGlCQUFpQixHQUFHLEtBQUssRUFDdkIsT0FBZSxFQUNmLE1BQWMsRUFDZCxLQUFhLEVBQ3lDLEVBQUU7UUFDeEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRTtZQUN0RCxNQUFNLEVBQUUsTUFBTTtZQUNkLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLO1lBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sU0FBUyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDakMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDakUsQ0FBQztRQUNGLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNwRSxDQUFDLENBQUM7SUFFRjs7Ozs7O09BTUc7SUFDSCxpQkFBaUIsR0FBRyxLQUFLLEVBQ3ZCLE9BQWUsRUFDZixNQUFjLEVBQ2QsS0FBYSxFQUN5QyxFQUFFO1FBQ3hELE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7WUFDdEQsTUFBTSxFQUFFLE1BQU07WUFDZCxLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMscURBQXFELENBQUMsQ0FBQztRQUN6RSxNQUFNLFNBQVMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2pDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ2pFLENBQUM7UUFDRixPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDcEUsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZXJnb05vZGVDbGllbnRGYWN0b3J5LCB7XG4gIEluZGV4ZWRFcmdvQm94LFxufSBmcm9tICdAcm9zZW4tY2xpZW50cy9lcmdvLW5vZGUnO1xuXG5pbXBvcnQgeyBCbG9ja0luZm8gfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVyZ29Cb3ggfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFic3RyYWN0TmV0d29yayB9IGZyb20gJy4vQWJzdHJhY3ROZXR3b3JrJztcblxuZXhwb3J0IGNsYXNzIE5vZGVOZXR3b3JrIGV4dGVuZHMgQWJzdHJhY3ROZXR3b3JrIHtcbiAgcHJpdmF0ZSBhcGk7XG5cbiAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYXBpID0gZXJnb05vZGVDbGllbnRGYWN0b3J5KHVybCk7XG4gIH1cblxuICAvKipcbiAgICogY29udmVydCBub2RlIGFwaSBib3hlcyB0byBFcmdvQm94IGludGVyZmFjZVxuICAgKiBAcGFyYW0gYm94XG4gICAqIEByZXR1cm5zIEVyZ29Cb3hcbiAgICovXG4gIGNvbnZlcnRUb0VyZ29Cb3ggPSBhc3luYyAoYm94OiBJbmRleGVkRXJnb0JveCk6IFByb21pc2U8RXJnb0JveD4gPT4ge1xuICAgIGNvbnN0IHR4ID0gYXdhaXQgdGhpcy5nZXRUeEJsb2NrKGJveC50cmFuc2FjdGlvbklkISk7XG4gICAgY29uc3Qgc3BlbmRJbmZvID0gYm94LnNwZW50VHJhbnNhY3Rpb25JZFxuICAgICAgPyBhd2FpdCB0aGlzLmdldFR4QmxvY2soYm94LnNwZW50VHJhbnNhY3Rpb25JZClcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIHJldHVybiB7XG4gICAgICB0cmFuc2FjdGlvbklkOiBib3gudHJhbnNhY3Rpb25JZCB8fCAnJyxcbiAgICAgIGluZGV4OiBib3guaW5kZXggfHwgMCxcbiAgICAgIHZhbHVlOiBib3gudmFsdWUgfHwgMG4sXG4gICAgICBlcmdvVHJlZTogYm94LmVyZ29UcmVlIHx8ICcnLFxuICAgICAgY3JlYXRpb25IZWlnaHQ6IGJveC5jcmVhdGlvbkhlaWdodCB8fCAwLFxuICAgICAgaW5jbHVzaW9uSGVpZ2h0OiB0eC5oZWlnaHQsXG4gICAgICBhc3NldHM6IGJveC5hc3NldHMgfHwgW10sXG4gICAgICBhZGRpdGlvbmFsUmVnaXN0ZXJzOiBib3guYWRkaXRpb25hbFJlZ2lzdGVycyxcbiAgICAgIGJveElkOiBib3guYm94SWQgfHwgJycsXG4gICAgICBibG9ja0lkOiB0eC5oYXNoLFxuICAgICAgc3BlbnRCbG9ja0lkOiBzcGVuZEluZm8/Lmhhc2ggPz8gdW5kZWZpbmVkLFxuICAgICAgc3BlbnRIZWlnaHQ6IHNwZW5kSW5mbz8uaGVpZ2h0ID8/IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiByZXR1cm4gYmxvY2sgaW5mb3JtYXRpb24gb2Ygc3BlY2lmaWVkIHR4XG4gICAqIEBwYXJhbSB0eElkXG4gICAqL1xuICBnZXRUeEJsb2NrID0gYXN5bmMgKHR4SWQ6IHN0cmluZyk6IFByb21pc2U8QmxvY2tJbmZvPiA9PiB7XG4gICAgY29uc3QgdHggPSBhd2FpdCB0aGlzLmFwaS5nZXRUeEJ5SWQodHhJZCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhhc2g6IHR4LmJsb2NrSWQsXG4gICAgICBoZWlnaHQ6IHR4LmluY2x1c2lvbkhlaWdodCxcbiAgICB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiB1c2Ugbm9kZSBhcGkgdG8gcmV0dXJuIHJlbGF0ZWQgYm94ZXMgYnkgc3BlY2lmaWVkIGFkZHJlc3NcbiAgICogQHBhcmFtIGFkZHJlc3NcbiAgICogQHBhcmFtIG9mZnNldFxuICAgKiBAcGFyYW0gbGltaXRcbiAgICogQHJldHVybnMgcmVsYXRlZCBib3hlc1xuICAgKi9cbiAgZ2V0Qm94ZXNCeUFkZHJlc3MgPSBhc3luYyAoXG4gICAgYWRkcmVzczogc3RyaW5nLFxuICAgIG9mZnNldDogbnVtYmVyLFxuICAgIGxpbWl0OiBudW1iZXJcbiAgKTogUHJvbWlzZTx7IGJveGVzOiBFcmdvQm94W107IGhhc05leHRCYXRjaDogYm9vbGVhbiB9PiA9PiB7XG4gICAgY29uc3QgYm94ZXMgPSBhd2FpdCB0aGlzLmFwaS5nZXRCb3hlc0J5QWRkcmVzcyhhZGRyZXNzLCB7XG4gICAgICBvZmZzZXQ6IG9mZnNldCxcbiAgICAgIGxpbWl0OiBsaW1pdCxcbiAgICB9KTtcbiAgICBpZiAoIWJveGVzLml0ZW1zKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFcmdvIG5vZGUgQm94ZXNCeUFkZHJlc3MgYXBpIGV4cGVjdGVkIHRvIGhhdmUgaXRlbXMnKTtcbiAgICBjb25zdCBlcmdvQm94ZXMgPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGJveGVzLml0ZW1zLm1hcChhc3luYyAoYm94KSA9PiBhd2FpdCB0aGlzLmNvbnZlcnRUb0VyZ29Cb3goYm94KSlcbiAgICApO1xuICAgIHJldHVybiB7IGJveGVzOiBlcmdvQm94ZXMsIGhhc05leHRCYXRjaDogYm94ZXMuaXRlbXMubGVuZ3RoID4gMCB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiB1c2Ugbm9kZSBhcGkgdG8gcmV0dXJuIHJlbGF0ZWQgYm94ZXMgYnkgc3BlY2lmaWVkIHRva2VuIGlkXG4gICAqIEBwYXJhbSB0b2tlbklkXG4gICAqIEBwYXJhbSBvZmZzZXRcbiAgICogQHBhcmFtIGxpbWl0XG4gICAqIEByZXR1cm5zIHJlbGF0ZWQgYm94ZXNcbiAgICovXG4gIGdldEJveGVzQnlUb2tlbklkID0gYXN5bmMgKFxuICAgIHRva2VuSWQ6IHN0cmluZyxcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBsaW1pdDogbnVtYmVyXG4gICk6IFByb21pc2U8eyBib3hlczogRXJnb0JveFtdOyBoYXNOZXh0QmF0Y2g6IGJvb2xlYW4gfT4gPT4ge1xuICAgIGNvbnN0IGJveGVzID0gYXdhaXQgdGhpcy5hcGkuZ2V0Qm94ZXNCeVRva2VuSWQodG9rZW5JZCwge1xuICAgICAgb2Zmc2V0OiBvZmZzZXQsXG4gICAgICBsaW1pdDogbGltaXQsXG4gICAgfSk7XG4gICAgaWYgKCFib3hlcy5pdGVtcylcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXJnbyBub2RlIEJveGVzQnlUb2tlbklkIGFwaSBleHBlY3RlZCB0byBoYXZlIGl0ZW1zJyk7XG4gICAgY29uc3QgZXJnb0JveGVzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBib3hlcy5pdGVtcy5tYXAoYXN5bmMgKGJveCkgPT4gYXdhaXQgdGhpcy5jb252ZXJ0VG9FcmdvQm94KGJveCkpXG4gICAgKTtcbiAgICByZXR1cm4geyBib3hlczogZXJnb0JveGVzLCBoYXNOZXh0QmF0Y2g6IGJveGVzLml0ZW1zLmxlbmd0aCA+IDAgfTtcbiAgfTtcbn1cbiJdfQ==

@@ -61,24 +61,19 @@ import { AbstractLogger } from '@rosen-bridge/abstract-logger';

const filteredBoxes = apiOutput.boxes.filter(
(box: ErgoBox) => box.creationHeight <= initialHeight && this.hasData(box)
(box: ErgoBox) =>
box.inclusionHeight <= initialHeight && this.hasData(box)
);
for (const box of filteredBoxes) {
const data = this.extractBoxData(box, box.blockId, box.creationHeight);
const data = this.extractBoxData(box, box.blockId, box.inclusionHeight);
if (!data) continue;
let spendBlock, spendHeight;
if (box.spentTransactionId) {
const block = await this.getTxBlock(box.spentTransactionId);
if (block.height <= initialHeight) {
this.logger.debug(
`Box with id ${box.boxId} spent at block ${JsonBigInt.stringify(
block
)} bellow the initial height`
);
spendBlock = block.hash;
spendHeight = block.height;
}
}
const spent = box.spentHeight && box.spentHeight <= initialHeight;
if (spent)
this.logger.debug(
`Box with id ${box.boxId} spent at block ${JsonBigInt.stringify(
box.blockId
)} bellow the initial height`
);
const extractedData = {
...data,
spendBlock,
spendHeight,
spendBlock: spent ? box.spentBlockId : undefined,
spendHeight: spent ? box.spentHeight : undefined,
} as ExtractedData;

@@ -85,0 +80,0 @@ this.logger.debug(

@@ -41,3 +41,5 @@ export enum ErgoNetworkType {

blockId: string;
spentTransactionId?: string;
inclusionHeight: number;
spentBlockId?: string;
spentHeight?: number;
}

@@ -44,0 +46,0 @@

@@ -6,2 +6,3 @@ import ergoExplorerClientFactory from '@rosen-clients/ergo-explorer';

import { AbstractNetwork } from './AbstractNetwork';
import { V1 } from '@rosen-clients/ergo-explorer';

@@ -29,2 +30,27 @@ export class ExplorerNetwork extends AbstractNetwork {

/**
* convert explorer api boxes to ErgoBox interface
* @param box
* @returns ErgoBox
*/
convertBox = async (box: V1.OutputInfo): Promise<ErgoBox> => {
const spendInfo = box.spentTransactionId
? await this.getTxBlock(box.spentTransactionId)
: undefined;
return {
blockId: box.blockId,
boxId: box.boxId,
creationHeight: box.creationHeight,
inclusionHeight: box.settlementHeight,
ergoTree: box.ergoTree,
index: box.index,
transactionId: box.transactionId,
value: box.value,
additionalRegisters: box.additionalRegisters,
assets: box.assets,
spentHeight: spendInfo?.height,
spentBlockId: spendInfo?.hash,
};
};
/**
* use explorer api to return related boxes by specified address

@@ -47,3 +73,7 @@ * @param address

throw new Error('Explorer BoxesByAddress api expected to have items');
return { boxes: boxes.items, hasNextBatch: boxes.total > offset + limit };
const resultBoxes: Array<ErgoBox> = [];
for (const box of boxes.items) {
resultBoxes.push(await this.convertBox(box));
}
return { boxes: resultBoxes, hasNextBatch: boxes.total > offset + limit };
};

@@ -69,4 +99,8 @@

throw new Error('Explorer BoxesByTokeId api expected to have items');
return { boxes: boxes.items, hasNextBatch: boxes.total > offset + limit };
const resultBoxes: Array<ErgoBox> = [];
for (const box of boxes.items) {
resultBoxes.push(await this.convertBox(box));
}
return { boxes: resultBoxes, hasNextBatch: boxes.total > offset + limit };
};
}

@@ -18,3 +18,3 @@ import ergoNodeClientFactory, {

/**
* covert node api boxes to ErgoBox interface
* convert node api boxes to ErgoBox interface
* @param box

@@ -25,2 +25,5 @@ * @returns ErgoBox

const tx = await this.getTxBlock(box.transactionId!);
const spendInfo = box.spentTransactionId
? await this.getTxBlock(box.spentTransactionId)
: undefined;
return {

@@ -32,2 +35,3 @@ transactionId: box.transactionId || '',

creationHeight: box.creationHeight || 0,
inclusionHeight: tx.height,
assets: box.assets || [],

@@ -37,3 +41,4 @@ additionalRegisters: box.additionalRegisters,

blockId: tx.hash,
spentTransactionId: box.spentTransactionId,
spentBlockId: spendInfo?.hash ?? undefined,
spentHeight: spendInfo?.height ?? undefined,
};

@@ -40,0 +45,0 @@ };

{
"name": "@rosen-bridge/abstract-extractor",
"version": "0.1.2-7aba94c9",
"version": "0.1.2",
"description": "Rosen Bridge extractor interfaces to work with scanner",

@@ -5,0 +5,0 @@ "repository": "",

@@ -16,7 +16,6 @@ import { describe, it, expect, vitest } from 'vitest';

* - mock `hasData` to return true for an unspent box in the init block
* - spy `extractData` and `getTxBlock`
* - spy `extractData`
* - run test (call `fetchDataWithOffsetLimit`)
* @expected
* - to call `extractData` with unspent box information
* - not to call `getTxBlock` since its unspent
* - return one extracted element (the unspent box) and api total

@@ -39,3 +38,3 @@ */

unspentBox.blockId,
unspentBox.creationHeight
unspentBox.inclusionHeight
);

@@ -57,7 +56,6 @@ expect(txBlockSpy).not.toHaveBeenCalled();

* - mock `hasData` to return true for all boxes
* - spy `extractData` and `getTxBlock`
* - spy `extractData`
* - run test (call `fetchDataWithOffsetLimit`)
* @expected
* - to call `extractData` with spent box information
* - to call `getTxBlock` since box is spent
* - return one extracted element created bellow the initial block

@@ -71,13 +69,8 @@ */

extractor.extractBoxData = extractSpy;
const txBlockSpy = vitest
.fn()
.mockResolvedValue({ id: 'hash', height: 1252690 });
extractor.getTxBlock = txBlockSpy;
const data = await extractor.fetchDataWithOffsetLimit(1252680, 0, 2);
const data = await extractor.fetchDataWithOffsetLimit(1252678, 0, 2);
expect(extractSpy).toHaveBeenCalledWith(
spentBox,
spentBox.blockId,
spentBox.creationHeight
spentBox.inclusionHeight
);
expect(txBlockSpy).toHaveBeenCalledWith(spentBox.spentTransactionId);
expect(data).toEqual({

@@ -97,7 +90,6 @@ extractedBoxes: [

* - mock `hasData` to return true for an spent box created below the init block
* - spy `extractData` and `getTxBlock`
* - spy `extractData`
* - run test (call `fetchDataWithOffsetLimit`)
* @expected
* - to call `extractData` with spent box information
* - to call `getTxBlock` since box is spent
* - return one extracted element with spending information

@@ -114,6 +106,2 @@ */

extractor.extractBoxData = extractSpy;
const txBlockSpy = vitest
.fn()
.mockResolvedValue({ hash: 'hash', height: 1252680 });
extractor.getTxBlock = txBlockSpy;
const data = await extractor.fetchDataWithOffsetLimit(1252681, 0, 2);

@@ -123,8 +111,12 @@ expect(extractSpy).toHaveBeenCalledWith(

spentBox.blockId,
spentBox.creationHeight
spentBox.inclusionHeight
);
expect(txBlockSpy).toHaveBeenCalledWith(spentBox.spentTransactionId);
expect(data).toEqual({
extractedBoxes: [
{ ...extractedData, spendBlock: 'hash', spendHeight: 1252680 },
{
...extractedData,
spendBlock:
'9239ebca7b3b10701895e491a2213da4e07a37abc413d05434a5fab04993a19d',
spendHeight: 1252680,
},
],

@@ -141,7 +133,6 @@ hasNextBatch: true,

* - mock `hasData` to return true for an spent box created below the init block
* - spy `extractData` and `getTxBlock`
* - spy `extractData`
* - run test (call `fetchDataWithOffsetLimit`)
* @expected
* - to call `extractData` with spent box information
* - to call `getTxBlock` since box is spent
* - return one extracted element without spending information

@@ -158,13 +149,8 @@ */

extractor.extractBoxData = extractSpy;
const txBlockSpy = vitest
.fn()
.mockResolvedValue({ hash: 'hash', height: 1252690 });
extractor.getTxBlock = txBlockSpy;
const data = await extractor.fetchDataWithOffsetLimit(1252681, 0, 2);
const data = await extractor.fetchDataWithOffsetLimit(1252678, 0, 2);
expect(extractSpy).toHaveBeenCalledWith(
spentBox,
spentBox.blockId,
spentBox.creationHeight
spentBox.inclusionHeight
);
expect(txBlockSpy).toHaveBeenCalledWith(spentBox.spentTransactionId);
expect(data).toEqual({

@@ -171,0 +157,0 @@ extractedBoxes: [

@@ -10,2 +10,3 @@ export const ergoBoxes = [

creationHeight: 1252681,
inclusionHeight: 1252681,
ergoTree:

@@ -25,3 +26,2 @@ '0008cd03e5f5f63b27f9cdc47a9a8b799a26e5ee66a1e2a5d41d64640df3e64f4d050c18',

additionalRegisters: {},
spentTransactionId: undefined,
},

@@ -36,2 +36,3 @@ {

creationHeight: 1252677,
inclusionHeight: 1252677,
ergoTree:

@@ -51,2 +52,5 @@ '0008cd03e5f5f63b27f9cdc47a9a8b799a26e5ee66a1e2a5d41d64640df3e64f4d050c18',

additionalRegisters: {},
spentHeight: 1252680,
spentBlockId:
'9239ebca7b3b10701895e491a2213da4e07a37abc413d05434a5fab04993a19d',
spentTransactionId:

@@ -53,0 +57,0 @@ 'b08fa920a6907d0e76eb0ad754439f1a26fa112b39f4de489620e4e6241930b7',

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc