Beta 7 with some repo names changed.
This commit is contained in:
1 parent
0f7b40cca7
commit
963c19493a
3408 files changed
+462217
-15516
No files matched your search
+2
@@ -0,0 +1,2 @@
|
||||
export const version = "rlp/5.0.4";
|
||||
//# sourceMappingURL=_version.js.map
|
||||
+120
@@ -0,0 +1,120 @@
|
||||
"use strict";
|
||||
//See: https://github.com/ethereum/wiki/wiki/RLP
|
||||
import { arrayify, hexlify, isBytesLike } from "@ethersproject/bytes";
|
||||
import { Logger } from "@ethersproject/logger";
|
||||
import { version } from "./_version";
|
||||
const logger = new Logger(version);
|
||||
function arrayifyInteger(value) {
|
||||
const result = [];
|
||||
while (value) {
|
||||
result.unshift(value & 0xff);
|
||||
value >>= 8;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
function unarrayifyInteger(data, offset, length) {
|
||||
let result = 0;
|
||||
for (let i = 0; i < length; i++) {
|
||||
result = (result * 256) + data[offset + i];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
function _encode(object) {
|
||||
if (Array.isArray(object)) {
|
||||
let payload = [];
|
||||
object.forEach(function (child) {
|
||||
payload = payload.concat(_encode(child));
|
||||
});
|
||||
if (payload.length <= 55) {
|
||||
payload.unshift(0xc0 + payload.length);
|
||||
return payload;
|
||||
}
|
||||
const length = arrayifyInteger(payload.length);
|
||||
length.unshift(0xf7 + length.length);
|
||||
return length.concat(payload);
|
||||
}
|
||||
if (!isBytesLike(object)) {
|
||||
logger.throwArgumentError("RLP object must be BytesLike", "object", object);
|
||||
}
|
||||
const data = Array.prototype.slice.call(arrayify(object));
|
||||
if (data.length === 1 && data[0] <= 0x7f) {
|
||||
return data;
|
||||
}
|
||||
else if (data.length <= 55) {
|
||||
data.unshift(0x80 + data.length);
|
||||
return data;
|
||||
}
|
||||
const length = arrayifyInteger(data.length);
|
||||
length.unshift(0xb7 + length.length);
|
||||
return length.concat(data);
|
||||
}
|
||||
export function encode(object) {
|
||||
return hexlify(_encode(object));
|
||||
}
|
||||
function _decodeChildren(data, offset, childOffset, length) {
|
||||
const result = [];
|
||||
while (childOffset < offset + 1 + length) {
|
||||
const decoded = _decode(data, childOffset);
|
||||
result.push(decoded.result);
|
||||
childOffset += decoded.consumed;
|
||||
if (childOffset > offset + 1 + length) {
|
||||
logger.throwError("child data too short", Logger.errors.BUFFER_OVERRUN, {});
|
||||
}
|
||||
}
|
||||
return { consumed: (1 + length), result: result };
|
||||
}
|
||||
// returns { consumed: number, result: Object }
|
||||
function _decode(data, offset) {
|
||||
if (data.length === 0) {
|
||||
logger.throwError("data too short", Logger.errors.BUFFER_OVERRUN, {});
|
||||
}
|
||||
// Array with extra length prefix
|
||||
if (data[offset] >= 0xf8) {
|
||||
const lengthLength = data[offset] - 0xf7;
|
||||
if (offset + 1 + lengthLength > data.length) {
|
||||
logger.throwError("data short segment too short", Logger.errors.BUFFER_OVERRUN, {});
|
||||
}
|
||||
const length = unarrayifyInteger(data, offset + 1, lengthLength);
|
||||
if (offset + 1 + lengthLength + length > data.length) {
|
||||
logger.throwError("data long segment too short", Logger.errors.BUFFER_OVERRUN, {});
|
||||
}
|
||||
return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length);
|
||||
}
|
||||
else if (data[offset] >= 0xc0) {
|
||||
const length = data[offset] - 0xc0;
|
||||
if (offset + 1 + length > data.length) {
|
||||
logger.throwError("data array too short", Logger.errors.BUFFER_OVERRUN, {});
|
||||
}
|
||||
return _decodeChildren(data, offset, offset + 1, length);
|
||||
}
|
||||
else if (data[offset] >= 0xb8) {
|
||||
const lengthLength = data[offset] - 0xb7;
|
||||
if (offset + 1 + lengthLength > data.length) {
|
||||
logger.throwError("data array too short", Logger.errors.BUFFER_OVERRUN, {});
|
||||
}
|
||||
const length = unarrayifyInteger(data, offset + 1, lengthLength);
|
||||
if (offset + 1 + lengthLength + length > data.length) {
|
||||
logger.throwError("data array too short", Logger.errors.BUFFER_OVERRUN, {});
|
||||
}
|
||||
const result = hexlify(data.slice(offset + 1 + lengthLength, offset + 1 + lengthLength + length));
|
||||
return { consumed: (1 + lengthLength + length), result: result };
|
||||
}
|
||||
else if (data[offset] >= 0x80) {
|
||||
const length = data[offset] - 0x80;
|
||||
if (offset + 1 + length > data.length) {
|
||||
logger.throwError("data too short", Logger.errors.BUFFER_OVERRUN, {});
|
||||
}
|
||||
const result = hexlify(data.slice(offset + 1, offset + 1 + length));
|
||||
return { consumed: (1 + length), result: result };
|
||||
}
|
||||
return { consumed: 1, result: hexlify(data[offset]) };
|
||||
}
|
||||
export function decode(data) {
|
||||
const bytes = arrayify(data);
|
||||
const decoded = _decode(bytes, 0);
|
||||
if (decoded.consumed !== bytes.length) {
|
||||
logger.throwArgumentError("invalid rlp data", "data", data);
|
||||
}
|
||||
return decoded.result;
|
||||
}
|
||||
//# sourceMappingURL=index.js.map
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.version = "rlp/5.0.4";
|
||||
//# sourceMappingURL=_version.js.map
|
||||
+123
@@ -0,0 +1,123 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
//See: https://github.com/ethereum/wiki/wiki/RLP
|
||||
var bytes_1 = require("@ethersproject/bytes");
|
||||
var logger_1 = require("@ethersproject/logger");
|
||||
var _version_1 = require("./_version");
|
||||
var logger = new logger_1.Logger(_version_1.version);
|
||||
function arrayifyInteger(value) {
|
||||
var result = [];
|
||||
while (value) {
|
||||
result.unshift(value & 0xff);
|
||||
value >>= 8;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
function unarrayifyInteger(data, offset, length) {
|
||||
var result = 0;
|
||||
for (var i = 0; i < length; i++) {
|
||||
result = (result * 256) + data[offset + i];
|
||||
}
|
||||
return result;
|
||||
}
|
||||
function _encode(object) {
|
||||
if (Array.isArray(object)) {
|
||||
var payload_1 = [];
|
||||
object.forEach(function (child) {
|
||||
payload_1 = payload_1.concat(_encode(child));
|
||||
});
|
||||
if (payload_1.length <= 55) {
|
||||
payload_1.unshift(0xc0 + payload_1.length);
|
||||
return payload_1;
|
||||
}
|
||||
var length_1 = arrayifyInteger(payload_1.length);
|
||||
length_1.unshift(0xf7 + length_1.length);
|
||||
return length_1.concat(payload_1);
|
||||
}
|
||||
if (!bytes_1.isBytesLike(object)) {
|
||||
logger.throwArgumentError("RLP object must be BytesLike", "object", object);
|
||||
}
|
||||
var data = Array.prototype.slice.call(bytes_1.arrayify(object));
|
||||
if (data.length === 1 && data[0] <= 0x7f) {
|
||||
return data;
|
||||
}
|
||||
else if (data.length <= 55) {
|
||||
data.unshift(0x80 + data.length);
|
||||
return data;
|
||||
}
|
||||
var length = arrayifyInteger(data.length);
|
||||
length.unshift(0xb7 + length.length);
|
||||
return length.concat(data);
|
||||
}
|
||||
function encode(object) {
|
||||
return bytes_1.hexlify(_encode(object));
|
||||
}
|
||||
exports.encode = encode;
|
||||
function _decodeChildren(data, offset, childOffset, length) {
|
||||
var result = [];
|
||||
while (childOffset < offset + 1 + length) {
|
||||
var decoded = _decode(data, childOffset);
|
||||
result.push(decoded.result);
|
||||
childOffset += decoded.consumed;
|
||||
if (childOffset > offset + 1 + length) {
|
||||
logger.throwError("child data too short", logger_1.Logger.errors.BUFFER_OVERRUN, {});
|
||||
}
|
||||
}
|
||||
return { consumed: (1 + length), result: result };
|
||||
}
|
||||
// returns { consumed: number, result: Object }
|
||||
function _decode(data, offset) {
|
||||
if (data.length === 0) {
|
||||
logger.throwError("data too short", logger_1.Logger.errors.BUFFER_OVERRUN, {});
|
||||
}
|
||||
// Array with extra length prefix
|
||||
if (data[offset] >= 0xf8) {
|
||||
var lengthLength = data[offset] - 0xf7;
|
||||
if (offset + 1 + lengthLength > data.length) {
|
||||
logger.throwError("data short segment too short", logger_1.Logger.errors.BUFFER_OVERRUN, {});
|
||||
}
|
||||
var length_2 = unarrayifyInteger(data, offset + 1, lengthLength);
|
||||
if (offset + 1 + lengthLength + length_2 > data.length) {
|
||||
logger.throwError("data long segment too short", logger_1.Logger.errors.BUFFER_OVERRUN, {});
|
||||
}
|
||||
return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length_2);
|
||||
}
|
||||
else if (data[offset] >= 0xc0) {
|
||||
var length_3 = data[offset] - 0xc0;
|
||||
if (offset + 1 + length_3 > data.length) {
|
||||
logger.throwError("data array too short", logger_1.Logger.errors.BUFFER_OVERRUN, {});
|
||||
}
|
||||
return _decodeChildren(data, offset, offset + 1, length_3);
|
||||
}
|
||||
else if (data[offset] >= 0xb8) {
|
||||
var lengthLength = data[offset] - 0xb7;
|
||||
if (offset + 1 + lengthLength > data.length) {
|
||||
logger.throwError("data array too short", logger_1.Logger.errors.BUFFER_OVERRUN, {});
|
||||
}
|
||||
var length_4 = unarrayifyInteger(data, offset + 1, lengthLength);
|
||||
if (offset + 1 + lengthLength + length_4 > data.length) {
|
||||
logger.throwError("data array too short", logger_1.Logger.errors.BUFFER_OVERRUN, {});
|
||||
}
|
||||
var result = bytes_1.hexlify(data.slice(offset + 1 + lengthLength, offset + 1 + lengthLength + length_4));
|
||||
return { consumed: (1 + lengthLength + length_4), result: result };
|
||||
}
|
||||
else if (data[offset] >= 0x80) {
|
||||
var length_5 = data[offset] - 0x80;
|
||||
if (offset + 1 + length_5 > data.length) {
|
||||
logger.throwError("data too short", logger_1.Logger.errors.BUFFER_OVERRUN, {});
|
||||
}
|
||||
var result = bytes_1.hexlify(data.slice(offset + 1, offset + 1 + length_5));
|
||||
return { consumed: (1 + length_5), result: result };
|
||||
}
|
||||
return { consumed: 1, result: bytes_1.hexlify(data[offset]) };
|
||||
}
|
||||
function decode(data) {
|
||||
var bytes = bytes_1.arrayify(data);
|
||||
var decoded = _decode(bytes, 0);
|
||||
if (decoded.consumed !== bytes.length) {
|
||||
logger.throwArgumentError("invalid rlp data", "data", data);
|
||||
}
|
||||
return decoded.result;
|
||||
}
|
||||
exports.decode = decode;
|
||||
//# sourceMappingURL=index.js.map
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
{
|
||||
"_from": "@ethersproject/rlp@^5.0.3",
|
||||
"_id": "@ethersproject/rlp@5.0.4",
|
||||
"_inBundle": false,
|
||||
"_integrity": "sha512-5qrrZad7VTjofxSsm7Zg/7Dr4ZOln4S2CqiDdOuTv6MBKnXj0CiBojXyuDy52M8O3wxH0CyE924hXWTDV1PQWQ==",
|
||||
"_location": "/@ethersproject/rlp",
|
||||
"_phantomChildren": {},
|
||||
"_requested": {
|
||||
"type": "range",
|
||||
"registry": true,
|
||||
"raw": "@ethersproject/rlp@^5.0.3",
|
||||
"name": "@ethersproject/rlp",
|
||||
"escapedName": "@ethersproject%2frlp",
|
||||
"scope": "@ethersproject",
|
||||
"rawSpec": "^5.0.3",
|
||||
"saveSpec": null,
|
||||
"fetchSpec": "^5.0.3"
|
||||
},
|
||||
"_requiredBy": [
|
||||
"/@ethersproject/address",
|
||||
"/@ethersproject/transactions"
|
||||
],
|
||||
"_resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.0.4.tgz",
|
||||
"_shasum": "0090a0271e84ea803016a112a79f5cfd80271a77",
|
||||
"_spec": "@ethersproject/rlp@^5.0.3",
|
||||
"_where": "C:\\Users\\Luis\\source\\repos\\AAMasters\\BackendServers\\node_modules\\@ethersproject\\transactions",
|
||||
"author": {
|
||||
"name": "Richard Moore",
|
||||
"email": "me@ricmoo.com"
|
||||
},
|
||||
"bugs": {
|
||||
"url": "https://github.com/ethers-io/ethers.js/issues"
|
||||
},
|
||||
"bundleDependencies": false,
|
||||
"dependencies": {
|
||||
"@ethersproject/bytes": "^5.0.4",
|
||||
"@ethersproject/logger": "^5.0.5"
|
||||
},
|
||||
"deprecated": false,
|
||||
"description": "Recursive-Length Prefix (RLP) coder.",
|
||||
"ethereum": "donations.ethers.eth",
|
||||
"gitHead": "ffa4a2d0549fe2c606bda3130f4a3f3d788f8dcf",
|
||||
"homepage": "https://github.com/ethers-io/ethers.js#readme",
|
||||
"keywords": [
|
||||
"Ethereum",
|
||||
"ethers",
|
||||
"rlp"
|
||||
],
|
||||
"license": "MIT",
|
||||
"main": "./lib/index.js",
|
||||
"module": "./lib.esm/index.js",
|
||||
"name": "@ethersproject/rlp",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/ethers-io/ethers.js.git"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"tarballHash": "0x2a870663cf91328de26e8b3e5cb1ac3004eefa78ffbdad7b08b61c2685c3f018",
|
||||
"types": "./lib/index.d.ts",
|
||||
"version": "5.0.4"
|
||||
}
|
||||
Reference in new issue
Block a user