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

@tact-lang/opcode

Package Overview
Dependencies
Maintainers
3
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tact-lang/opcode - npm Package Compare versions

Comparing version 0.0.4 to 0.0.5

5

CHANGELOG.md

@@ -8,2 +8,7 @@ # Changelog

## [0.0.5] - 2023-03-24
## Changed
- Change printer interface and include more lines in opcode related printer
## [0.0.4] - 2023-03-24

@@ -10,0 +15,0 @@

25

dist/decompiler/decompileAll.js

@@ -5,2 +5,3 @@ "use strict";

const ton_core_1 = require("ton-core");
const opcodeToString_1 = require("../codepage/opcodeToString");
const Writer_1 = require("../utils/Writer");

@@ -53,3 +54,3 @@ const decompiler_1 = require("./decompiler");

});
extracted.set(name, { ref: true, rendered: w.end() });
extracted.set(name, { ref: true, rendered: w.end(), src: cell });
return name;

@@ -71,3 +72,3 @@ }

});
extracted.set(name, { ref: false, rendered: w.end() });
extracted.set(name, { ref: false, rendered: w.end(), src: value });
}

@@ -81,3 +82,5 @@ // Render methods

for (let [key, value] of extracted) {
writer.append(printer(`${key} ${value.ref ? 'PROCREF' : 'PROC'}:<{`, writer.indent));
let hash = value.src.hash().toString('hex');
let opstr = `${key} ${value.ref ? 'PROCREF' : 'PROC'}:<{`;
writer.append(printer({ op: opstr, offset: 0, length: 0, hash }, writer.indent));
writer.inIndent(() => {

@@ -88,3 +91,4 @@ value.rendered.split('\n').forEach(line => {

});
writer.append(printer(`}>`, writer.indent));
opstr = `}>`;
writer.append(printer({ op: opstr, offset: 0, length: 0, hash }, writer.indent));
}

@@ -100,3 +104,4 @@ });

let id = args.callRefExtractor(op.op.args[0]);
writer.append(printer(`${id} INLINECALLDICT`, writer.indent));
let opstr = `${id} INLINECALLDICT`;
writer.append(printer({ op: opstr, offset: op.offset, length: op.length, hash }, writer.indent));
continue;

@@ -112,3 +117,4 @@ }

let c = op.op.args[0];
writer.append(printer('<{', writer.indent));
let opstr = '<{';
writer.append(printer({ op: opstr, offset: op.offset, length: op.length, hash }, writer.indent));
writer.inIndent(() => {

@@ -123,3 +129,4 @@ decompileCell({

});
writer.append(printer('}> ' + op.op.code, writer.indent));
opstr = '}> ' + op.op.code;
writer.append(printer({ op: opstr, offset: op.offset, length: op.length, hash }, writer.indent));
continue;

@@ -132,5 +139,5 @@ }

}
let op2 = op.op; // For type checking
// All remaining opcodes
writer.append(printer({ op: op2, offset: op.offset, length: op.length, hash }, writer.indent));
let opstr = (0, opcodeToString_1.opcodeToString)(op.op);
writer.append(printer({ op: opstr, offset: op.offset, length: op.length, hash }, writer.indent));
}

@@ -137,0 +144,0 @@ }

@@ -1,4 +0,3 @@

