Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@qevm/contracts

Package Overview
Dependencies
Maintainers
3
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@qevm/contracts - npm Package Compare versions

Comparing version
5.7.2
to
5.7.3
+1
-1
lib/_version.d.ts

@@ -1,2 +0,2 @@

export declare const version = "contracts/5.7.0";
export declare const version = "contracts/5.7.3";
//# sourceMappingURL=_version.d.ts.map
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.version = void 0;
exports.version = "contracts/5.7.0";
exports.version = "contracts/5.7.3";
//# sourceMappingURL=_version.js.map

@@ -148,3 +148,3 @@ import { Fragment, Indexed, Interface, JsonFragment, Result } from "@qevm/abi";

connect(signer: Signer): ContractFactory;
static fromSolidity(compilerOutput: any, signer?: Signer): ContractFactory;
static fromPurity(compilerOutput: any, signer?: Signer): ContractFactory;
static getInterface(contractInterface: ContractInterface): Interface;

@@ -151,0 +151,0 @@ static getContractAddress(tx: {

@@ -1,1 +0,1 @@

{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoC,QAAQ,EAAoB,OAAO,EAAE,SAAS,EAAE,YAAY,EAA6B,MAAM,EAAE,MAAM,WAAW,CAAC;AAC9J,OAAO,EAAE,KAAK,EAAE,QAAQ,EAA6B,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC3K,OAAO,EAAE,MAAM,EAAc,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAY,SAAS,EAAyC,MAAM,aAAa,CAAC;AAEzF,OAAO,EAAE,UAAU,EAAiB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAO9E,MAAM,WAAW,SAAS;IACtB,QAAQ,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAChD,QAAQ,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAChD,YAAY,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACpD,oBAAoB,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC5D,KAAK,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,aAAa,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IAC/C,KAAK,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACnD,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACnC;AAOD,MAAM,WAAW,oBAAoB;IACjC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,oBAAoB,CAAC,EAAE,SAAS,CAAC;IAEjC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,MAAM,WAAW,GAAG;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,GAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;CACxC,CAAC;AAGF,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAI5E,MAAM,WAAW,KAAM,SAAQ,GAAG;IAG9B,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,IAAI,CAAC,EAAE,MAAM,CAAC;IAGd,WAAW,CAAC,EAAE,KAAK,CAAC;IAGpB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC;IAGvD,cAAc,EAAE,MAAM,IAAI,CAAC;IAG3B,QAAQ,EAAE,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/B,cAAc,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACnD,qBAAqB,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACvD,MAAM,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC5D,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC1D;AAkWD,cAAM,YAAY;IACd,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,OAAO,CAAC,UAAU,CAA+C;gBAErD,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW;IAM5C,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAIpD,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IASxC,kBAAkB,IAAI,IAAI;IAI1B,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC;IAI5B,aAAa,IAAI,MAAM;IAIvB,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM;IAkB7B,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAIhC,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;CAGpC;AAsGD,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,aAAa,CAAC,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC;AAKrG,qBAAa,YAAY;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAE9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAE5B,QAAQ,CAAC,SAAS,EAAE;QAAE,CAAE,IAAI,EAAE,MAAM,GAAI,gBAAgB,CAAA;KAAE,CAAC;IAE3D,QAAQ,CAAC,UAAU,EAAE;QAAE,CAAE,IAAI,EAAE,MAAM,GAAI,gBAAgB,CAAA;KAAE,CAAC;IAC5D,QAAQ,CAAC,WAAW,EAAE;QAAE,CAAE,IAAI,EAAE,MAAM,GAAI,gBAAgB,CAAC,SAAS,CAAC,CAAA;KAAE,CAAC;IACxE,QAAQ,CAAC,mBAAmB,EAAE;QAAE,CAAE,IAAI,EAAE,MAAM,GAAI,gBAAgB,CAAC,oBAAoB,CAAC,CAAA;KAAE,CAAC;IAE3F,QAAQ,CAAC,OAAO,EAAE;QAAE,CAAE,IAAI,EAAE,MAAM,GAAI,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,WAAW,CAAA;KAAE,CAAC;IAI7E,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAG1C,QAAQ,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;IAEhD,gBAAgB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAGpC,cAAc,EAAE;QAAE,CAAE,QAAQ,EAAE,MAAM,GAAI,YAAY,CAAA;KAAE,CAAC;IAGvD,aAAa,EAAE;QAAE,CAAE,QAAQ,EAAE,MAAM,GAAI,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAA;KAAE,CAAC;gBAE3D,aAAa,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,QAAQ;IAyJ7G,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,GAAG,MAAM;IAIrF,MAAM,CAAC,YAAY,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,SAAS;IAQpE,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IAI7B,SAAS,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAmCjD,QAAQ,CAAC,SAAS,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAmBtE,OAAO,CAAC,gBAAgB,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ;IAc/D,MAAM,CAAC,aAAa,EAAE,MAAM,GAAG,QAAQ;IAIvC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,OAAO;IAI9C,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,gBAAgB;IAiDxB,mBAAmB,CAAC,YAAY,EAAE,YAAY,GAAG,IAAI;IAerD,UAAU,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,KAAK;IAmB3E,OAAO,CAAC,iBAAiB;IA4CzB,WAAW,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,EAAE,oBAAoB,CAAC,EAAE,QAAQ,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAmB7H,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKzD,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAK3D,IAAI,CAAC,SAAS,EAAE,WAAW,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO;IAYnE,aAAa,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,MAAM;IAUvD,SAAS,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC;IAgB5D,kBAAkB,CAAC,SAAS,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;IAoB1D,GAAG,CAAC,SAAS,EAAE,WAAW,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAQ9D,cAAc,CAAC,SAAS,EAAE,WAAW,GAAG,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAI5E;AAED,qBAAa,QAAS,SAAQ,YAAY;IAEtC,QAAQ,EAAG,GAAG,EAAE,MAAM,GAAI,gBAAgB,GAAG,GAAG,CAAC;CACpD;AAED,qBAAa,eAAe;IAExB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;gBAEZ,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,GAAG;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,CAAC,EAAE,MAAM;IAmC3G,oBAAoB,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,kBAAkB;IAyCvD,MAAM,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgCpD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ;IAIjC,OAAO,CAAC,MAAM,EAAE,MAAM;IAItB,MAAM,CAAC,YAAY,CAAC,cAAc,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,eAAe;IAqB1E,MAAM,CAAC,YAAY,CAAC,iBAAiB,EAAE,iBAAiB;IAIxD,MAAM,CAAC,kBAAkB,CAAC,EAAE,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAA;KAAE,GAAG,MAAM;IAI9F,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ;CAGvG"}
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"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"}

@@ -10,20 +10,27 @@ "use strict";

const bytes_1 = require("@qevm/bytes");
const properties_1 = require("@ethersproject/properties");
const properties_1 = require("@qevm/properties");
const transactions_1 = require("@qevm/transactions");
const logger_1 = require("@ethersproject/logger");
const logger_1 = require("@qevm/logger");
const _version_1 = require("./_version");
const logger = new logger_1.Logger(_version_1.version);
;
;
///////////////////////////////
const allowedTransactionKeys = {
chainId: true, data: true, from: true, gasLimit: true, gasPrice: true, nonce: true, to: true, value: true,
type: true, accessList: true,
maxFeePerGas: true, maxPriorityFeePerGas: true,
chainId: true,
data: true,
from: true,
gasLimit: true,
gasPrice: true,
nonce: true,
to: true,
value: true,
type: true,
accessList: true,
maxFeePerGas: true,
maxPriorityFeePerGas: true,
customData: true,
ccipReadEnabled: true
ccipReadEnabled: true,
};
async function resolveName(resolver, nameOrPromise) {
const name = await nameOrPromise;
if (typeof (name) !== "string") {
if (typeof name !== "string") {
logger.throwArgumentError("invalid address or ENS name", "name", name);

@@ -38,3 +45,3 @@ }

logger.throwError("a provider or signer is needed to resolve ENS names", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
operation: "resolveName"
operation: "resolveName",
});

@@ -52,3 +59,3 @@ }

return await Promise.all(paramType.map((paramType, index) => {
return resolveAddresses(resolver, ((Array.isArray(value)) ? value[index] : value[paramType.name]), paramType);
return resolveAddresses(resolver, Array.isArray(value) ? value[index] : value[paramType.name], paramType);
}));

@@ -66,3 +73,3 @@ }

argument: "value",
value
value,
}));

@@ -77,3 +84,4 @@ }

