adding web3 headers

This commit is contained in:
gnomadic 2022-06-29 16:55:54 -04:00
parent 5ec4b46717
commit b16ad10031
2 changed files with 545 additions and 4 deletions

View File

@ -8,6 +8,9 @@ import {
} from "./types";
import axios, { AxiosError } from "axios";
import { UnexpectedSDKError } from "./errors";
import * as dotenv from "dotenv";
dotenv.config({ path: "./.env" });
import { ethers } from "ethers";
const PARSE_ERROR_MSG =
"the api returned an error and there was a fatal client side error parsing that error msg";
@ -15,6 +18,9 @@ const PARSE_ERROR_MSG =
export class API implements ApiClient {
#baseUrl: string;
#headers: Record<string, string>;
#signer: ethers.Signer;
#NFT: ethers.Contract;
constructor(baseUrl: string, apiKey: string) {
this.#baseUrl = baseUrl;
@ -23,23 +29,49 @@ export class API implements ApiClient {
"Content-Type": "application/json",
"x-api-key": apiKey,
};
const provider = new ethers.providers.JsonRpcProvider(process.env.NETWORK);
const privateKey = process.env.PRIVATE_KEY as any;
this.#signer = new ethers.Wallet(privateKey, provider);
let abi = ["function hashPayload(string memory timestamp, string memory url) pure returns (bytes32) "];
let contractAddress = "";
this.#NFT = new ethers.Contract(contractAddress, abi, this.#signer);
}
getUrl(path: string): string {
return `${this.#baseUrl}/${path}`;
}
async getHeaders(url: string): Promise<Record<string, string>> {
let time = new Date().toISOString();
let web3Headers: Record<string, string> = {
"web3-sign": await this.hashAndSignPayload(url, time),
"web3-time": time,
};
return { ...this.#headers, ...web3Headers };
}
async hashAndSignPayload(url: string, timestamp: string): Promise<string> {
var messageHash = await this.#NFT.hashPayload(timestamp, url);
let messageHashBytes = ethers.utils.arrayify(messageHash);
let flatSig = await this.#signer.signMessage(messageHashBytes);
return flatSig;
}
async createQuery(query: Query): Promise<CreateQueryResp> {
let result;
let url = this.getUrl("queries");
try {
result = await axios.post(
this.getUrl("queries"),
url
{
sql: query.sql,
ttl_minutes: query.ttlMinutes,
cached: query.cached,
},
{ headers: this.#headers }
{ headers: await this.getHeaders(url) }
);
} catch (err) {
let errData = err as AxiosError;
@ -66,10 +98,11 @@ export class API implements ApiClient {
async getQueryResult(queryID: string): Promise<QueryResultResp> {
let result;
let url = this.getUrl(`queries/${queryID}`);
try {
result = await axios.get(this.getUrl(`queries/${queryID}`), {
result = await axios.get(url, {
method: "GET",
headers: this.#headers,
headers: await this.getHeaders(url)
});
} catch (err) {
let errData = err as AxiosError;

508
package-lock.json generated Normal file
View File

@ -0,0 +1,508 @@
{
"requires": true,
"lockfileVersion": 1,
"dependencies": {
"@ethersproject/abi": {
"version": "5.6.4",
"resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.4.tgz",
"integrity": "sha512-TTeZUlCeIHG6527/2goZA6gW5F8Emoc7MrZDC7hhP84aRGvW3TEdTnZR08Ls88YXM1m2SuK42Osw/jSi3uO8gg==",
"requires": {
"@ethersproject/address": "^5.6.1",
"@ethersproject/bignumber": "^5.6.2",
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/constants": "^5.6.1",
"@ethersproject/hash": "^5.6.1",
"@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
"@ethersproject/strings": "^5.6.1"
}
},
"@ethersproject/abstract-provider": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.1.tgz",
"integrity": "sha512-BxlIgogYJtp1FS8Muvj8YfdClk3unZH0vRMVX791Z9INBNT/kuACZ9GzaY1Y4yFq+YSy6/w4gzj3HCRKrK9hsQ==",
"requires": {
"@ethersproject/bignumber": "^5.6.2",
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/networks": "^5.6.3",
"@ethersproject/properties": "^5.6.0",
"@ethersproject/transactions": "^5.6.2",
"@ethersproject/web": "^5.6.1"
}
},
"@ethersproject/abstract-signer": {
"version": "5.6.2",
"resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.2.tgz",
"integrity": "sha512-n1r6lttFBG0t2vNiI3HoWaS/KdOt8xyDjzlP2cuevlWLG6EX0OwcKLyG/Kp/cuwNxdy/ous+R/DEMdTUwWQIjQ==",
"requires": {
"@ethersproject/abstract-provider": "^5.6.1",
"@ethersproject/bignumber": "^5.6.2",
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0"
}
},
"@ethersproject/address": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz",
"integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==",
"requires": {
"@ethersproject/bignumber": "^5.6.2",
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/rlp": "^5.6.1"
}
},
"@ethersproject/base64": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.1.tgz",
"integrity": "sha512-qB76rjop6a0RIYYMiB4Eh/8n+Hxu2NIZm8S/Q7kNo5pmZfXhHGHmS4MinUainiBC54SCyRnwzL+KZjj8zbsSsw==",
"requires": {
"@ethersproject/bytes": "^5.6.1"
}
},
"@ethersproject/basex": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.6.1.tgz",
"integrity": "sha512-a52MkVz4vuBXR06nvflPMotld1FJWSj2QT0985v7P/emPZO00PucFAkbcmq2vpVU7Ts7umKiSI6SppiLykVWsA==",
"requires": {
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/properties": "^5.6.0"
}
},
"@ethersproject/bignumber": {
"version": "5.6.2",
"resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz",
"integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==",
"requires": {
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"bn.js": "^5.2.1"
}
},
"@ethersproject/bytes": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.6.1.tgz",
"integrity": "sha512-NwQt7cKn5+ZE4uDn+X5RAXLp46E1chXoaMmrxAyA0rblpxz8t58lVkrHXoRIn0lz1joQElQ8410GqhTqMOwc6g==",
"requires": {
"@ethersproject/logger": "^5.6.0"
}
},
"@ethersproject/constants": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.1.tgz",
"integrity": "sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg==",
"requires": {
"@ethersproject/bignumber": "^5.6.2"
}
},
"@ethersproject/contracts": {
"version": "5.6.2",
"resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.6.2.tgz",
"integrity": "sha512-hguUA57BIKi6WY0kHvZp6PwPlWF87MCeB4B7Z7AbUpTxfFXFdn/3b0GmjZPagIHS+3yhcBJDnuEfU4Xz+Ks/8g==",
"requires": {
"@ethersproject/abi": "^5.6.3",
"@ethersproject/abstract-provider": "^5.6.1",
"@ethersproject/abstract-signer": "^5.6.2",
"@ethersproject/address": "^5.6.1",
"@ethersproject/bignumber": "^5.6.2",
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/constants": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
"@ethersproject/transactions": "^5.6.2"
}
},
"@ethersproject/hash": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.1.tgz",
"integrity": "sha512-L1xAHurbaxG8VVul4ankNX5HgQ8PNCTrnVXEiFnE9xoRnaUcgfD12tZINtDinSllxPLCtGwguQxJ5E6keE84pA==",
"requires": {
"@ethersproject/abstract-signer": "^5.6.2",
"@ethersproject/address": "^5.6.1",
"@ethersproject/bignumber": "^5.6.2",
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
"@ethersproject/strings": "^5.6.1"
}
},
"@ethersproject/hdnode": {
"version": "5.6.2",
"resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.6.2.tgz",
"integrity": "sha512-tERxW8Ccf9CxW2db3WsN01Qao3wFeRsfYY9TCuhmG0xNpl2IO8wgXU3HtWIZ49gUWPggRy4Yg5axU0ACaEKf1Q==",
"requires": {
"@ethersproject/abstract-signer": "^5.6.2",
"@ethersproject/basex": "^5.6.1",
"@ethersproject/bignumber": "^5.6.2",
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/pbkdf2": "^5.6.1",
"@ethersproject/properties": "^5.6.0",
"@ethersproject/sha2": "^5.6.1",
"@ethersproject/signing-key": "^5.6.2",
"@ethersproject/strings": "^5.6.1",
"@ethersproject/transactions": "^5.6.2",
"@ethersproject/wordlists": "^5.6.1"
}
},
"@ethersproject/json-wallets": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.6.1.tgz",
"integrity": "sha512-KfyJ6Zwz3kGeX25nLihPwZYlDqamO6pfGKNnVMWWfEVVp42lTfCZVXXy5Ie8IZTN0HKwAngpIPi7gk4IJzgmqQ==",
"requires": {
"@ethersproject/abstract-signer": "^5.6.2",
"@ethersproject/address": "^5.6.1",
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/hdnode": "^5.6.2",
"@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/pbkdf2": "^5.6.1",
"@ethersproject/properties": "^5.6.0",
"@ethersproject/random": "^5.6.1",
"@ethersproject/strings": "^5.6.1",
"@ethersproject/transactions": "^5.6.2",
"aes-js": "3.0.0",
"scrypt-js": "3.0.1"
}
},
"@ethersproject/keccak256": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.1.tgz",
"integrity": "sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA==",
"requires": {
"@ethersproject/bytes": "^5.6.1",
"js-sha3": "0.8.0"
}
},
"@ethersproject/logger": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.6.0.tgz",
"integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg=="
},
"@ethersproject/networks": {
"version": "5.6.4",
"resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.4.tgz",
"integrity": "sha512-KShHeHPahHI2UlWdtDMn2lJETcbtaJge4k7XSjDR9h79QTd6yQJmv6Cp2ZA4JdqWnhszAOLSuJEd9C0PRw7hSQ==",
"requires": {
"@ethersproject/logger": "^5.6.0"
}
},
"@ethersproject/pbkdf2": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.6.1.tgz",
"integrity": "sha512-k4gRQ+D93zDRPNUfmduNKq065uadC2YjMP/CqwwX5qG6R05f47boq6pLZtV/RnC4NZAYOPH1Cyo54q0c9sshRQ==",
"requires": {
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/sha2": "^5.6.1"
}
},
"@ethersproject/properties": {
"version": "5.6.0",
"resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.6.0.tgz",
"integrity": "sha512-szoOkHskajKePTJSZ46uHUWWkbv7TzP2ypdEK6jGMqJaEt2sb0jCgfBo0gH0m2HBpRixMuJ6TBRaQCF7a9DoCg==",
"requires": {
"@ethersproject/logger": "^5.6.0"
}
},
"@ethersproject/providers": {
"version": "5.6.8",
"resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.6.8.tgz",
"integrity": "sha512-Wf+CseT/iOJjrGtAOf3ck9zS7AgPmr2fZ3N97r4+YXN3mBePTG2/bJ8DApl9mVwYL+RpYbNxMEkEp4mPGdwG/w==",
"requires": {
"@ethersproject/abstract-provider": "^5.6.1",
"@ethersproject/abstract-signer": "^5.6.2",
"@ethersproject/address": "^5.6.1",
"@ethersproject/base64": "^5.6.1",
"@ethersproject/basex": "^5.6.1",
"@ethersproject/bignumber": "^5.6.2",
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/constants": "^5.6.1",
"@ethersproject/hash": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/networks": "^5.6.3",
"@ethersproject/properties": "^5.6.0",
"@ethersproject/random": "^5.6.1",
"@ethersproject/rlp": "^5.6.1",
"@ethersproject/sha2": "^5.6.1",
"@ethersproject/strings": "^5.6.1",
"@ethersproject/transactions": "^5.6.2",
"@ethersproject/web": "^5.6.1",
"bech32": "1.1.4",
"ws": "7.4.6"
}
},
"@ethersproject/random": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.6.1.tgz",
"integrity": "sha512-/wtPNHwbmng+5yi3fkipA8YBT59DdkGRoC2vWk09Dci/q5DlgnMkhIycjHlavrvrjJBkFjO/ueLyT+aUDfc4lA==",
"requires": {
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0"
}
},
"@ethersproject/rlp": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz",
"integrity": "sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ==",
"requires": {
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0"
}
},
"@ethersproject/sha2": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.6.1.tgz",
"integrity": "sha512-5K2GyqcW7G4Yo3uenHegbXRPDgARpWUiXc6RiF7b6i/HXUoWlb7uCARh7BAHg7/qT/Q5ydofNwiZcim9qpjB6g==",
"requires": {
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"hash.js": "1.1.7"
}
},
"@ethersproject/signing-key": {
"version": "5.6.2",
"resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.2.tgz",
"integrity": "sha512-jVbu0RuP7EFpw82vHcL+GP35+KaNruVAZM90GxgQnGqB6crhBqW/ozBfFvdeImtmb4qPko0uxXjn8l9jpn0cwQ==",
"requires": {
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
"bn.js": "^5.2.1",
"elliptic": "6.5.4",
"hash.js": "1.1.7"
}
},
"@ethersproject/solidity": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.6.1.tgz",
"integrity": "sha512-KWqVLkUUoLBfL1iwdzUVlkNqAUIFMpbbeH0rgCfKmJp0vFtY4AsaN91gHKo9ZZLkC4UOm3cI3BmMV4N53BOq4g==",
"requires": {
"@ethersproject/bignumber": "^5.6.2",
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/sha2": "^5.6.1",
"@ethersproject/strings": "^5.6.1"
}
},
"@ethersproject/strings": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.1.tgz",
"integrity": "sha512-2X1Lgk6Jyfg26MUnsHiT456U9ijxKUybz8IM1Vih+NJxYtXhmvKBcHOmvGqpFSVJ0nQ4ZCoIViR8XlRw1v/+Cw==",
"requires": {
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/constants": "^5.6.1",
"@ethersproject/logger": "^5.6.0"
}
},
"@ethersproject/transactions": {
"version": "5.6.2",
"resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.2.tgz",
"integrity": "sha512-BuV63IRPHmJvthNkkt9G70Ullx6AcM+SDc+a8Aw/8Yew6YwT51TcBKEp1P4oOQ/bP25I18JJr7rcFRgFtU9B2Q==",
"requires": {
"@ethersproject/address": "^5.6.1",
"@ethersproject/bignumber": "^5.6.2",
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/constants": "^5.6.1",
"@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
"@ethersproject/rlp": "^5.6.1",
"@ethersproject/signing-key": "^5.6.2"
}
},
"@ethersproject/units": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.6.1.tgz",
"integrity": "sha512-rEfSEvMQ7obcx3KWD5EWWx77gqv54K6BKiZzKxkQJqtpriVsICrktIQmKl8ReNToPeIYPnFHpXvKpi068YFZXw==",
"requires": {
"@ethersproject/bignumber": "^5.6.2",
"@ethersproject/constants": "^5.6.1",
"@ethersproject/logger": "^5.6.0"
}
},
"@ethersproject/wallet": {
"version": "5.6.2",
"resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.6.2.tgz",
"integrity": "sha512-lrgh0FDQPuOnHcF80Q3gHYsSUODp6aJLAdDmDV0xKCN/T7D99ta1jGVhulg3PY8wiXEngD0DfM0I2XKXlrqJfg==",
"requires": {
"@ethersproject/abstract-provider": "^5.6.1",
"@ethersproject/abstract-signer": "^5.6.2",
"@ethersproject/address": "^5.6.1",
"@ethersproject/bignumber": "^5.6.2",
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/hash": "^5.6.1",
"@ethersproject/hdnode": "^5.6.2",
"@ethersproject/json-wallets": "^5.6.1",
"@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
"@ethersproject/random": "^5.6.1",
"@ethersproject/signing-key": "^5.6.2",
"@ethersproject/transactions": "^5.6.2",
"@ethersproject/wordlists": "^5.6.1"
}
},
"@ethersproject/web": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.1.tgz",
"integrity": "sha512-/vSyzaQlNXkO1WV+RneYKqCJwualcUdx/Z3gseVovZP0wIlOFcCE1hkRhKBH8ImKbGQbMl9EAAyJFrJu7V0aqA==",
"requires": {
"@ethersproject/base64": "^5.6.1",
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
"@ethersproject/strings": "^5.6.1"
}
},
"@ethersproject/wordlists": {
"version": "5.6.1",
"resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.6.1.tgz",
"integrity": "sha512-wiPRgBpNbNwCQFoCr8bcWO8o5I810cqO6mkdtKfLKFlLxeCWcnzDi4Alu8iyNzlhYuS9npCwivMbRWF19dyblw==",
"requires": {
"@ethersproject/bytes": "^5.6.1",
"@ethersproject/hash": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
"@ethersproject/strings": "^5.6.1"
}
},
"aes-js": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
"integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw=="
},
"bech32": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz",
"integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ=="
},
"bn.js": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
"integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
},
"brorand": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
"integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
},
"dotenv": {
"version": "16.0.1",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.1.tgz",
"integrity": "sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ=="
},
"elliptic": {
"version": "6.5.4",
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
"integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
"requires": {
"bn.js": "^4.11.9",
"brorand": "^1.1.0",
"hash.js": "^1.0.0",
"hmac-drbg": "^1.0.1",
"inherits": "^2.0.4",
"minimalistic-assert": "^1.0.1",
"minimalistic-crypto-utils": "^1.0.1"
},
"dependencies": {
"bn.js": {
"version": "4.12.0",
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
}
}
},
"ethers": {
"version": "5.6.9",
"resolved": "https://registry.npmjs.org/ethers/-/ethers-5.6.9.tgz",
"integrity": "sha512-lMGC2zv9HC5EC+8r429WaWu3uWJUCgUCt8xxKCFqkrFuBDZXDYIdzDUECxzjf2BMF8IVBByY1EBoGSL3RTm8RA==",
"requires": {
"@ethersproject/abi": "5.6.4",
"@ethersproject/abstract-provider": "5.6.1",
"@ethersproject/abstract-signer": "5.6.2",
"@ethersproject/address": "5.6.1",
"@ethersproject/base64": "5.6.1",
"@ethersproject/basex": "5.6.1",
"@ethersproject/bignumber": "5.6.2",
"@ethersproject/bytes": "5.6.1",
"@ethersproject/constants": "5.6.1",
"@ethersproject/contracts": "5.6.2",
"@ethersproject/hash": "5.6.1",
"@ethersproject/hdnode": "5.6.2",
"@ethersproject/json-wallets": "5.6.1",
"@ethersproject/keccak256": "5.6.1",
"@ethersproject/logger": "5.6.0",
"@ethersproject/networks": "5.6.4",
"@ethersproject/pbkdf2": "5.6.1",
"@ethersproject/properties": "5.6.0",
"@ethersproject/providers": "5.6.8",
"@ethersproject/random": "5.6.1",
"@ethersproject/rlp": "5.6.1",
"@ethersproject/sha2": "5.6.1",
"@ethersproject/signing-key": "5.6.2",
"@ethersproject/solidity": "5.6.1",
"@ethersproject/strings": "5.6.1",
"@ethersproject/transactions": "5.6.2",
"@ethersproject/units": "5.6.1",
"@ethersproject/wallet": "5.6.2",
"@ethersproject/web": "5.6.1",
"@ethersproject/wordlists": "5.6.1"
}
},
"hash.js": {
"version": "1.1.7",
"resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
"integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
"requires": {
"inherits": "^2.0.3",
"minimalistic-assert": "^1.0.1"
}
},
"hmac-drbg": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
"integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
"requires": {
"hash.js": "^1.0.3",
"minimalistic-assert": "^1.0.0",
"minimalistic-crypto-utils": "^1.0.1"
}
},
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"js-sha3": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
"integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q=="
},
"minimalistic-assert": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
"integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
},
"minimalistic-crypto-utils": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
"integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
},
"scrypt-js": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz",
"integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA=="
},
"ws": {
"version": "7.4.6",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
"integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A=="
}
}
}