import { OpCode } from "../codepage/opcodes.gen";
export type Printer = (src: string | {
op: OpCode;
op: string;
hash: string;

@@ -5,0 +4,0 @@ offset: number;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createTextPrinter = void 0;
const opcodeToString_1 = require("../codepage/opcodeToString");
function createTextPrinter(indentWidth) {

@@ -11,3 +10,3 @@ return (src, indent) => {

else {
return ' '.repeat(indentWidth * indent) + (0, opcodeToString_1.opcodeToString)(src.op);
return ' '.repeat(indentWidth * indent) + src.op;
}

@@ -14,0 +13,0 @@ };

{
"name": "@tact-lang/opcode",
"version": "0.0.4",
"version": "0.0.5",
"main": "dist/index.js",

@@ -5,0 +5,0 @@ "repository": "https://github.com/tact-lang/ton-opcode.git",

import { Cell, Dictionary, DictionaryValue } from "ton-core";
import { OpCode } from "../codepage/opcodes.gen";
import { opcodeToString } from "../codepage/opcodeToString";
import { Maybe } from "../utils/maybe";

@@ -37,3 +37,3 @@ import { Writer } from "../utils/Writer";

let unknownIndex = 0;
let extracted = new Map<string, { ref: boolean, rendered: string }>();
let extracted = new Map<string, { ref: boolean, rendered: string, src: Cell }>();
let callRefs = new Map<string, string>();

@@ -65,3 +65,3 @@ function extract(cell: Cell) {

});
extracted.set(name, { ref: true, rendered: w.end() });
extracted.set(name, { ref: true, rendered: w.end(), src: cell });
return name;

@@ -83,3 +83,3 @@ }

});
extracted.set(name, { ref: false, rendered: w.end() });
extracted.set(name, { ref: false, rendered: w.end(), src: value });
}

@@ -94,3 +94,5 @@

for (let [key, value] of extracted) {
writer.append(printer(`${key} ${value.ref ? 'PROCREF' : 'PROC'}:<{`, writer.indent));
let hash = value.src.hash().toString('hex');
let opstr = `${key} ${value.ref ? 'PROCREF' : 'PROC'}:<{`;
writer.append(printer({ op: opstr, offset: 0, length: 0, hash }, writer.indent));
writer.inIndent(() => {

@@ -101,3 +103,4 @@ value.rendered.split('\n').forEach(line => {

});
writer.append(printer(`}>`, writer.indent));
opstr = `}>`;
writer.append(printer({ op: opstr, offset: 0, length: 0, hash }, writer.indent));
}

@@ -115,3 +118,4 @@ });

let id = args.callRefExtractor(op.op.args[0]);
writer.append(printer(`${id} INLINECALLDICT`, writer.indent));
let opstr = `${id} INLINECALLDICT`;
writer.append(printer({ op: opstr, offset: op.offset, length: op.length, hash }, writer.indent));
continue;

@@ -128,3 +132,4 @@ }

let c = op.op.args[0];
writer.append(printer('<{', writer.indent));
let opstr = '<{';
writer.append(printer({ op: opstr, offset: op.offset, length: op.length, hash }, writer.indent));
writer.inIndent(() => {

@@ -139,3 +144,4 @@ decompileCell({

})
writer.append(printer('}> ' + op.op.code, writer.indent));
opstr = '}> ' + op.op.code;
writer.append(printer({ op: opstr, offset: op.offset, length: op.length, hash }, writer.indent));
continue;

@@ -149,6 +155,6 @@ }

}
let op2: OpCode = op.op; // For type checking
// All remaining opcodes
writer.append(printer({ op: op2, offset: op.offset, length: op.length, hash }, writer.indent));
let opstr = opcodeToString(op.op);
writer.append(printer({ op: opstr, offset: op.offset, length: op.length, hash }, writer.indent));
}

@@ -155,0 +161,0 @@ }

@@ -1,6 +0,3 @@

import { OpCode } from "../codepage/opcodes.gen";
import { opcodeToString } from "../codepage/opcodeToString";
export type Printer = (src: string | { op: string, hash: string, offset: number, length: number }, indent: number) => string;
export type Printer = (src: string | { op: OpCode, hash: string, offset: number, length: number }, indent: number) => string;
export function createTextPrinter(indentWidth: number): Printer {

@@ -11,5 +8,5 @@ return (src, indent) => {

} else {
return ' '.repeat(indentWidth * indent) + opcodeToString(src.op);
return ' '.repeat(indentWidth * indent) + src.op;
}
};
}
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