let overrides = {};
if (args.length === fragment.inputs.length + 1 && typeof (args[args.length - 1]) === "object") {
if (args.length === fragment.inputs.length + 1 &&
typeof args[args.length - 1] === "object") {
overrides = (0, properties_1.shallowCopy)(args.pop());

@@ -90,7 +98,7 @@ }

override: resolveName(contract.signer, overrides.from),
signer: contract.signer.getAddress()
signer: contract.signer.getAddress(),
}).then(async (check) => {
if ((0, address_1.getAddress)(check.signer) !== check.override) {
logger.throwError("Contract with a Signer cannot override from", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
operation: "overrides.from"
operation: "overrides.from",
});

@@ -116,3 +124,3 @@ }

address: contract.resolvedAddress,
overrides: ((0, properties_1.resolveProperties)(overrides) || {})
overrides: (0, properties_1.resolveProperties)(overrides) || {},
});

@@ -123,3 +131,3 @@ // The ABI coded transaction

data: data,
to: resolved.address
to: resolved.address,
};

@@ -176,3 +184,3 @@ // Resolved Overrides

operation: "overrides.value",
value: overrides.value
value: overrides.value,
});

@@ -202,7 +210,7 @@ }

// typo or using an unsupported key.
const leftovers = Object.keys(overrides).filter((key) => (overrides[key] != null));
const leftovers = Object.keys(overrides).filter((key) => overrides[key] != null);
if (leftovers.length) {
logger.throwError(`cannot override ${leftovers.map((l) => JSON.stringify(l)).join(",")}`, logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
operation: "overrides",
overrides: leftovers
overrides: leftovers,
});

@@ -218,7 +226,7 @@ }

function buildEstimate(contract, fragment) {
const signerOrProvider = (contract.signer || contract.provider);
const signerOrProvider = contract.signer || contract.provider;
return async function (...args) {
if (!signerOrProvider) {
logger.throwError("estimate require a provider or signer", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
operation: "estimateGas"
operation: "estimateGas",
});

@@ -251,3 +259,5 @@ }

// Useful operations
event.removeListener = () => { return contract.provider; };
event.removeListener = () => {
return contract.provider;
};
event.getBlock = () => {

@@ -269,7 +279,8 @@ return contract.provider.getBlock(receipt.blockHash);

function buildCall(contract, fragment, collapseSimple) {
const signerOrProvider = (contract.signer || contract.provider);
const signerOrProvider = contract.signer || contract.provider;
return async function (...args) {
// Extract the "blockTag" override if present
let blockTag = undefined;
if (args.length === fragment.inputs.length + 1 && typeof (args[args.length - 1]) === "object") {
if (args.length === fragment.inputs.length + 1 &&
typeof args[args.length - 1] === "object") {
const overrides = (0, properties_1.shallowCopy)(args.pop());

@@ -310,3 +321,3 @@ if (overrides.blockTag != null) {

logger.throwError("sending a transaction requires a signer", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
operation: "sendTransaction"
operation: "sendTransaction",
});

@@ -332,11 +343,18 @@ }

function getEventTag(filter) {
if (filter.address && (filter.topics == null || filter.topics.length === 0)) {
if (filter.address &&
(filter.topics == null || filter.topics.length === 0)) {
return "*";
}
return (filter.address || "*") + "@" + (filter.topics ? filter.topics.map((topic) => {
if (Array.isArray(topic)) {
return topic.join("|");
}
return topic;
}).join(":") : "");
return ((filter.address || "*") +
"@" +
(filter.topics
? filter.topics
.map((topic) => {
if (Array.isArray(topic)) {
return topic.join("|");
}
return topic;
})
.join(":")
: ""));
}

@@ -380,8 +398,7 @@ class RunningEvent {

// Reschedule it if it not "once"
return !(item.once);
return !item.once;
});
return listenerCount;
}
prepareEvent(event) {
}
prepareEvent(event) { }
// Returns the array that will be applied to an emit

@@ -405,3 +422,3 @@ getEmit(event) {

const filter = {
address: address
address: address,
};

@@ -507,3 +524,3 @@ let topic = contractInterface.getEventTopic(fragment);

address: this.address,
topics: this.interface.encodeFilterTopics(event, args)
topics: this.interface.encodeFilterTopics(event, args),
};

@@ -542,3 +559,3 @@ });

logger.throwError("provider is required to use ENS name as contract address", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
operation: "new Contract"
operation: "new Contract",
});

@@ -635,3 +652,5 @@ }

