Updated dist files.

This commit is contained in:
Richard Moore 2020-09-07 19:55:52 -04:00
parent 28ee745211
commit 9d5de46c84
No known key found for this signature in database
GPG Key ID: 665176BE8E9DC651
43 changed files with 137 additions and 130 deletions

View File

@ -3,6 +3,11 @@ Changelog
This change log is managed by `admin/cmds/update-versions` but may be manually updated.
ethers/v5.0.12 (2020-09-07 19:54)
---------------------------------
- Allow events to use compact bytes ABI coded data for Solidity 0.4 external events. ([#891](https://github.com/ethers-io/ethers.js/issues/891), [#992](https://github.com/ethers-io/ethers.js/issues/992); [4e394fc](https://github.com/ethers-io/ethers.js/commit/4e394fc68019445ae4b4e201e41f95d6793dbe92))
ethers/v5.0.11 (2020-09-05 23:51)
---------------------------------

View File

@ -1 +1 @@
export declare const version = "abi/5.0.3";
export declare const version = "abi/5.0.4";

View File

@ -1,2 +1,2 @@
export const version = "abi/5.0.3";
export const version = "abi/5.0.4";
//# sourceMappingURL=_version.js.map

View File

@ -7,9 +7,9 @@ export declare class AbiCoder {
constructor(coerceFunc?: CoerceFunc);
_getCoder(param: ParamType): Coder;
_getWordSize(): number;
_getReader(data: Uint8Array): Reader;
_getReader(data: Uint8Array, allowLoose?: boolean): Reader;
_getWriter(): Writer;
encode(types: Array<string | ParamType>, values: Array<any>): string;
decode(types: Array<string | ParamType>, data: BytesLike): Result;
decode(types: Array<string | ParamType>, data: BytesLike, loose?: boolean): Result;
}
export declare const defaultAbiCoder: AbiCoder;

View File

@ -63,8 +63,8 @@ export class AbiCoder {
return logger.throwArgumentError("invalid type", "type", param.type);
}
_getWordSize() { return 32; }
_getReader(data) {
return new Reader(data, this._getWordSize(), this.coerceFunc);
_getReader(data, allowLoose) {
return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);
}
_getWriter() {
return new Writer(this._getWordSize());
@ -82,10 +82,10 @@ export class AbiCoder {
coder.encode(writer, values);
return writer.data;
}
decode(types, data) {
decode(types, data, loose) {
const coders = types.map((type) => this._getCoder(ParamType.from(type)));
const coder = new TupleCoder(coders, "_");
return coder.decode(this._getReader(arrayify(data)));
return coder.decode(this._getReader(arrayify(data), loose));
}
}
export const defaultAbiCoder = new AbiCoder();

View File

@ -1 +1 @@
{"version":3,"file":"abi-coder.js","sourceRoot":"","sources":["../src.ts/abi-coder.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"abi-coder.js","sourceRoot":"","sources":["../src.ts/abi-coder.ts"],"names":[],"mappings":"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"}

View File

@ -33,16 +33,17 @@ export declare class Writer {
}
export declare class Reader {
readonly wordSize: number;
readonly allowLoose: boolean;
readonly _data: Uint8Array;
readonly _coerceFunc: CoerceFunc;
_offset: number;
constructor(data: BytesLike, wordSize?: number, coerceFunc?: CoerceFunc);
constructor(data: BytesLike, wordSize?: number, coerceFunc?: CoerceFunc, allowLoose?: boolean);
get data(): string;
get consumed(): number;
static coerce(name: string, value: any): any;
coerce(name: string, value: any): any;
_peekBytes(offset: number, length: number): Uint8Array;
_peekBytes(offset: number, length: number, loose?: boolean): Uint8Array;
subReader(offset: number): Reader;
readBytes(length: number): Uint8Array;
readBytes(length: number, loose?: boolean): Uint8Array;
readValue(): BigNumber;
}

View File

@ -84,10 +84,11 @@ export class Writer {
}
}
export class Reader {
constructor(data, wordSize, coerceFunc) {
constructor(data, wordSize, coerceFunc, allowLoose) {
defineReadOnly(this, "_data", arrayify(data));
defineReadOnly(this, "wordSize", wordSize || 32);
defineReadOnly(this, "_coerceFunc", coerceFunc);
defineReadOnly(this, "allowLoose", allowLoose);
this._offset = 0;
}
get data() { return hexlify(this._data); }
@ -106,21 +107,26 @@ export class Reader {
}
return Reader.coerce(name, value);
}
_peekBytes(offset, length) {
_peekBytes(offset, length, loose) {
let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;
if (this._offset + alignedLength > this._data.length) {
if (this.allowLoose && loose && this._offset + length <= this._data.length) {
alignedLength = length;
}
else {
logger.throwError("data out-of-bounds", Logger.errors.BUFFER_OVERRUN, {
length: this._data.length,
offset: this._offset + alignedLength
});
}
}
return this._data.slice(this._offset, this._offset + alignedLength);
}
subReader(offset) {
return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc);
return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);
}
readBytes(length) {
let bytes = this._peekBytes(0, length);
readBytes(length, loose) {
let bytes = this._peekBytes(0, length, !!loose);
this._offset += bytes.length;
// @TODO: Make sure the length..end bytes are all 0?
return bytes.slice(0, length);

File diff suppressed because one or more lines are too long

View File

@ -67,8 +67,6 @@ export function unpack(reader, coders) {
let values = [];
// A reader anchored to this base
let baseReader = reader.subReader(0);
// The amount of dynamic data read; to consume later to synchronize
let dynamicLength = 0;
coders.forEach((coder) => {
let value = null;
if (coder.dynamic) {
@ -87,7 +85,6 @@ export function unpack(reader, coders) {
value.name = coder.localName;
value.type = coder.type;
}
dynamicLength += offsetReader.consumed;
}
else {
try {
@ -108,9 +105,6 @@ export function unpack(reader, coders) {
values.push(value);
}
});
// @TODO: get rid of this an see if it still works?
// Consume the dynamic components in the main reader
reader.readBytes(dynamicLength);
// We only output named properties for uniquely named coders
const uniqueNames = coders.reduce((accum, coder) => {
const name = coder.localName;

File diff suppressed because one or more lines are too long

View File

@ -12,7 +12,7 @@ export class DynamicBytesCoder extends Coder {
return length;
}
decode(reader) {
return reader.readBytes(reader.readValue().toNumber());
return reader.readBytes(reader.readValue().toNumber(), true);
}
}
export class BytesCoder extends DynamicBytesCoder {

View File

@ -1 +1 @@
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src.ts/coders/bytes.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,KAAK,EAAkB,MAAM,kBAAkB,CAAC;AAEzD,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACxC,YAAY,IAAY,EAAE,SAAiB;QACxC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,KAAU;QAC7B,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3D,CAAC;CACJ;AAED,MAAM,OAAO,UAAW,SAAQ,iBAAiB;IAC7C,YAAY,SAAiB;QACzB,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;CACJ"}
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src.ts/coders/bytes.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,KAAK,EAAkB,MAAM,kBAAkB,CAAC;AAEzD,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IACxC,YAAY,IAAY,EAAE,SAAiB;QACxC,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,MAAc,EAAE,KAAU;QAC7B,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC;CACJ;AAED,MAAM,OAAO,UAAW,SAAQ,iBAAiB;IAC7C,YAAY,SAAiB;QACzB,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,MAAc;QACjB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;CACJ"}

View File

@ -390,7 +390,7 @@ export class Interface {
}
});
let resultIndexed = (topics != null) ? this._abiCoder.decode(indexed, concat(topics)) : null;
let resultNonIndexed = this._abiCoder.decode(nonIndexed, data);
let resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);
let result = [];
let nonIndexedIndex = 0, indexedIndex = 0;
eventFragment.inputs.forEach((param, index) => {

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
export declare const version = "abi/5.0.3";
export declare const version = "abi/5.0.4";

View File

@ -1,4 +1,4 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = "abi/5.0.3";
exports.version = "abi/5.0.4";
//# sourceMappingURL=_version.js.map

View File

@ -7,9 +7,9 @@ export declare class AbiCoder {
constructor(coerceFunc?: CoerceFunc);
_getCoder(param: ParamType): Coder;
_getWordSize(): number;
_getReader(data: Uint8Array): Reader;
_getReader(data: Uint8Array, allowLoose?: boolean): Reader;
_getWriter(): Writer;
encode(types: Array<string | ParamType>, values: Array<any>): string;
decode(types: Array<string | ParamType>, data: BytesLike): Result;
decode(types: Array<string | ParamType>, data: BytesLike, loose?: boolean): Result;
}
export declare const defaultAbiCoder: AbiCoder;

View File

@ -66,8 +66,8 @@ var AbiCoder = /** @class */ (function () {
return logger.throwArgumentError("invalid type", "type", param.type);
};
AbiCoder.prototype._getWordSize = function () { return 32; };
AbiCoder.prototype._getReader = function (data) {
return new abstract_coder_1.Reader(data, this._getWordSize(), this.coerceFunc);
AbiCoder.prototype._getReader = function (data, allowLoose) {
return new abstract_coder_1.Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);
};
AbiCoder.prototype._getWriter = function () {
return new abstract_coder_1.Writer(this._getWordSize());
@ -86,11 +86,11 @@ var AbiCoder = /** @class */ (function () {
coder.encode(writer, values);
return writer.data;
};
AbiCoder.prototype.decode = function (types, data) {
AbiCoder.prototype.decode = function (types, data, loose) {
var _this = this;
var coders = types.map(function (type) { return _this._getCoder(fragments_1.ParamType.from(type)); });
var coder = new tuple_1.TupleCoder(coders, "_");
return coder.decode(this._getReader(bytes_1.arrayify(data)));
return coder.decode(this._getReader(bytes_1.arrayify(data), loose));
};
return AbiCoder;
}());

View File

@ -1 +1 @@
{"version":3,"file":"abi-coder.js","sourceRoot":"","sources":["../src.ts/abi-coder.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"abi-coder.js","sourceRoot":"","sources":["../src.ts/abi-coder.ts"],"names":[],"mappings":"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"}

View File

@ -33,16 +33,17 @@ export declare class Writer {
}
export declare class Reader {
readonly wordSize: number;
readonly allowLoose: boolean;
readonly _data: Uint8Array;
readonly _coerceFunc: CoerceFunc;
_offset: number;
constructor(data: BytesLike, wordSize?: number, coerceFunc?: CoerceFunc);
constructor(data: BytesLike, wordSize?: number, coerceFunc?: CoerceFunc, allowLoose?: boolean);
get data(): string;
get consumed(): number;
static coerce(name: string, value: any): any;
coerce(name: string, value: any): any;
_peekBytes(offset: number, length: number): Uint8Array;
_peekBytes(offset: number, length: number, loose?: boolean): Uint8Array;
subReader(offset: number): Reader;
readBytes(length: number): Uint8Array;
readBytes(length: number, loose?: boolean): Uint8Array;
readValue(): BigNumber;
}

View File

@ -99,10 +99,11 @@ var Writer = /** @class */ (function () {
}());
exports.Writer = Writer;
var Reader = /** @class */ (function () {
function Reader(data, wordSize, coerceFunc) {
function Reader(data, wordSize, coerceFunc, allowLoose) {
properties_1.defineReadOnly(this, "_data", bytes_1.arrayify(data));
properties_1.defineReadOnly(this, "wordSize", wordSize || 32);
properties_1.defineReadOnly(this, "_coerceFunc", coerceFunc);
properties_1.defineReadOnly(this, "allowLoose", allowLoose);
this._offset = 0;
}
Object.defineProperty(Reader.prototype, "data", {
@ -129,21 +130,26 @@ var Reader = /** @class */ (function () {
}
return Reader.coerce(name, value);
};
Reader.prototype._peekBytes = function (offset, length) {
Reader.prototype._peekBytes = function (offset, length, loose) {
var alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;
if (this._offset + alignedLength > this._data.length) {
if (this.allowLoose && loose && this._offset + length <= this._data.length) {
alignedLength = length;
}
else {
logger.throwError("data out-of-bounds", logger_1.Logger.errors.BUFFER_OVERRUN, {
length: this._data.length,
offset: this._offset + alignedLength
});
}
}
return this._data.slice(this._offset, this._offset + alignedLength);
};
Reader.prototype.subReader = function (offset) {
return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc);
return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);
};
Reader.prototype.readBytes = function (length) {
var bytes = this._peekBytes(0, length);
Reader.prototype.readBytes = function (length, loose) {
var bytes = this._peekBytes(0, length, !!loose);
this._offset += bytes.length;
// @TODO: Make sure the length..end bytes are all 0?
return bytes.slice(0, length);

File diff suppressed because one or more lines are too long

View File

@ -82,8 +82,6 @@ function unpack(reader, coders) {
var values = [];
// A reader anchored to this base
var baseReader = reader.subReader(0);
// The amount of dynamic data read; to consume later to synchronize
var dynamicLength = 0;
coders.forEach(function (coder) {
var value = null;
if (coder.dynamic) {
@ -102,7 +100,6 @@ function unpack(reader, coders) {
value.name = coder.localName;
value.type = coder.type;
}
dynamicLength += offsetReader.consumed;
}
else {
try {
@ -123,9 +120,6 @@ function unpack(reader, coders) {
values.push(value);
}
});
// @TODO: get rid of this an see if it still works?
// Consume the dynamic components in the main reader
reader.readBytes(dynamicLength);
// We only output named properties for uniquely named coders
var uniqueNames = coders.reduce(function (accum, coder) {
var name = coder.localName;

File diff suppressed because one or more lines are too long

View File

@ -27,7 +27,7 @@ var DynamicBytesCoder = /** @class */ (function (_super) {
return length;
};
DynamicBytesCoder.prototype.decode = function (reader) {
return reader.readBytes(reader.readValue().toNumber());
return reader.readBytes(reader.readValue().toNumber(), true);
};
return DynamicBytesCoder;
}(abstract_coder_1.Coder));

View File

@ -1 +1 @@
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src.ts/coders/bytes.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;AAEb,8CAAyD;AAEzD,mDAAyD;AAEzD;IAAuC,qCAAK;IACxC,2BAAY,IAAY,EAAE,SAAiB;eACxC,kBAAM,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC;IACrC,CAAC;IAED,kCAAM,GAAN,UAAO,MAAc,EAAE,KAAU;QAC7B,KAAK,GAAG,gBAAQ,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,kCAAM,GAAN,UAAO,MAAc;QACjB,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3D,CAAC;IACL,wBAAC;AAAD,CAAC,AAfD,CAAuC,sBAAK,GAe3C;AAfY,8CAAiB;AAiB9B;IAAgC,8BAAiB;IAC7C,oBAAY,SAAiB;eACzB,kBAAM,OAAO,EAAE,SAAS,CAAC;IAC7B,CAAC;IAED,2BAAM,GAAN,UAAO,MAAc;QACjB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,eAAO,CAAC,iBAAM,MAAM,YAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IACL,iBAAC;AAAD,CAAC,AARD,CAAgC,iBAAiB,GAQhD;AARY,gCAAU"}
{"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src.ts/coders/bytes.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;;;;;;;;;;;;;;;AAEb,8CAAyD;AAEzD,mDAAyD;AAEzD;IAAuC,qCAAK;IACxC,2BAAY,IAAY,EAAE,SAAiB;eACxC,kBAAM,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC;IACrC,CAAC;IAED,kCAAM,GAAN,UAAO,MAAc,EAAE,KAAU;QAC7B,KAAK,GAAG,gBAAQ,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,kCAAM,GAAN,UAAO,MAAc;QACjB,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC;IACL,wBAAC;AAAD,CAAC,AAfD,CAAuC,sBAAK,GAe3C;AAfY,8CAAiB;AAiB9B;IAAgC,8BAAiB;IAC7C,oBAAY,SAAiB;eACzB,kBAAM,OAAO,EAAE,SAAS,CAAC;IAC7B,CAAC;IAED,2BAAM,GAAN,UAAO,MAAc;QACjB,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,eAAO,CAAC,iBAAM,MAAM,YAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IACL,iBAAC;AAAD,CAAC,AARD,CAAgC,iBAAiB,GAQhD;AARY,gCAAU"}

View File

@ -426,7 +426,7 @@ var Interface = /** @class */ (function () {
}
});
var resultIndexed = (topics != null) ? this._abiCoder.decode(indexed, bytes_1.concat(topics)) : null;
var resultNonIndexed = this._abiCoder.decode(nonIndexed, data);
var resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);
var result = [];
var nonIndexedIndex = 0, indexedIndex = 0;
eventFragment.inputs.forEach(function (param, index) {

File diff suppressed because one or more lines are too long

View File

@ -31,7 +31,7 @@
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"tarballHash": "0x962158407771047f5f321326b3ddded40e80bef5362dd3b6494fa6fa8d9c9f65",
"tarballHash": "0x1630469ed427457628d157d6f09440960fd37999bf6ad7e2521a757e2a946d04",
"types": "./lib/index.d.ts",
"version": "5.0.3"
"version": "5.0.4"
}

View File

@ -1 +1 @@
export const version = "abi/5.0.3";
export const version = "abi/5.0.4";

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -4859,7 +4859,7 @@ class Description {
}
}
const version$4 = "abi/5.0.3";
const version$4 = "abi/5.0.4";
"use strict";
const logger$4 = new Logger(version$4);
@ -5723,10 +5723,11 @@ class Writer {
}
}
class Reader {
constructor(data, wordSize, coerceFunc) {
constructor(data, wordSize, coerceFunc, allowLoose) {
defineReadOnly(this, "_data", arrayify(data));
defineReadOnly(this, "wordSize", wordSize || 32);
defineReadOnly(this, "_coerceFunc", coerceFunc);
defineReadOnly(this, "allowLoose", allowLoose);
this._offset = 0;
}
get data() { return hexlify(this._data); }
@ -5745,21 +5746,26 @@ class Reader {
}
return Reader.coerce(name, value);
}
_peekBytes(offset, length) {
_peekBytes(offset, length, loose) {
let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;
if (this._offset + alignedLength > this._data.length) {
if (this.allowLoose && loose && this._offset + length <= this._data.length) {
alignedLength = length;
}
else {
logger$5.throwError("data out-of-bounds", Logger.errors.BUFFER_OVERRUN, {
length: this._data.length,
offset: this._offset + alignedLength
});
}
}
return this._data.slice(this._offset, this._offset + alignedLength);
}
subReader(offset) {
return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc);
return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);
}
readBytes(length) {
let bytes = this._peekBytes(0, length);
readBytes(length, loose) {
let bytes = this._peekBytes(0, length, !!loose);
this._offset += bytes.length;
// @TODO: Make sure the length..end bytes are all 0?
return bytes.slice(0, length);
@ -6604,8 +6610,6 @@ function unpack(reader, coders) {
let values = [];
// A reader anchored to this base
let baseReader = reader.subReader(0);
// The amount of dynamic data read; to consume later to synchronize
let dynamicLength = 0;
coders.forEach((coder) => {
let value = null;
if (coder.dynamic) {
@ -6624,7 +6628,6 @@ function unpack(reader, coders) {
value.name = coder.localName;
value.type = coder.type;
}
dynamicLength += offsetReader.consumed;
}
else {
try {
@ -6645,9 +6648,6 @@ function unpack(reader, coders) {
values.push(value);
}
});
// @TODO: get rid of this an see if it still works?
// Consume the dynamic components in the main reader
reader.readBytes(dynamicLength);
// We only output named properties for uniquely named coders
const uniqueNames = coders.reduce((accum, coder) => {
const name = coder.localName;
@ -6753,7 +6753,7 @@ class DynamicBytesCoder extends Coder {
return length;
}
decode(reader) {
return reader.readBytes(reader.readValue().toNumber());
return reader.readBytes(reader.readValue().toNumber(), true);
}
}
class BytesCoder extends DynamicBytesCoder {
@ -7412,8 +7412,8 @@ class AbiCoder {
return logger$a.throwArgumentError("invalid type", "type", param.type);
}
_getWordSize() { return 32; }
_getReader(data) {
return new Reader(data, this._getWordSize(), this.coerceFunc);
_getReader(data, allowLoose) {
return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);
}
_getWriter() {
return new Writer(this._getWordSize());
@ -7431,10 +7431,10 @@ class AbiCoder {
coder.encode(writer, values);
return writer.data;
}
decode(types, data) {
decode(types, data, loose) {
const coders = types.map((type) => this._getCoder(ParamType.from(type)));
const coder = new TupleCoder(coders, "_");
return coder.decode(this._getReader(arrayify(data)));
return coder.decode(this._getReader(arrayify(data), loose));
}
}
const defaultAbiCoder = new AbiCoder();
@ -7868,7 +7868,7 @@ class Interface {
}
});
let resultIndexed = (topics != null) ? this._abiCoder.decode(indexed, concat(topics)) : null;
let resultNonIndexed = this._abiCoder.decode(nonIndexed, data);
let resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);
let result = [];
let nonIndexedIndex = 0, indexedIndex = 0;
eventFragment.inputs.forEach((param, index) => {
@ -23871,7 +23871,7 @@ var utils$1 = /*#__PURE__*/Object.freeze({
Indexed: Indexed
});
const version$o = "ethers/5.0.11";
const version$o = "ethers/5.0.12";
"use strict";
const logger$E = new Logger(version$o);

File diff suppressed because one or more lines are too long

View File

@ -5061,7 +5061,7 @@
var _version$8 = createCommonjsModule(function (module, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = "abi/5.0.3";
exports.version = "abi/5.0.4";
});
@ -6002,10 +6002,11 @@
}());
exports.Writer = Writer;
var Reader = /** @class */ (function () {
function Reader(data, wordSize, coerceFunc) {
function Reader(data, wordSize, coerceFunc, allowLoose) {
lib$3.defineReadOnly(this, "_data", lib$1.arrayify(data));
lib$3.defineReadOnly(this, "wordSize", wordSize || 32);
lib$3.defineReadOnly(this, "_coerceFunc", coerceFunc);
lib$3.defineReadOnly(this, "allowLoose", allowLoose);
this._offset = 0;
}
Object.defineProperty(Reader.prototype, "data", {
@ -6032,21 +6033,26 @@
}
return Reader.coerce(name, value);
};
Reader.prototype._peekBytes = function (offset, length) {
Reader.prototype._peekBytes = function (offset, length, loose) {
var alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;
if (this._offset + alignedLength > this._data.length) {
if (this.allowLoose && loose && this._offset + length <= this._data.length) {
alignedLength = length;
}
else {
logger.throwError("data out-of-bounds", lib.Logger.errors.BUFFER_OVERRUN, {
length: this._data.length,
offset: this._offset + alignedLength
});
}
}
return this._data.slice(this._offset, this._offset + alignedLength);
};
Reader.prototype.subReader = function (offset) {
return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc);
return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);
};
Reader.prototype.readBytes = function (length) {
var bytes = this._peekBytes(0, length);
Reader.prototype.readBytes = function (length, loose) {
var bytes = this._peekBytes(0, length, !!loose);
this._offset += bytes.length;
// @TODO: Make sure the length..end bytes are all 0?
return bytes.slice(0, length);
@ -7034,8 +7040,6 @@
var values = [];
// A reader anchored to this base
var baseReader = reader.subReader(0);
// The amount of dynamic data read; to consume later to synchronize
var dynamicLength = 0;
coders.forEach(function (coder) {
var value = null;
if (coder.dynamic) {
@ -7054,7 +7058,6 @@
value.name = coder.localName;
value.type = coder.type;
}
dynamicLength += offsetReader.consumed;
}
else {
try {
@ -7075,9 +7078,6 @@
values.push(value);
}
});
// @TODO: get rid of this an see if it still works?
// Consume the dynamic components in the main reader
reader.readBytes(dynamicLength);
// We only output named properties for uniquely named coders
var uniqueNames = coders.reduce(function (accum, coder) {
var name = coder.localName;
@ -7241,7 +7241,7 @@
return length;
};
DynamicBytesCoder.prototype.decode = function (reader) {
return reader.readBytes(reader.readValue().toNumber());
return reader.readBytes(reader.readValue().toNumber(), true);
};
return DynamicBytesCoder;
}(abstractCoder.Coder));
@ -8164,8 +8164,8 @@
return logger.throwArgumentError("invalid type", "type", param.type);
};
AbiCoder.prototype._getWordSize = function () { return 32; };
AbiCoder.prototype._getReader = function (data) {
return new abstractCoder.Reader(data, this._getWordSize(), this.coerceFunc);
AbiCoder.prototype._getReader = function (data, allowLoose) {
return new abstractCoder.Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);
};
AbiCoder.prototype._getWriter = function () {
return new abstractCoder.Writer(this._getWordSize());
@ -8184,11 +8184,11 @@
coder.encode(writer, values);
return writer.data;
};
AbiCoder.prototype.decode = function (types, data) {
AbiCoder.prototype.decode = function (types, data, loose) {
var _this = this;
var coders = types.map(function (type) { return _this._getCoder(fragments.ParamType.from(type)); });
var coder = new tuple.TupleCoder(coders, "_");
return coder.decode(this._getReader(lib$1.arrayify(data)));
return coder.decode(this._getReader(lib$1.arrayify(data), loose));
};
return AbiCoder;
}());
@ -8707,7 +8707,7 @@
}
});
var resultIndexed = (topics != null) ? this._abiCoder.decode(indexed, lib$1.concat(topics)) : null;
var resultNonIndexed = this._abiCoder.decode(nonIndexed, data);
var resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);
var result = [];
var nonIndexedIndex = 0, indexedIndex = 0;
eventFragment.inputs.forEach(function (param, index) {
@ -27121,7 +27121,7 @@
var _version$M = createCommonjsModule(function (module, exports) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = "ethers/5.0.11";
exports.version = "ethers/5.0.12";
});

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
export declare const version = "ethers/5.0.11";
export declare const version = "ethers/5.0.12";

View File

@ -1,2 +1,2 @@
export const version = "ethers/5.0.11";
export const version = "ethers/5.0.12";
//# sourceMappingURL=_version.js.map

View File

@ -1 +1 @@
export declare const version = "ethers/5.0.11";
export declare const version = "ethers/5.0.12";

View File

@ -1,4 +1,4 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = "ethers/5.0.11";
exports.version = "ethers/5.0.12";
//# sourceMappingURL=_version.js.map

View File

@ -50,7 +50,7 @@
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"tarballHash": "0x1a2a6a4d32b1a2157504de2038370676ae2df70bbe763c4546d03e17d127116f",
"tarballHash": "0xb0ed5c45ed6327591f291bc9fe8bba5ff314ef7a0ae077fb0af1aab1aa2af25a",
"types": "./lib/index.d.ts",
"version": "5.0.11"
"version": "5.0.12"
}

View File

@ -1 +1 @@
export const version = "ethers/5.0.11";
export const version = "ethers/5.0.12";