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

crosslightning-evm

Package Overview
Dependencies
Maintainers
1
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

crosslightning-evm - npm Package Compare versions

Comparing version 3.0.7 to 3.0.8

1

dist/evm/btcrelay/EVMBtcRelay.d.ts

@@ -16,2 +16,3 @@ /// <reference types="node" />

constructor(provider: Signer, bitcoinRpc: BitcoinRpc<B>, btcRelayContractAddress: string);
saveInitialHeader(header: B, epochStart: number, pastBlocksTimestamps: number[]): Promise<UnsignedTransaction>;
retrieveLogAndBlockheight(blockData: {

@@ -18,0 +19,0 @@ blockhash: string;

@@ -31,2 +31,13 @@ "use strict";

}
saveInitialHeader(header, epochStart, pastBlocksTimestamps) {
return __awaiter(this, void 0, void 0, function* () {
if (pastBlocksTimestamps.length !== 10) {
throw new Error("Invalid prevBlocksTimestamps");
}
const serializedBlock = EVMBtcRelay.serializeBlockHeader(header);
const unsignedTx = yield this.contract.populateTransaction.setInitialParent(serializedBlock.serializeToStruct(), ethers_1.BigNumber.from(header.getHeight()), "0x" + header.getChainWork().toString('hex'), ethers_1.BigNumber.from(epochStart), pastBlocksTimestamps.map(e => ethers_1.BigNumber.from(e)));
unsignedTx.gasLimit = ethers_1.BigNumber.from(150000);
return unsignedTx;
});
}
retrieveLogAndBlockheight(blockData, requiredBlockheight) {

@@ -33,0 +44,0 @@ return __awaiter(this, void 0, void 0, function* () {

/// <reference types="node" />
import { BtcHeader } from "crosslightning-base";
import { BigNumber } from "ethers";
type EVMBtcHeaderType = {

@@ -12,2 +13,10 @@ version: number;

};
type EVMBtcHeaderStruct = {
version: BigNumber;
reversedPrevBlockHash: string;
merkleRoot: string;
timestamp: BigNumber;
nbits: BigNumber;
nonce: BigNumber;
};
export declare class EVMBtcHeader implements BtcHeader {

@@ -22,2 +31,3 @@ version: number;

constructor(obj: EVMBtcHeaderType);
serializeToStruct(): EVMBtcHeaderStruct;
serialize(): Buffer;

@@ -24,0 +34,0 @@ getMerkleRoot(): Buffer;

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.EVMBtcHeader = void 0;
const ethers_1 = require("ethers");
const EVMBtcStoredHeader_1 = require("./EVMBtcStoredHeader");
class EVMBtcHeader {

@@ -14,2 +16,12 @@ constructor(obj) {

}
serializeToStruct() {
return {
version: (0, EVMBtcStoredHeader_1.reverseBigNumber)(ethers_1.BigNumber.from(this.version)),
reversedPrevBlockHash: "0x" + this.reversedPrevBlockhash.toString("hex"),
merkleRoot: "0x" + this.merkleRoot.toString("hex"),
timestamp: (0, EVMBtcStoredHeader_1.reverseBigNumber)(ethers_1.BigNumber.from(this.timestamp)),
nbits: (0, EVMBtcStoredHeader_1.reverseBigNumber)(ethers_1.BigNumber.from(this.nbits)),
nonce: (0, EVMBtcStoredHeader_1.reverseBigNumber)(ethers_1.BigNumber.from(this.nonce))
};
}
serialize() {

@@ -16,0 +28,0 @@ const versionBuffer = Buffer.alloc(4);

@@ -12,2 +12,3 @@ /// <reference types="node" />

};
export declare function reverseBigNumber(num: BigNumber): BigNumber;
export declare class EVMBtcStoredHeader implements BtcStoredHeader<EVMBtcHeader> {

@@ -14,0 +15,0 @@ chainWork: BigNumber;

3

dist/evm/btcrelay/headers/EVMBtcStoredHeader.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.EVMBtcStoredHeader = void 0;
exports.EVMBtcStoredHeader = exports.reverseBigNumber = void 0;
const EVMBtcHeader_1 = require("./EVMBtcHeader");

@@ -12,2 +12,3 @@ const ethers_1 = require("ethers");

}
exports.reverseBigNumber = reverseBigNumber;
class EVMBtcStoredHeader {

@@ -14,0 +15,0 @@ constructor(obj) {

{
"name": "crosslightning-evm",
"version": "3.0.7",
"version": "3.0.8",
"description": "EVM specific base implementation",

@@ -27,3 +27,3 @@ "main": "./dist/index.js",

"bn.js": "^5.2.1",
"crosslightning-base": "^3.0.6",
"crosslightning-base": "^3.0.8",
"ethers": "^5.7.2",

@@ -30,0 +30,0 @@ "typescript": "^4.9.5"

@@ -32,2 +32,21 @@ import {BitcoinRpc, BtcBlock, BtcRelay, StatePredictorUtils} from "crosslightning-base";

async saveInitialHeader(header: B, epochStart: number, pastBlocksTimestamps: number[]): Promise<UnsignedTransaction> {
if(pastBlocksTimestamps.length!==10) {
throw new Error("Invalid prevBlocksTimestamps");
}
const serializedBlock = EVMBtcRelay.serializeBlockHeader(header);
const unsignedTx = await this.contract.populateTransaction.setInitialParent(
serializedBlock.serializeToStruct(),
BigNumber.from(header.getHeight()),
"0x"+header.getChainWork().toString('hex'),
BigNumber.from(epochStart),
pastBlocksTimestamps.map(e => BigNumber.from(e))
);
unsignedTx.gasLimit = BigNumber.from(150000);
return unsignedTx;
}
async retrieveLogAndBlockheight(blockData: {blockhash: string, height: number}, requiredBlockheight?: number): Promise<{

@@ -34,0 +53,0 @@ header: EVMBtcStoredHeader,

import {BtcHeader} from "crosslightning-base"
import {BigNumber} from "ethers";
import {reverseBigNumber} from "./EVMBtcStoredHeader";

@@ -13,2 +15,11 @@ type EVMBtcHeaderType = {

type EVMBtcHeaderStruct = {
version: BigNumber,
reversedPrevBlockHash: string,
merkleRoot: string,
timestamp: BigNumber,
nbits: BigNumber,
nonce: BigNumber
}
export class EVMBtcHeader implements BtcHeader {

@@ -34,2 +45,13 @@

serializeToStruct(): EVMBtcHeaderStruct {
return {
version: reverseBigNumber(BigNumber.from(this.version)),
reversedPrevBlockHash: "0x"+this.reversedPrevBlockhash.toString("hex"),
merkleRoot: "0x"+this.merkleRoot.toString("hex"),
timestamp: reverseBigNumber(BigNumber.from(this.timestamp)),
nbits: reverseBigNumber(BigNumber.from(this.nbits)),
nonce: reverseBigNumber(BigNumber.from(this.nonce))
}
}
serialize(): Buffer {

@@ -36,0 +58,0 @@ const versionBuffer = Buffer.alloc(4);

@@ -14,3 +14,3 @@ import {EVMBtcHeader} from "./EVMBtcHeader";

function reverseBigNumber(num: BigNumber): BigNumber {
export function reverseBigNumber(num: BigNumber): BigNumber {
const buffer = Buffer.alloc(4);

@@ -17,0 +17,0 @@ buffer.writeUint32LE(num.toNumber());

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