if (this.deployTransaction) {
this._deployedPromise = this.deployTransaction.wait().then(() => {
this._deployedPromise = this.deployTransaction
.wait()
.then(() => {
return this;

@@ -644,7 +663,9 @@ });

// Otherwise, poll for our code to be deployed
this._deployedPromise = this.provider.getCode(this.address, blockTag).then((code) => {
this._deployedPromise = this.provider
.getCode(this.address, blockTag)
.then((code) => {
if (code === "0x") {
logger.throwError("contract not deployed", logger_1.Logger.errors.UNSUPPORTED_OPERATION, {
contractAddress: this.address,
operation: "getDeployed"
operation: "getDeployed",
});

@@ -680,3 +701,3 @@ }

connect(signerOrProvider) {
if (typeof (signerOrProvider) === "string") {
if (typeof signerOrProvider === "string") {
signerOrProvider = new abstract_signer_1.VoidSigner(signerOrProvider, this.provider);

@@ -692,3 +713,3 @@ }

attach(addressOrName) {
return new (this.constructor)(addressOrName, this.interface, this.signer || this.provider);
return new this.constructor(addressOrName, this.interface, this.signer || this.provider);
}

@@ -706,3 +727,3 @@ static isIndexed(value) {

_getRunningEvent(eventName) {
if (typeof (eventName) === "string") {
if (typeof eventName === "string") {
// Listen for "error" events (if your contract has an error event, include

@@ -730,3 +751,3 @@ // the full signature to bypass this special event keyword)

const topic = eventName.topics[0];
if (typeof (topic) !== "string") {
if (typeof topic !== "string") {
throw new Error("invalid topic"); // @TODO: May happen for anonymous events

@@ -741,3 +762,3 @@ }

address: this.address,
topics: eventName.topics
topics: eventName.topics,
};

@@ -770,5 +791,11 @@ return this._normalizeRunningEvent(new RunningEvent(getEventTag(filter), filter));

};
event.getBlock = () => { return this.provider.getBlock(log.blockHash); };
event.getTransaction = () => { return this.provider.getTransaction(log.transactionHash); };
event.getTransactionReceipt = () => { return this.provider.getTransactionReceipt(log.transactionHash); };
event.getBlock = () => {
return this.provider.getBlock(log.blockHash);
};
event.getTransaction = () => {
return this.provider.getTransaction(log.transactionHash);
};
event.getTransactionReceipt = () => {
return this.provider.getTransactionReceipt(log.transactionHash);
};
// This may throw if the topics and data mismatch the signature

@@ -818,3 +845,4 @@ runningEvent.prepareEvent(event);

const filter = (0, properties_1.shallowCopy)(runningEvent.filter);
if (typeof (fromBlockOrBlockhash) === "string" && (0, bytes_1.isHexString)(fromBlockOrBlockhash, 32)) {
if (typeof fromBlockOrBlockhash === "string" &&
(0, bytes_1.isHexString)(fromBlockOrBlockhash, 32)) {
if (toBlock != null) {

@@ -826,4 +854,5 @@ logger.throwArgumentError("cannot specify toBlock with blockhash", "toBlock", toBlock);

else {
filter.fromBlock = ((fromBlockOrBlockhash != null) ? fromBlockOrBlockhash : 0);
filter.toBlock = ((toBlock != null) ? toBlock : "latest");
filter.fromBlock =
fromBlockOrBlockhash != null ? fromBlockOrBlockhash : 0;
filter.toBlock = toBlock != null ? toBlock : "latest";
}

@@ -847,3 +876,3 @@ return this.provider.getLogs(filter).then((logs) => {

const runningEvent = this._getRunningEvent(eventName);
const result = (runningEvent.run(args) > 0);
const result = runningEvent.run(args) > 0;
// May have drained all the "once" events; check for living events

@@ -917,3 +946,3 @@ this._checkRunningEvents(runningEvent);

let bytecodeHex = null;
if (typeof (bytecode) === "string") {
if (typeof bytecode === "string") {
bytecodeHex = bytecode;

@@ -924,3 +953,3 @@ }

}
else if (bytecode && typeof (bytecode.object) === "string") {
else if (bytecode && typeof bytecode.object === "string") {
// Allow the bytecode object from the Solidity compiler

@@ -938,3 +967,3 @@ bytecodeHex = bytecode.object;

// Make sure the final result is valid bytecode
if (!(0, bytes_1.isHexString)(bytecodeHex) || (bytecodeHex.length % 2)) {
if (!(0, bytes_1.isHexString)(bytecodeHex) || bytecodeHex.length % 2) {
logger.throwArgumentError("invalid bytecode", "bytecode", bytecode);

@@ -954,3 +983,4 @@ }

// If we have 1 additional argument, we allow transaction overrides
if (args.length === this.interface.deploy.inputs.length + 1 && typeof (args[args.length - 1]) === "object") {
if (args.length === this.interface.deploy.inputs.length + 1 &&
typeof args[args.length - 1] === "object") {
tx = (0, properties_1.shallowCopy)(args.pop());

@@ -975,3 +1005,3 @@ for (const key in tx) {

operation: "overrides.value",
value: tx.value
value: tx.value,
});

@@ -983,6 +1013,3 @@ }

// Set the data to the bytecode + the encoded constructor arguments
tx.data = (0, bytes_1.hexlify)((0, bytes_1.concat)([
this.bytecode,
this.interface.encodeDeploy(args)
]));
tx.data = (0, bytes_1.hexlify)((0, bytes_1.concat)([this.bytecode, this.interface.encodeDeploy(args)]));
return tx;

@@ -1013,3 +1040,3 @@ }

attach(address) {
return (this.constructor).getContract(address, this.interface, this.signer);
return this.constructor.getContract(address, this.interface, this.signer);
}

@@ -1019,7 +1046,7 @@ connect(signer) {

}
static fromSolidity(compilerOutput, signer) {
static fromPurity(compilerOutput, signer) {
if (compilerOutput == null) {
logger.throwError("missing compiler output", logger_1.Logger.errors.MISSING_ARGUMENT, { argument: "compilerOutput" });
}
if (typeof (compilerOutput) === "string") {
if (typeof compilerOutput === "string") {
compilerOutput = JSON.parse(compilerOutput);

@@ -1026,0 +1053,0 @@ }

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src.ts/index.ts"],"names":[],"mappings":"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"}
{
"author": "Eugene Kuleshov",
"dependencies": {
"@qevm/abi": "^5.7.0",
"@qevm/abstract-provider": "^5.7.0",
"@qevm/abstract-signer": "^5.7.1",
"@qevm/address": "^5.7.0",
"@qevm/bignumber": "^5.7.0",
"@qevm/bytes": "5.7.1",
"@qevm/constants": "^5.7.0",
"@ethersproject/logger": "^5.7.0",
"@ethersproject/properties": "^5.7.0",
"@qevm/transactions": "^5.7.1"
},
"description": "Contract abstraction meta-class for qethers.",
"keywords": [
"qEthereum",
"qethers"
],
"license": "MIT",
"main": "./lib/index.js",
"module": "./lib.esm/index.js",
"name": "@qevm/contracts",
"publishConfig": {
"access": "public"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"sideEffects": false,
"tarballHash": "0x186a0093d358545fe0bf9282147dc719ccce205447b02766489e395d0b8af9fc",
"types": "./lib/index.d.ts",
"version": "5.7.2"
"contributors": [
"Eugene Kuleshov <kulevgen32@gmail.com>",
"Richard Moore <me@ricmoo.com>"
],
"dependencies": {
"@qevm/abi": "^5.7.3",
"@qevm/abstract-provider": "^5.7.4",
"@qevm/abstract-signer": "^5.7.3",
"@qevm/address": "^5.7.3",
"@qevm/bignumber": "^5.7.1",
"@qevm/bytes": "^5.7.2",
"@qevm/constants": "^5.7.2",
"@qevm/logger": "^5.7.1",
"@qevm/properties": "^5.7.1",
"@qevm/transactions": "^5.7.3"
},
"description": "Contract abstraction meta-class for qethers.",
"keywords": [
"QEVM",
"QuantumEVM",
"qethers"
],
"license": "MIT",
"main": "./lib/index.js",
"module": "./lib.esm/index.js",
"name": "@qevm/contracts",
"publishConfig": {
"access": "public"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"sideEffects": false,
"tarballHash": "0x186a0093d358545fe0bf9282147dc719ccce205447b02766489e395d0b8af9fc",
"types": "./lib/index.d.ts",
"version": "5.7.3"
}

@@ -1,5 +0,5 @@

Ethereum Contract Meta-Class
QuantumEVM Contract Meta-Class
============================
This sub-module is part of the [ethers project](https://github.com/ethers-io/ethers.js).
This sub-module is part of the qethers, a fork of [ethers project](https://github.com/ethers-io/ethers.js).

@@ -11,3 +11,2 @@ It is creating (at run-time) an object which interacts with an on-chain

For more information, see the [documentation](https://docs.ethers.io/v5/api/contract/).

@@ -17,3 +16,3 @@ Importing

Most users will prefer to use the [umbrella package](https://www.npmjs.com/package/ethers),
Most users will prefer to use the [umbrella package](https://www.npmjs.com/package/@qevm/qethers),
but for those with more specific needs, individual components can be imported.

@@ -47,3 +46,3 @@

} = require("@ethersproject/contracts");
} = require("@qevm/contracts");
```

@@ -50,0 +49,0 @@

@@ -1,1 +0,1 @@

export const version = "contracts/5.7.0";
export const version = "contracts/5.7.3";
"use strict";
import { checkResultErrors, EventFragment, Fragment, FunctionFragment, Indexed, Interface, JsonFragment, LogDescription, ParamType, Result } from "@qevm/abi";
import { Block, BlockTag, Filter, FilterByBlockHash, Listener, Log, Provider, TransactionReceipt, TransactionRequest, TransactionResponse } from "@qevm/abstract-provider";
import {
checkResultErrors,
EventFragment,
Fragment,
FunctionFragment,
Indexed,
Interface,
JsonFragment,
LogDescription,
ParamType,
Result,
} from "@qevm/abi";
import {
Block,
BlockTag,
Filter,
FilterByBlockHash,
Listener,
Log,
Provider,
TransactionReceipt,
TransactionRequest,
TransactionResponse,
} from "@qevm/abstract-provider";
import { Signer, VoidSigner } from "@qevm/abstract-signer";
import { getAddress, getContractAddress } from "@qevm/address";
import { BigNumber, BigNumberish } from "@qevm/bignumber";
import { arrayify, BytesLike, concat, hexlify, isBytes, isHexString } from "@qevm/bytes";
import { Deferrable, defineReadOnly, deepCopy, getStatic, resolveProperties, shallowCopy } from "@ethersproject/properties";
import {
arrayify,
BytesLike,
concat,
hexlify,
isBytes,
isHexString,
} from "@qevm/bytes";
import {
Deferrable,
defineReadOnly,
deepCopy,
getStatic,
resolveProperties,
shallowCopy,
} from "@qevm/properties";
import { AccessList, accessListify, AccessListish } from "@qevm/transactions";
import { Logger } from "@ethersproject/logger";
import { Logger } from "@qevm/logger";
import { version } from "./_version";

@@ -27,3 +63,3 @@

ccipReadEnabled?: boolean;
};
}

@@ -64,16 +100,13 @@ export interface PayableOverrides extends Overrides {

ccipReadEnabled?: boolean;
};
}
export type EventFilter = {
address?: string;
topics?: Array<string|Array<string>>;
topics?: Array<string | Array<string>>;
};
export type ContractFunction<T = any> = (...args: Array<any>) => Promise<T>;
// The (n + 1)th parameter passed to contract event callbacks
export interface Event extends Log {
// The event name

@@ -113,14 +146,26 @@ event?: string;

const allowedTransactionKeys: { [ key: string ]: boolean } = {
chainId: true, data: true, from: true, gasLimit: true, gasPrice:true, nonce: true, to: true, value: true,
type: true, accessList: true,
maxFeePerGas: true, maxPriorityFeePerGas: true,
const allowedTransactionKeys: { [key: string]: boolean } = {
chainId: true,
data: true,
from: true,
gasLimit: true,
gasPrice: true,
nonce: true,
to: true,
value: true,
type: true,
accessList: true,
maxFeePerGas: true,
maxPriorityFeePerGas: true,
customData: true,
ccipReadEnabled: true
}
ccipReadEnabled: true,
};
async function resolveName(resolver: Signer | Provider, nameOrPromise: string | Promise<string>): Promise<string> {
async function resolveName(
resolver: Signer | Provider,
nameOrPromise: string | Promise<string>,
): Promise<string> {
const name = await nameOrPromise;
if (typeof(name) !== "string") {
if (typeof name !== "string") {
logger.throwArgumentError("invalid address or ENS name", "name", name);

@@ -132,8 +177,12 @@ }

return getAddress(name);
} catch (error) { }
} catch (error) {}
if (!resolver) {
logger.throwError("a provider or signer is needed to resolve ENS names", Logger.errors.UNSUPPORTED_OPERATION, {
operation: "resolveName"
});
logger.throwError(
"a provider or signer is needed to resolve ENS names",
Logger.errors.UNSUPPORTED_OPERATION,
{
operation: "resolveName",
},
);
}

@@ -144,3 +193,7 @@

if (address == null) {
logger.throwArgumentError("resolver or addr is not configured for ENS name", "name", name);
logger.throwArgumentError(
"resolver or addr is not configured for ENS name",
"name",
name,
);
}

@@ -152,11 +205,17 @@

// Recursively replaces ENS names with promises to resolve the name and resolves all properties
async function resolveAddresses(resolver: Signer | Provider, value: any, paramType: ParamType | Array<ParamType>): Promise<any> {
async function resolveAddresses(
resolver: Signer | Provider,
value: any,
paramType: ParamType | Array<ParamType>,
): Promise<any> {
if (Array.isArray(paramType)) {
return await Promise.all(paramType.map((paramType, index) => {
return resolveAddresses(
resolver,
((Array.isArray(value)) ? value[index]: value[paramType.name]),
paramType
);
}));
return await Promise.all(
paramType.map((paramType, index) => {
return resolveAddresses(
resolver,
Array.isArray(value) ? value[index] : value[paramType.name],
paramType,
);
}),
);
}

@@ -174,8 +233,18 @@

if (!Array.isArray(value)) {
return Promise.reject(logger.makeError("invalid value for array", Logger.errors.INVALID_ARGUMENT, {
argument: "value",
value
}));
return Promise.reject(
logger.makeError(
"invalid value for array",
Logger.errors.INVALID_ARGUMENT,
{
argument: "value",
value,
},
),
);
}
return await Promise.all(value.map((v) => resolveAddresses(resolver, v, paramType.arrayChildren)));
return await Promise.all(
value.map((v) =>
resolveAddresses(resolver, v, paramType.arrayChildren),
),
);
}

@@ -186,6 +255,13 @@

async function populateTransaction(contract: Contract, fragment: FunctionFragment, args: Array<any>): Promise<PopulatedTransaction> {
async function populateTransaction(
contract: Contract,
fragment: FunctionFragment,
args: Array<any>,
): Promise<PopulatedTransaction> {
// If an extra argument is given, it is overrides
let overrides: CallOverrides = { };
if (args.length === fragment.inputs.length + 1 && typeof(args[args.length - 1]) === "object") {
let overrides: CallOverrides = {};
if (
args.length === fragment.inputs.length + 1 &&
typeof args[args.length - 1] === "object"
) {
overrides = shallowCopy(args.pop());

@@ -195,3 +271,7 @@ }

// Make sure the parameter count matches
logger.checkArgumentCount(args.length, fragment.inputs.length, "passed to contract");
logger.checkArgumentCount(
args.length,
fragment.inputs.length,
"passed to contract",
);

@@ -205,8 +285,12 @@ // Populate "from" override (allow promises)

override: resolveName(contract.signer, overrides.from),
signer: contract.signer.getAddress()
signer: contract.signer.getAddress(),
}).then(async (check) => {
if (getAddress(check.signer) !== check.override) {
logger.throwError("Contract with a Signer cannot override from", Logger.errors.UNSUPPORTED_OPERATION, {
operation: "overrides.from"
});
logger.throwError(
"Contract with a Signer cannot override from",
Logger.errors.UNSUPPORTED_OPERATION,
{
operation: "overrides.from",
},
);
}

@@ -216,11 +300,9 @@

});
} else {
overrides.from = contract.signer.getAddress();
}
} else if (overrides.from) {
overrides.from = resolveName(contract.provider, overrides.from);
//} else {
//} else {
// Contracts without a signer can override "from", and if

@@ -233,5 +315,9 @@ // unspecified the zero address is used

const resolved = await resolveProperties({
args: resolveAddresses(contract.signer || contract.provider, args, fragment.inputs),
args: resolveAddresses(
contract.signer || contract.provider,
args,
fragment.inputs,
),
address: contract.resolvedAddress,
overrides: (resolveProperties(overrides) || { })
overrides: resolveProperties(overrides) || {},
});

@@ -242,4 +328,4 @@

const tx: PopulatedTransaction = {
data: data,
to: resolved.address
data: data,
to: resolved.address,
};

@@ -251,11 +337,27 @@

// Populate simple overrides
if (ro.nonce != null) { tx.nonce = BigNumber.from(ro.nonce).toNumber(); }
if (ro.gasLimit != null) { tx.gasLimit = BigNumber.from(ro.gasLimit); }
if (ro.gasPrice != null) { tx.gasPrice = BigNumber.from(ro.gasPrice); }
if (ro.maxFeePerGas != null) { tx.maxFeePerGas = BigNumber.from(ro.maxFeePerGas); }
if (ro.maxPriorityFeePerGas != null) { tx.maxPriorityFeePerGas = BigNumber.from(ro.maxPriorityFeePerGas); }
if (ro.from != null) { tx.from = ro.from; }
if (ro.nonce != null) {
tx.nonce = BigNumber.from(ro.nonce).toNumber();
}
if (ro.gasLimit != null) {
tx.gasLimit = BigNumber.from(ro.gasLimit);
}
if (ro.gasPrice != null) {
tx.gasPrice = BigNumber.from(ro.gasPrice);
}
if (ro.maxFeePerGas != null) {
tx.maxFeePerGas = BigNumber.from(ro.maxFeePerGas);
}
if (ro.maxPriorityFeePerGas != null) {
tx.maxPriorityFeePerGas = BigNumber.from(ro.maxPriorityFeePerGas);
}
if (ro.from != null) {
tx.from = ro.from;
}
if (ro.type != null) { tx.type = ro.type; }
if (ro.accessList != null) { tx.accessList = accessListify(ro.accessList); }
if (ro.type != null) {
tx.type = ro.type;
}
if (ro.accessList != null) {
tx.accessList = accessListify(ro.accessList);
}

@@ -273,3 +375,5 @@ // If there was no "gasLimit" override, but the ABI specifies a default, use it

intrinsic += 4;
if (bytes[i]) { intrinsic += 64; }
if (bytes[i]) {
intrinsic += 64;
}
}

@@ -283,6 +387,10 @@ tx.gasLimit = BigNumber.from(fragment.gas).add(intrinsic);

if (!roValue.isZero() && !fragment.payable) {
logger.throwError("non-payable method cannot override value", Logger.errors.UNSUPPORTED_OPERATION, {
operation: "overrides.value",
value: overrides.value
});
logger.throwError(
"non-payable method cannot override value",
Logger.errors.UNSUPPORTED_OPERATION,
{
operation: "overrides.value",
value: overrides.value,
},
);
}

@@ -318,8 +426,14 @@ tx.value = roValue;

// typo or using an unsupported key.
const leftovers = Object.keys(overrides).filter((key) => ((<any>overrides)[key] != null));
const leftovers = Object.keys(overrides).filter(
(key) => (<any>overrides)[key] != null,
);
if (leftovers.length) {
logger.throwError(`cannot override ${ leftovers.map((l) => JSON.stringify(l)).join(",") }`, Logger.errors.UNSUPPORTED_OPERATION, {
operation: "overrides",
overrides: leftovers
});
logger.throwError(
`cannot override ${leftovers.map((l) => JSON.stringify(l)).join(",")}`,
Logger.errors.UNSUPPORTED_OPERATION,
{
operation: "overrides",
overrides: leftovers,
},
);
}

@@ -330,5 +444,7 @@

function buildPopulate(contract: Contract, fragment: FunctionFragment): ContractFunction<PopulatedTransaction> {
return function(...args: Array<any>): Promise<PopulatedTransaction> {
function buildPopulate(
contract: Contract,
fragment: FunctionFragment,
): ContractFunction<PopulatedTransaction> {
return function (...args: Array<any>): Promise<PopulatedTransaction> {
return populateTransaction(contract, fragment, args);

@@ -338,9 +454,16 @@ };

function buildEstimate(contract: Contract, fragment: FunctionFragment): ContractFunction<BigNumber> {
const signerOrProvider = (contract.signer || contract.provider);
return async function(...args: Array<any>): Promise<BigNumber> {
function buildEstimate(
contract: Contract,
fragment: FunctionFragment,
): ContractFunction<BigNumber> {
const signerOrProvider = contract.signer || contract.provider;
return async function (...args: Array<any>): Promise<BigNumber> {
if (!signerOrProvider) {
logger.throwError("estimate require a provider or signer", Logger.errors.UNSUPPORTED_OPERATION, {
operation: "estimateGas"
})
logger.throwError(
"estimate require a provider or signer",
Logger.errors.UNSUPPORTED_OPERATION,
{
operation: "estimateGas",
},
);
}

@@ -358,7 +481,7 @@

receipt.events = receipt.logs.map((log) => {
let event: Event = (<Event>deepCopy(log));
let event: Event = <Event>deepCopy(log);
let parsed: LogDescription = null;
try {
parsed = contract.interface.parseLog(log);
} catch (e){ }
} catch (e) {}

@@ -369,3 +492,7 @@ // Successfully parsed the event log; include it

event.decode = (data: BytesLike, topics?: Array<any>) => {
return contract.interface.decodeEventLog(parsed.eventFragment, data, topics);
return contract.interface.decodeEventLog(
parsed.eventFragment,
data,
topics,
);
};

@@ -377,12 +504,16 @@ event.event = parsed.name;

// Useful operations
event.removeListener = () => { return contract.provider; }
event.removeListener = () => {
return contract.provider;
};
event.getBlock = () => {
return contract.provider.getBlock(receipt.blockHash);
}
};
event.getTransaction = () => {
return contract.provider.getTransaction(receipt.transactionHash);
}
return contract.provider.getTransaction(
receipt.transactionHash,
);
};
event.getTransactionReceipt = () => {
return Promise.resolve(receipt);
}
};

@@ -397,9 +528,16 @@ return event;

function buildCall(contract: Contract, fragment: FunctionFragment, collapseSimple: boolean): ContractFunction {
const signerOrProvider = (contract.signer || contract.provider);
function buildCall(
contract: Contract,
fragment: FunctionFragment,
collapseSimple: boolean,
): ContractFunction {
const signerOrProvider = contract.signer || contract.provider;
return async function(...args: Array<any>): Promise<any> {
return async function (...args: Array<any>): Promise<any> {
// Extract the "blockTag" override if present
let blockTag = undefined;
if (args.length === fragment.inputs.length + 1 && typeof(args[args.length - 1]) === "object") {
if (
args.length === fragment.inputs.length + 1 &&
typeof args[args.length - 1] === "object"
) {
const overrides = shallowCopy(args.pop());

@@ -423,3 +561,6 @@ if (overrides.blockTag != null) {

try {
let value = contract.interface.decodeFunctionResult(fragment, result);
let value = contract.interface.decodeFunctionResult(
fragment,
result,
);
if (collapseSimple && fragment.outputs.length === 1) {

@@ -429,3 +570,2 @@ value = value[0];

return value;
} catch (error) {

@@ -438,12 +578,19 @@ if (error.code === Logger.errors.CALL_EXCEPTION) {

throw error;
}
}
};
}
function buildSend(contract: Contract, fragment: FunctionFragment): ContractFunction<TransactionResponse> {
return async function(...args: Array<any>): Promise<TransactionResponse> {
function buildSend(
contract: Contract,
fragment: FunctionFragment,
): ContractFunction<TransactionResponse> {
return async function (...args: Array<any>): Promise<TransactionResponse> {
if (!contract.signer) {
logger.throwError("sending a transaction requires a signer", Logger.errors.UNSUPPORTED_OPERATION, {
operation: "sendTransaction"
})
logger.throwError(
"sending a transaction requires a signer",
Logger.errors.UNSUPPORTED_OPERATION,
{
operation: "sendTransaction",
},
);
}

@@ -467,3 +614,7 @@

function buildDefault(contract: Contract, fragment: FunctionFragment, collapseSimple: boolean): ContractFunction {
function buildDefault(
contract: Contract,
fragment: FunctionFragment,
collapseSimple: boolean,
): ContractFunction {
if (fragment.constant) {

@@ -476,12 +627,23 @@ return buildCall(contract, fragment, collapseSimple);

function getEventTag(filter: EventFilter): string {
if (filter.address && (filter.topics == null || filter.topics.length === 0)) {
if (
filter.address &&
(filter.topics == null || filter.topics.length === 0)
) {
return "*";
}
return (filter.address || "*") + "@" + (filter.topics ? filter.topics.map((topic) => {
if (Array.isArray(topic)) {
return topic.join("|");
}
return topic;
}).join(":"): "");
return (
(filter.address || "*") +
"@" +
(filter.topics
? filter.topics
.map((topic) => {
if (Array.isArray(topic)) {
return topic.join("|");
}
return topic;
})
.join(":")
: "")
);
}

@@ -492,3 +654,3 @@

readonly filter: EventFilter;
private _listeners: Array<{ listener: Listener, once: boolean }>;
private _listeners: Array<{ listener: Listener; once: boolean }>;

@@ -498,3 +660,3 @@ constructor(tag: string, filter: EventFilter) {

defineReadOnly(this, "filter", filter);
this._listeners = [ ];
this._listeners = [];
}

@@ -509,3 +671,5 @@

this._listeners = this._listeners.filter((item) => {
if (done || item.listener !== listener) { return true; }
if (done || item.listener !== listener) {
return true;
}
done = true;

@@ -531,3 +695,2 @@ return false;

this._listeners = this._listeners.filter((item) => {
const argsCopy = args.slice();

@@ -541,3 +704,3 @@

// Reschedule it if it not "once"
return !(item.once);
return !item.once;
});

@@ -548,8 +711,7 @@

prepareEvent(event: Event): void {
}
prepareEvent(event: Event): void {}
// Returns the array that will be applied to an emit
getEmit(event: Event): Array<any> {
return [ event ];
return [event];
}

@@ -564,3 +726,2 @@ }

// @TODO Fragment should inherit Wildcard? and just override getEmit?

@@ -577,13 +738,20 @@ // or have a common abstract super class, with enough constructor

constructor(address: string, contractInterface: Interface, fragment: EventFragment, topics?: Array<string|Array<string>>) {
constructor(
address: string,
contractInterface: Interface,
fragment: EventFragment,
topics?: Array<string | Array<string>>,
) {
const filter: EventFilter = {
address: address
}
address: address,
};
let topic = contractInterface.getEventTopic(fragment);
if (topics) {
if (topic !== topics[0]) { logger.throwArgumentError("topic mismatch", "topics", topics); }
if (topic !== topics[0]) {
logger.throwArgumentError("topic mismatch", "topics", topics);
}
filter.topics = topics.slice();
} else {
filter.topics = [ topic ];
filter.topics = [topic];
}

@@ -597,3 +765,2 @@

prepareEvent(event: Event): void {

@@ -610,3 +777,7 @@ super.prepareEvent(event);

try {
event.args = this.interface.decodeEventLog(this.fragment, event.data, event.topics);
event.args = this.interface.decodeEventLog(
this.fragment,
event.data,
event.topics,
);
} catch (error) {

@@ -620,3 +791,5 @@ event.args = null;

const errors = checkResultErrors(event.args);
if (errors.length) { throw errors[0].error; }
if (errors.length) {
throw errors[0].error;
}

@@ -653,3 +826,7 @@ const args = (event.args || []).slice();

event.decode = (data: BytesLike, topics?: Array<string>) => {
return this.interface.decodeEventLog(parsed.eventFragment, data, topics);
return this.interface.decodeEventLog(
parsed.eventFragment,
data,
topics,
);
};

@@ -664,7 +841,9 @@

export type ContractInterface = string | ReadonlyArray<Fragment | JsonFragment | string> | Interface;
export type ContractInterface =
| string
| ReadonlyArray<Fragment | JsonFragment | string>
| Interface;
type InterfaceFunc = (contractInterface: ContractInterface) => Interface;
export class BaseContract {

@@ -677,9 +856,11 @@ readonly address: string;

readonly functions: { [ name: string ]: ContractFunction };
readonly functions: { [name: string]: ContractFunction };
readonly callStatic: { [ name: string ]: ContractFunction };
readonly estimateGas: { [ name: string ]: ContractFunction<BigNumber> };
readonly populateTransaction: { [ name: string ]: ContractFunction<PopulatedTransaction> };
readonly callStatic: { [name: string]: ContractFunction };
readonly estimateGas: { [name: string]: ContractFunction<BigNumber> };
readonly populateTransaction: {
[name: string]: ContractFunction<PopulatedTransaction>;
};
readonly filters: { [ name: string ]: (...args: Array<any>) => EventFilter };
readonly filters: { [name: string]: (...args: Array<any>) => EventFilter };

@@ -696,11 +877,22 @@ // This will always be an address. This will only differ from

// A list of RunningEvents to track listeners for each event tag
_runningEvents: { [ eventTag: string ]: RunningEvent };
_runningEvents: { [eventTag: string]: RunningEvent };
// Wrapped functions to call emit and allow deregistration from the provider
_wrappedEmits: { [ eventTag: string ]: (...args: Array<any>) => void };
_wrappedEmits: { [eventTag: string]: (...args: Array<any>) => void };
constructor(addressOrName: string, contractInterface: ContractInterface, signerOrProvider?: Signer | Provider) {
constructor(
addressOrName: string,
contractInterface: ContractInterface,
signerOrProvider?: Signer | Provider,
) {
// @TODO: Maybe still check the addressOrName looks like a valid address or name?
//address = getAddress(address);
defineReadOnly(this, "interface", getStatic<InterfaceFunc>(new.target, "getInterface")(contractInterface));
defineReadOnly(
this,
"interface",
getStatic<InterfaceFunc>(
new.target,
"getInterface",
)(contractInterface),
);

@@ -717,23 +909,36 @@ if (signerOrProvider == null) {

} else {
logger.throwArgumentError("invalid signer or provider", "signerOrProvider", signerOrProvider);
logger.throwArgumentError(
"invalid signer or provider",
"signerOrProvider",
signerOrProvider,
);
}
defineReadOnly(this, "callStatic", { });
defineReadOnly(this, "estimateGas", { });
defineReadOnly(this, "functions", { });
defineReadOnly(this, "populateTransaction", { });
defineReadOnly(this, "callStatic", {});
defineReadOnly(this, "estimateGas", {});
defineReadOnly(this, "functions", {});
defineReadOnly(this, "populateTransaction", {});
defineReadOnly(this, "filters", { });
defineReadOnly(this, "filters", {});
{
const uniqueFilters: { [ name: string ]: Array<string> } = { };
const uniqueFilters: { [name: string]: Array<string> } = {};
Object.keys(this.interface.events).forEach((eventSignature) => {
const event = this.interface.events[eventSignature];
defineReadOnly(this.filters, eventSignature, (...args: Array<any>) => {
return {
address: this.address,
topics: this.interface.encodeFilterTopics(event, args)
}
});
if (!uniqueFilters[event.name]) { uniqueFilters[event.name] = [ ]; }
defineReadOnly(
this.filters,
eventSignature,
(...args: Array<any>) => {
return {
address: this.address,
topics: this.interface.encodeFilterTopics(
event,
args,
),
};
},
);
if (!uniqueFilters[event.name]) {
uniqueFilters[event.name] = [];
}
uniqueFilters[event.name].push(eventSignature);

@@ -745,5 +950,11 @@ });

if (filters.length === 1) {
defineReadOnly(this.filters, name, this.filters[filters[0]]);
defineReadOnly(
this.filters,
name,
this.filters[filters[0]],
);
} else {
logger.warn(`Duplicate definition of ${ name } (${ filters.join(", ")})`);
logger.warn(
`Duplicate definition of ${name} (${filters.join(", ")})`,
);
}

@@ -753,7 +964,11 @@ });

defineReadOnly(this, "_runningEvents", { });
defineReadOnly(this, "_wrappedEmits", { });
defineReadOnly(this, "_runningEvents", {});
defineReadOnly(this, "_wrappedEmits", {});
if (addressOrName == null) {
logger.throwArgumentError("invalid contract address or ENS name", "addressOrName", addressOrName);
logger.throwArgumentError(
"invalid contract address or ENS name",
"addressOrName",
addressOrName,
);
}

@@ -763,11 +978,23 @@

if (this.provider) {
defineReadOnly(this, "resolvedAddress", resolveName(this.provider, addressOrName));
defineReadOnly(
this,
"resolvedAddress",
resolveName(this.provider, addressOrName),
);
} else {
try {
defineReadOnly(this, "resolvedAddress", Promise.resolve(getAddress(addressOrName)));
defineReadOnly(
this,
"resolvedAddress",
Promise.resolve(getAddress(addressOrName)),
);
} catch (error) {
// Without a provider, we cannot use ENS names
logger.throwError("provider is required to use ENS name as contract address", Logger.errors.UNSUPPORTED_OPERATION, {
operation: "new Contract"
});
logger.throwError(
"provider is required to use ENS name as contract address",
Logger.errors.UNSUPPORTED_OPERATION,
{
operation: "new Contract",
},
);
}

@@ -777,6 +1004,6 @@ }

// Swallow bad ENS names to prevent Unhandled Exceptions
this.resolvedAddress.catch((e) => { });
this.resolvedAddress.catch((e) => {});
const uniqueNames: { [ name: string ]: Array<string> } = { };
const uniqueSignatures: { [ signature: string ]: boolean } = { };
const uniqueNames: { [name: string]: Array<string> } = {};
const uniqueSignatures: { [signature: string]: boolean } = {};
Object.keys(this.interface.functions).forEach((signature) => {

@@ -788,3 +1015,5 @@ const fragment = this.interface.functions[signature];

if (uniqueSignatures[signature]) {
logger.warn(`Duplicate ABI entry for ${ JSON.stringify(signature) }`);
logger.warn(
`Duplicate ABI entry for ${JSON.stringify(signature)}`,
);
return;

@@ -798,8 +1027,14 @@ }

const name = fragment.name;
if (!uniqueNames[`%${ name }`]) { uniqueNames[`%${ name }`] = [ ]; }
uniqueNames[`%${ name }`].push(signature);
if (!uniqueNames[`%${name}`]) {
uniqueNames[`%${name}`] = [];
}
uniqueNames[`%${name}`].push(signature);
}
if ((<Contract>this)[signature] == null) {
defineReadOnly<any, any>(this, signature, buildDefault(this, fragment, true));
defineReadOnly<any, any>(
this,
signature,
buildDefault(this, fragment, true),
);
}

@@ -811,15 +1046,31 @@

if (this.functions[signature] == null) {
defineReadOnly(this.functions, signature, buildDefault(this, fragment, false));
defineReadOnly(
this.functions,
signature,
buildDefault(this, fragment, false),
);
}
if (this.callStatic[signature] == null) {
defineReadOnly(this.callStatic, signature, buildCall(this, fragment, true));
defineReadOnly(
this.callStatic,
signature,
buildCall(this, fragment, true),
);
}
if (this.populateTransaction[signature] == null) {
defineReadOnly(this.populateTransaction, signature, buildPopulate(this, fragment));
defineReadOnly(
this.populateTransaction,
signature,
buildPopulate(this, fragment),
);
}
if (this.estimateGas[signature] == null) {
defineReadOnly(this.estimateGas, signature, buildEstimate(this, fragment));
defineReadOnly(
this.estimateGas,
signature,
buildEstimate(this, fragment),
);
}

@@ -831,3 +1082,5 @@ });

const signatures = uniqueNames[name];
if (signatures.length > 1) { return; }
if (signatures.length > 1) {
return;
}

@@ -842,5 +1095,9 @@ // Strip off the leading "%" used for prototype protection

if ((<Contract>this)[name] == null) {
defineReadOnly(<Contract>this, name, (<Contract>this)[signature]);
defineReadOnly(
<Contract>this,
name,
(<Contract>this)[signature],
);
}
} catch (e) { }
} catch (e) {}

@@ -852,11 +1109,23 @@ if (this.functions[name] == null) {

if (this.callStatic[name] == null) {
defineReadOnly(this.callStatic, name, this.callStatic[signature]);
defineReadOnly(
this.callStatic,
name,
this.callStatic[signature],
);
}
if (this.populateTransaction[name] == null) {
defineReadOnly(this.populateTransaction, name, this.populateTransaction[signature]);
defineReadOnly(
this.populateTransaction,
name,
this.populateTransaction[signature],
);
}
if (this.estimateGas[name] == null) {
defineReadOnly(this.estimateGas, name, this.estimateGas[signature]);
defineReadOnly(
this.estimateGas,
name,
this.estimateGas[signature],
);
}

@@ -866,3 +1135,6 @@ });

static getContractAddress(transaction: { from: string, nonce: BigNumberish }): string {
static getContractAddress(transaction: {
from: string;
nonce: BigNumberish;
}): string {
return getContractAddress(transaction);

@@ -885,9 +1157,9 @@ }

if (!this._deployedPromise) {
// If we were just deployed, we know the transaction we should occur in
if (this.deployTransaction) {
this._deployedPromise = this.deployTransaction.wait().then(() => {
return this;
});
this._deployedPromise = this.deployTransaction
.wait()
.then(() => {
return this;
});
} else {

@@ -898,11 +1170,17 @@ // @TODO: Once we allow a timeout to be passed in, we will wait

// Otherwise, poll for our code to be deployed
this._deployedPromise = this.provider.getCode(this.address, blockTag).then((code) => {
if (code === "0x") {
logger.throwError("contract not deployed", Logger.errors.UNSUPPORTED_OPERATION, {
contractAddress: this.address,
operation: "getDeployed"
});
}
return this;
});
this._deployedPromise = this.provider
.getCode(this.address, blockTag)
.then((code) => {
if (code === "0x") {
logger.throwError(
"contract not deployed",
Logger.errors.UNSUPPORTED_OPERATION,
{
contractAddress: this.address,
operation: "getDeployed",
},
);
}
return this;
});
}

@@ -922,3 +1200,7 @@ }

if (!this.signer) {
logger.throwError("sending a transactions require a signer", Logger.errors.UNSUPPORTED_OPERATION, { operation: "sendTransaction(fallback)" })
logger.throwError(
"sending a transactions require a signer",
Logger.errors.UNSUPPORTED_OPERATION,
{ operation: "sendTransaction(fallback)" },
);
}

@@ -928,5 +1210,11 @@

["from", "to"].forEach(function(key) {
if ((<any>tx)[key] == null) { return; }
logger.throwError("cannot override " + key, Logger.errors.UNSUPPORTED_OPERATION, { operation: key })
["from", "to"].forEach(function (key) {
if ((<any>tx)[key] == null) {
return;
}
logger.throwError(
"cannot override " + key,
Logger.errors.UNSUPPORTED_OPERATION,
{ operation: key },
);
});

@@ -942,9 +1230,15 @@

connect(signerOrProvider: Signer | Provider | string): Contract {
if (typeof(signerOrProvider) === "string") {
if (typeof signerOrProvider === "string") {
signerOrProvider = new VoidSigner(signerOrProvider, this.provider);
}
const contract = new (<{ new(...args: any[]): Contract }>(this.constructor))(this.address, this.interface, signerOrProvider);
const contract = new (<{ new (...args: any[]): Contract }>(
this.constructor
))(this.address, this.interface, signerOrProvider);
if (this.deployTransaction) {
defineReadOnly(contract, "deployTransaction", this.deployTransaction);
defineReadOnly(
contract,
"deployTransaction",
this.deployTransaction,
);
}

@@ -957,3 +1251,7 @@

attach(addressOrName: string): Contract {
return new (<{ new(...args: any[]): Contract }>(this.constructor))(addressOrName, this.interface, this.signer || this.provider);
return new (<{ new (...args: any[]): Contract }>this.constructor)(
addressOrName,
this.interface,
this.signer || this.provider,
);
}

@@ -969,9 +1267,8 @@

return this._runningEvents[runningEvent.tag];
}
return runningEvent
}
return runningEvent;
}
private _getRunningEvent(eventName: EventFilter | string): RunningEvent {
if (typeof(eventName) === "string") {
if (typeof eventName === "string") {
// Listen for "error" events (if your contract has an error event, include

@@ -985,3 +1282,5 @@ // the full signature to bypass this special event keyword)

if (eventName === "event") {
return this._normalizeRunningEvent(new RunningEvent("event", null));
return this._normalizeRunningEvent(
new RunningEvent("event", null),
);
}

@@ -991,8 +1290,16 @@

if (eventName === "*") {
return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));
return this._normalizeRunningEvent(
new WildcardRunningEvent(this.address, this.interface),
);
}
// Get the event Fragment (throws if ambiguous/unknown event)
const fragment = this.interface.getEvent(eventName)
return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment));
const fragment = this.interface.getEvent(eventName);
return this._normalizeRunningEvent(
new FragmentRunningEvent(
this.address,
this.interface,
fragment,
),
);
}

@@ -1002,12 +1309,18 @@

if (eventName.topics && eventName.topics.length > 0) {
// Is it a known topichash? (throws if no matching topichash)
try {
const topic = eventName.topics[0];
if (typeof(topic) !== "string") {
if (typeof topic !== "string") {
throw new Error("invalid topic"); // @TODO: May happen for anonymous events
}
const fragment = this.interface.getEvent(topic);
return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment, eventName.topics));
} catch (error) { }
return this._normalizeRunningEvent(
new FragmentRunningEvent(
this.address,
this.interface,
fragment,
eventName.topics,
),
);
} catch (error) {}

@@ -1017,9 +1330,13 @@ // Filter by the unknown topichash

address: this.address,
topics: eventName.topics
}
topics: eventName.topics,
};
return this._normalizeRunningEvent(new RunningEvent(getEventTag(filter), filter));
return this._normalizeRunningEvent(
new RunningEvent(getEventTag(filter), filter),
);
}
return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));
return this._normalizeRunningEvent(
new WildcardRunningEvent(this.address, this.interface),
);
}

@@ -1042,7 +1359,13 @@

// from parse errors if they wish
_wrapEvent(runningEvent: RunningEvent, log: Log, listener: Listener): Event {
_wrapEvent(
runningEvent: RunningEvent,
log: Log,
listener: Listener,
): Event {
const event = <Event>deepCopy(log);
event.removeListener = () => {
if (!listener) { return; }
if (!listener) {
return;
}
runningEvent.removeListener(listener);

@@ -1052,5 +1375,11 @@ this._checkRunningEvents(runningEvent);

event.getBlock = () => { return this.provider.getBlock(log.blockHash); }
event.getTransaction = () => { return this.provider.getTransaction(log.transactionHash); }
event.getTransactionReceipt = () => { return this.provider.getTransactionReceipt(log.transactionHash); }
event.getBlock = () => {
return this.provider.getBlock(log.blockHash);
};
event.getTransaction = () => {
return this.provider.getTransaction(log.transactionHash);
};
event.getTransactionReceipt = () => {
return this.provider.getTransactionReceipt(log.transactionHash);
};

@@ -1063,5 +1392,13 @@ // This may throw if the topics and data mismatch the signature

private _addEventListener(runningEvent: RunningEvent, listener: Listener, once: boolean): void {
private _addEventListener(
runningEvent: RunningEvent,
listener: Listener,
once: boolean,
): void {
if (!this.provider) {
logger.throwError("events require a provider or a signer with a provider", Logger.errors.UNSUPPORTED_OPERATION, { operation: "once" })
logger.throwError(
"events require a provider or a signer with a provider",
Logger.errors.UNSUPPORTED_OPERATION,
{ operation: "once" },
);
}

@@ -1108,14 +1445,26 @@

queryFilter(event: EventFilter | string, fromBlockOrBlockhash?: BlockTag | string, toBlock?: BlockTag): Promise<Array<Event>> {
queryFilter(
event: EventFilter | string,
fromBlockOrBlockhash?: BlockTag | string,
toBlock?: BlockTag,
): Promise<Array<Event>> {
const runningEvent = this._getRunningEvent(event);
const filter = shallowCopy(runningEvent.filter);
if (typeof(fromBlockOrBlockhash) === "string" && isHexString(fromBlockOrBlockhash, 32)) {
if (
typeof fromBlockOrBlockhash === "string" &&
isHexString(fromBlockOrBlockhash, 32)
) {
if (toBlock != null) {
logger.throwArgumentError("cannot specify toBlock with blockhash", "toBlock", toBlock);
logger.throwArgumentError(
"cannot specify toBlock with blockhash",
"toBlock",
toBlock,
);
}
(<FilterByBlockHash>filter).blockHash = fromBlockOrBlockhash;
} else {
(<Filter>filter).fromBlock = ((fromBlockOrBlockhash != null) ? fromBlockOrBlockhash: 0);
(<Filter>filter).toBlock = ((toBlock != null) ? toBlock: "latest");
(<Filter>filter).fromBlock =
fromBlockOrBlockhash != null ? fromBlockOrBlockhash : 0;
(<Filter>filter).toBlock = toBlock != null ? toBlock : "latest";
}

@@ -1139,6 +1488,8 @@

emit(eventName: EventFilter | string, ...args: Array<any>): boolean {
if (!this.provider) { return false; }
if (!this.provider) {
return false;
}
const runningEvent = this._getRunningEvent(eventName);
const result = (runningEvent.run(args) > 0);
const result = runningEvent.run(args) > 0;

@@ -1152,3 +1503,5 @@ // May have drained all the "once" events; check for living events

listenerCount(eventName?: EventFilter | string): number {
if (!this.provider) { return 0; }
if (!this.provider) {
return 0;
}
if (eventName == null) {

@@ -1163,9 +1516,11 @@ return Object.keys(this._runningEvents).reduce((accum, key) => {

listeners(eventName?: EventFilter | string): Array<Listener> {
if (!this.provider) { return []; }
if (!this.provider) {
return [];
}
if (eventName == null) {
const result: Array<Listener> = [ ];
const result: Array<Listener> = [];
for (let tag in this._runningEvents) {
this._runningEvents[tag].listeners().forEach((listener) => {
result.push(listener)
result.push(listener);
});

@@ -1180,3 +1535,5 @@ }

removeAllListeners(eventName?: EventFilter | string): this {
if (!this.provider) { return this; }
if (!this.provider) {
return this;
}

@@ -1201,3 +1558,5 @@ if (eventName == null) {

off(eventName: EventFilter | string, listener: Listener): this {
if (!this.provider) { return this; }
if (!this.provider) {
return this;
}
const runningEvent = this._getRunningEvent(eventName);

@@ -1212,3 +1571,2 @@ runningEvent.removeListener(listener);

}
}

@@ -1218,7 +1576,6 @@

// The meta-class properties
readonly [ key: string ]: ContractFunction | any;
readonly [key: string]: ContractFunction | any;
}
export class ContractFactory {
readonly interface: Interface;

@@ -1228,11 +1585,14 @@ readonly bytecode: string;

constructor(contractInterface: ContractInterface, bytecode: BytesLike | { object: string }, signer?: Signer) {
constructor(
contractInterface: ContractInterface,
bytecode: BytesLike | { object: string },
signer?: Signer,
) {
let bytecodeHex: string = null;
if (typeof(bytecode) === "string") {
if (typeof bytecode === "string") {
bytecodeHex = bytecode;
} else if (isBytes(bytecode)) {
bytecodeHex = hexlify(bytecode);
} else if (bytecode && typeof(bytecode.object) === "string") {
} else if (bytecode && typeof bytecode.object === "string") {
// Allow the bytecode object from the Solidity compiler

@@ -1246,6 +1606,8 @@ bytecodeHex = (<any>bytecode).object;

// Make sure it is 0x prefixed
if (bytecodeHex.substring(0, 2) !== "0x") { bytecodeHex = "0x" + bytecodeHex; }
if (bytecodeHex.substring(0, 2) !== "0x") {
bytecodeHex = "0x" + bytecodeHex;
}
// Make sure the final result is valid bytecode
if (!isHexString(bytecodeHex) || (bytecodeHex.length % 2)) {
if (!isHexString(bytecodeHex) || bytecodeHex.length % 2) {
logger.throwArgumentError("invalid bytecode", "bytecode", bytecode);

@@ -1260,3 +1622,10 @@ }

defineReadOnly(this, "bytecode", bytecodeHex);
defineReadOnly(this, "interface", getStatic<InterfaceFunc>(new.target, "getInterface")(contractInterface));
defineReadOnly(
this,
"interface",
getStatic<InterfaceFunc>(
new.target,
"getInterface",
)(contractInterface),
);
defineReadOnly(this, "signer", signer || null);

@@ -1267,6 +1636,9 @@ }

getDeployTransaction(...args: Array<any>): TransactionRequest {
let tx: TransactionRequest = { };
let tx: TransactionRequest = {};
// If we have 1 additional argument, we allow transaction overrides
if (args.length === this.interface.deploy.inputs.length + 1 && typeof(args[args.length - 1]) === "object") {
if (
args.length === this.interface.deploy.inputs.length + 1 &&
typeof args[args.length - 1] === "object"
) {
tx = shallowCopy(args.pop());

@@ -1282,4 +1654,10 @@ for (const key in tx) {

["data", "from", "to"].forEach((key) => {
if ((<any>tx)[key] == null) { return; }
logger.throwError("cannot override " + key, Logger.errors.UNSUPPORTED_OPERATION, { operation: key })
if ((<any>tx)[key] == null) {
return;
}
logger.throwError(
"cannot override " + key,
Logger.errors.UNSUPPORTED_OPERATION,
{ operation: key },
);
});

@@ -1290,6 +1668,10 @@

if (!value.isZero() && !this.interface.deploy.payable) {
logger.throwError("non-payable constructor cannot override value", Logger.errors.UNSUPPORTED_OPERATION, {
operation: "overrides.value",
value: tx.value
});
logger.throwError(
"non-payable constructor cannot override value",
Logger.errors.UNSUPPORTED_OPERATION,
{
operation: "overrides.value",
value: tx.value,
},
);
}

@@ -1299,17 +1681,19 @@ }

// Make sure the call matches the constructor signature
logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, " in Contract constructor");
logger.checkArgumentCount(
args.length,
this.interface.deploy.inputs.length,
" in Contract constructor",
);
// Set the data to the bytecode + the encoded constructor arguments
tx.data = hexlify(concat([
this.bytecode,
this.interface.encodeDeploy(args)
]));
tx.data = hexlify(
concat([this.bytecode, this.interface.encodeDeploy(args)]),
);
return tx
return tx;
}
async deploy(...args: Array<any>): Promise<Contract> {
let overrides: any = {};
let overrides: any = { };
// If 1 extra parameter was passed in, it contains overrides

@@ -1321,6 +1705,14 @@ if (args.length === this.interface.deploy.inputs.length + 1) {

// Make sure the call matches the constructor signature
logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, " in Contract constructor");
logger.checkArgumentCount(
args.length,
this.interface.deploy.inputs.length,
" in Contract constructor",
);
// Resolve ENS names and promises in the arguments
const params = await resolveAddresses(this.signer, args, this.interface.deploy.inputs);
const params = await resolveAddresses(
this.signer,
args,
this.interface.deploy.inputs,
);
params.push(overrides);

@@ -1334,4 +1726,17 @@

const address = getStatic<(tx: TransactionResponse) => string>(this.constructor, "getContractAddress")(tx);
const contract = getStatic<(address: string, contractInterface: ContractInterface, signer?: Signer) => Contract>(this.constructor, "getContract")(address, this.interface, this.signer);
const address = getStatic<(tx: TransactionResponse) => string>(
this.constructor,
"getContractAddress",
)(tx);
const contract = getStatic<
(
address: string,
contractInterface: ContractInterface,
signer?: Signer,
) => Contract
>(this.constructor, "getContract")(
address,
this.interface,
this.signer,
);

@@ -1346,15 +1751,25 @@ // Add the modified wait that wraps events

attach(address: string): Contract {
return (<any>(this.constructor)).getContract(address, this.interface, this.signer);
return (<any>this.constructor).getContract(
address,
this.interface,
this.signer,
);
}
connect(signer: Signer) {
return new (<{ new(...args: any[]): ContractFactory }>(this.constructor))(this.interface, this.bytecode, signer);
return new (<{ new (...args: any[]): ContractFactory }>(
this.constructor
))(this.interface, this.bytecode, signer);
}
static fromSolidity(compilerOutput: any, signer?: Signer): ContractFactory {
static fromPurity(compilerOutput: any, signer?: Signer): ContractFactory {
if (compilerOutput == null) {
logger.throwError("missing compiler output", Logger.errors.MISSING_ARGUMENT, { argument: "compilerOutput" });
logger.throwError(
"missing compiler output",
Logger.errors.MISSING_ARGUMENT,
{ argument: "compilerOutput" },
);
}
if (typeof(compilerOutput) === "string") {
if (typeof compilerOutput === "string") {
compilerOutput = JSON.parse(compilerOutput);

@@ -1379,9 +1794,16 @@ }

static getContractAddress(tx: { from: string, nonce: BytesLike | BigNumber | number }): string {
static getContractAddress(tx: {
from: string;
nonce: BytesLike | BigNumber | number;
}): string {
return getContractAddress(tx);
}
static getContract(address: string, contractInterface: ContractInterface, signer?: Signer): Contract {
static getContract(
address: string,
contractInterface: ContractInterface,
signer?: Signer,
): Contract {
return new Contract(address, contractInterface, signer);
}
}