├── .gitignore
├── AspectaVerification.txt
├── .npmignore
├── .vscode
└── settings.json
├── tslint.json
├── assets
└── logo.png
├── .prettierrc
├── tsconfig.json
├── src
├── solanaInstruction.ts
├── constants.ts
├── error.ts
├── types.ts
├── helper.ts
├── transgateWrapper.ts
└── index.ts
├── package.json
├── README.md
└── yarn.lock
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | /lib
--------------------------------------------------------------------------------
/AspectaVerification.txt:
--------------------------------------------------------------------------------
1 | a678fb11
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | src
2 | tsconfig.json
3 | tslint.json
4 | .prettierrc
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "cSpell.words": [
3 | "secp"
4 | ]
5 | }
--------------------------------------------------------------------------------
/tslint.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["tslint:recommended", "tslint-config-prettier"]
3 | }
4 |
--------------------------------------------------------------------------------
/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zkPassOfficial/Transgate-JS-SDK/HEAD/assets/logo.png
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 120,
3 | "trailingComma": "all",
4 | "singleQuote": true
5 | }
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es2020",
4 | "module": "commonjs",
5 | "declaration": true,
6 | "esModuleInterop": true,
7 | "outDir": "./lib",
8 | "strict": true,
9 | "lib": ["es6", "DOM"]
10 | },
11 | "include": ["src"],
12 | "exclude": ["node_modules", "**/__tests__/*"]
13 | }
--------------------------------------------------------------------------------
/src/solanaInstruction.ts:
--------------------------------------------------------------------------------
1 | export const SolanaTask = {
2 | struct: {
3 | task: 'string',
4 | schema: 'string',
5 | notary: 'string',
6 | },
7 | }
8 |
9 | export const Attest = {
10 | struct: {
11 | task: 'string',
12 | schema: 'string',
13 | nullifier: 'string',
14 | recipient: 'string',
15 | publicFieldsHash: 'string'
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/src/constants.ts:
--------------------------------------------------------------------------------
1 | export const server = 'https://dev.zkpass.org/v1'
2 |
3 | export const extensionId = 'afkoofjocpbclhnldmmaphappihehpma'
4 |
5 | export const SolanaTaskAllocator = '69e7d686e612ab57e3619f4a19a567b3b212a5b35ba0e3b600fbed5c2ee9083d'
6 | export const EVMTaskAllocator = '0x19a567b3b212a5b35bA0E3B600FbEd5c2eE9083d'
7 |
8 | export const TonTaskPubKey = '6ab539926d899a69385d8c5a35bd8c3e650dbd0a0c5e3e9a3cca15867e11d884'
9 |
10 | export const DefaultCallbackUrl = 'https://dev.zkpass.org/v1/relay/proof'
11 |
12 | export const ScanResultUrl = 'https://dev.zkpass.org/v1/sdk/taskstate'
--------------------------------------------------------------------------------
/src/error.ts:
--------------------------------------------------------------------------------
1 | export enum ErrorCode {
2 | 'ILLEGAL_NODE' = 100000,
3 | 'TRANSGATE_NOT_INSTALLED' = 100001,
4 | 'ILLEGAL_APPID' = 100002,
5 | 'ILLEGAL_SCHEMA_ID' = 100003,
6 | 'TASK_RPC_ERROR' = 100004,
7 | 'CONNECT_NODE_ERROR' = 100005,
8 | 'ILLEGAL_TASK_INFO' = 100006,
9 | 'ILLEGAL_SCHEMA' = 100007,
10 | 'NOT_MATCH_REQUIREMENTS' = 110001,
11 | 'VERIFICATION_CANCELED' = 110002,
12 | 'UNEXPECTED_VERIFY_ERROR' = 110003,
13 | 'UNEXPECTED_ERROR' = 120000,
14 | 'REQUEST_TIMEOUT' = 120001
15 | }
16 |
17 | export class TransgateError {
18 | code: number;
19 | message: string;
20 | constructor(code: ErrorCode, message: any) {
21 | this.message = message;
22 | this.code = code;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/src/types.ts:
--------------------------------------------------------------------------------
1 | export enum EventDataType {
2 | 'GENERATE_ZKP_SUCCESS' = 'GENERATE_ZKP_SUCCESS',
3 | 'NOT_MATCH_REQUIREMENTS' = 'NOT_MATCH_REQUIREMENTS',
4 | 'ILLEGAL_WINDOW_CLOSING' = 'ILLEGAL_WINDOW_CLOSING',
5 | 'UNEXPECTED_VERIFY_ERROR' = 'UNEXPECTED_VERIFY_ERROR',
6 | 'INVALID_SCHEMA' = 'INVALID_SCHEMA',
7 | }
8 |
9 | export declare type ChainType = 'evm' | 'sol' | 'ton'
10 |
11 | export interface TaskConfig {
12 | schemas: { schema_id: string }[];
13 | task_rpc: string;
14 | token: string;
15 | callbackUrl?: string;
16 | }
17 |
18 | export interface Task {
19 | task: string;
20 | node_address: string;
21 | node_host: string;
22 | node_port: number;
23 | node_pk: string;
24 | alloc_address: string;
25 | alloc_signature: string;
26 | }
27 |
28 | export interface VerifyResult {
29 | nullifierHash: string;
30 | publicFields: any[];
31 | signature: string;
32 | taskId: string;
33 | type: string;
34 | }
35 |
36 | export interface ProofVerifyParams {
37 | taskId: string
38 | schema: string
39 | uHash: string
40 | validatorSignature: string
41 | validatorAddress: string
42 | publicFieldsHash: string
43 | recipient: string
44 | }
45 |
46 | export interface Result {
47 | allocatorAddress: string;
48 | allocatorSignature: string;
49 | publicFields: any[];
50 | publicFieldsHash: string;
51 | taskId: string;
52 | uHash: string;
53 | validatorAddress: string;
54 | validatorSignature: string;
55 | recipient?: string;
56 | }
57 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@zkpass/transgate-js-sdk",
3 | "version": "0.4.5",
4 | "description": "",
5 | "main": "lib/index.js",
6 | "types": "lib/index.d.ts",
7 | "scripts": {
8 | "build": "tsc",
9 | "format": "prettier --write \"src/**/*.ts\"",
10 | "lint": "tslint -p tsconfig.json",
11 | "prepare": "npm run build",
12 | "version": "npm run format && git add -A src",
13 | "postversion": "git push && git push --tags"
14 | },
15 | "files": [
16 | "lib/**/*"
17 | ],
18 | "keywords": [
19 | "3-Party TLS",
20 | "VOLE",
21 | "MPC"
22 | ],
23 | "author": "Stone",
24 | "license": "ISC",
25 | "repository": {
26 | "type": "git",
27 | "url": "git+https://github.com/zkPassOfficial/Transgate-JS-SDK.git"
28 | },
29 | "bugs": {
30 | "url": "https://github.com/zkPassOfficial/Transgate-JS-SDK/issues"
31 | },
32 | "homepage": "https://github.com/zkPassOfficial/Transgate-JS-SDK/issues#readme",
33 | "devDependencies": {
34 | "@types/node": "^20.9.2",
35 | "@types/qrcode": "^1.5.5",
36 | "@types/secp256k1": "^4.0.6",
37 | "@typescript-eslint/eslint-plugin": "^6.14.0",
38 | "@typescript-eslint/parser": "^6.14.0",
39 | "prettier": "^3.1.0",
40 | "tslint": "^6.1.3",
41 | "tslint-config-prettier": "^1.18.0",
42 | "typescript": "^5.2.2"
43 | },
44 | "dependencies": {
45 | "@ton/core": "^0.58.1",
46 | "@ton/crypto": "^3.3.0",
47 | "@ton/ton": "^15.0.0",
48 | "borsh": "^2.0.0",
49 | "buffer": "^6.0.3",
50 | "js-sha3": "^0.9.3",
51 | "qrcode": "^1.5.4",
52 | "secp256k1": "^5.0.0",
53 | "web3": "^4.2.2"
54 | }
55 | }
56 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | # Transgate JS-SDK
6 |
7 | 
8 |
9 | The Transgate JS-SDK is a utility package for [Transgate](https://chromewebstore.google.com/detail/zkpass-transgate/afkoofjocpbclhnldmmaphappihehpma) that enables developers to easily launch Transgate.
10 |
11 | Check out our docs for [step-by-step instructions!](https://zkpass.gitbook.io/zkpass/extension-js-sdk/quick-start)
12 |
13 | ## Register an develop account
14 |
15 | Please register an account on the [zkPass Dev Center](https://dev.zkpass.org) and create a project. Then you can add schemas for your project.
16 |
17 | ## Installation
18 |
19 | You can install the package either using [NPM](https://www.npmjs.com/package/@zkpass/transgate-js-sdk) or using [Yarn](https://yarnpkg.com/package/@zkpass/transgate-js-sdk)
20 |
21 | ### Using NPM
22 |
23 | ```bash
24 | npm install @zkpass/transgate-js-sdk
25 | ```
26 |
27 | ### Using Yarn
28 |
29 | ```bash
30 | yarn add @zkpass/transgate-js-sdk
31 | ```
32 |
33 | ### Example
34 | ```bash
35 | import TransgateConnect from '@zkpass/transgate-js-sdk'
36 |
37 | const requestVerifyMessage = async () =>{
38 | try{
39 | const appid = "8fb9d43c-2f24-424e-a98d-7ba34a5532f5" //Locate this form on the development platform
40 |
41 | const connector = new TransgateConnect(appid)
42 | const isAvailable = await connector.isTransgateAvailable()
43 |
44 | if(isAvailable){
45 | //The schema ID that you add for the project
46 | const schemaId = "516a720e-29a4-4307-ae7b-5aec286e446e"
47 |
48 | const res = await connector.launch(schemaId)// This method can be invoked in a loop when dealing with multiple schemas
49 |
50 | //You have the flexibility to handle the validation results based on your requirements.
51 |
52 | }else{
53 | console.log('Please install zkPass Transgate from https://chromewebstore.google.com/detail/zkpass-transgate/afkoofjocpbclhnldmmaphappihehpma')
54 | }
55 | }catch(error){
56 | console.log('transgate error', error)
57 | }
58 | }
59 |
60 | ```
61 |
62 | ### Verify result fields
63 |
64 | | Field Name | Description |
65 | | ----------------------------- | ------------------------------------------------------------------- |
66 | | allocatorAddress | The address of the allocator node |
67 | | allocatorSignature | Signature of the task information by the allocator node |
68 | | publicFields | Values of public fields defined in schema |
69 | | publicFieldsHash | Hash of public fields values |
70 | | taskId | Unique id of the task allocated by the allocator node |
71 | | uHash | Hash value of user unique id in the data source |
72 | | validatorAddress | The address of the validator node |
73 | | validatorSignature | The signature of the verification result by the validator node |
74 | | recipient | The address of the user |
75 |
76 | ### Error code
77 |
78 | | Error Code | Description |
79 | | ------------------ | -------------------------------- |
80 | | 100000 | ILLEGAL_NODE |
81 | | 100001 | TRANSGATE_NOT_INSTALLED |
82 | | 100002 | ILLEGAL_APPID |
83 | | 100003 | ILLEGAL_SCHEMA_ID |
84 | | 100004 | TASK_RPC_ERROR |
85 | | 100005 | CONNECT_NODE_ERROR |
86 | | 100006 | ILLEGAL_TASK_INFO |
87 | | 110001 | NOT_MATCH_REQUIREMENTS |
88 | | 110002 | VERIFICATION_CANCELED |
89 | | 110003 | UNEXPECTED_VERIFY_ERROR |
90 |
--------------------------------------------------------------------------------
/src/helper.ts:
--------------------------------------------------------------------------------
1 | import Web3 from 'web3';
2 | import { transgateWrapper, mobileDialog } from './transgateWrapper';
3 |
4 | /**
5 | * parse signature to v, r, s
6 | * @param signature
7 | * @returns
8 | */
9 | export const parseSignature = (signature: string) => {
10 | signature = signature.slice(2);
11 | return {
12 | v: parseInt('0x' + signature.slice(128, 130), 16),
13 | r: '0x' + signature.slice(0, 64),
14 | s: '0x' + signature.slice(64, 128),
15 | };
16 | };
17 |
18 | export const hexToBytes = (hex: string) => {
19 | const bytes = [];
20 | for (let c = 0; c < hex.length; c += 2) bytes.push(parseInt(hex.substring(c, c + 2), 16));
21 | return new Uint8Array(bytes);
22 | };
23 |
24 | export function getObjectValues(json: any) {
25 | let values: any = [];
26 |
27 | function recurse(obj: any) {
28 | for (let key in obj) {
29 | if (obj.hasOwnProperty(key)) {
30 | if (typeof obj[key] === 'object' && obj[key] !== null) {
31 | recurse(obj[key]); // it's a nested object, so we do it again
32 | } else {
33 | values.push(obj[key]); // it's not an object, so we just push the value
34 | }
35 | }
36 | }
37 | }
38 |
39 | recurse(json);
40 | return values.join('');
41 | }
42 |
43 | export function getDeviceType() {
44 | const userAgent = navigator.userAgent || navigator.vendor;
45 |
46 | if (/iPhone|iPad|iPod/i.test(userAgent)) {
47 | return 'iOS';
48 | } else if (/Android/i.test(userAgent)) {
49 | return 'Android';
50 | } else {
51 | return 'Browser'; //default to browser
52 | }
53 | }
54 |
55 | export function insertMobileDialog() {
56 | const modal = document.createElement('div');
57 | modal.style.position = 'fixed';
58 | modal.style.top = '0';
59 | modal.style.left = '0';
60 | modal.style.width = '100%';
61 | modal.style.height = '100%';
62 | modal.style.backgroundColor = 'rgba(0,0,0,0.5)';
63 | modal.style.display = 'flex';
64 | modal.style.justifyContent = 'center';
65 | modal.style.alignItems = 'center';
66 | modal.style.zIndex = '9999';
67 | modal.style.pointerEvents = 'auto';
68 |
69 | document.getElementsByTagName('body')[0].appendChild(modal);
70 | modal.innerHTML = mobileDialog;
71 |
72 | return { remove: () => modal.remove() };
73 | }
74 |
75 | export function insertQrcodeMask() {
76 | //create a modal to show the qrcode
77 | const modal = document.createElement('div');
78 | modal.style.position = 'fixed';
79 | modal.style.top = '0';
80 | modal.style.left = '0';
81 | modal.style.width = '100%';
82 | modal.style.height = '100%';
83 | modal.style.backgroundColor = 'rgba(0,0,0,0.5)';
84 | modal.style.display = 'flex';
85 | modal.style.justifyContent = 'center';
86 | modal.style.alignItems = 'center';
87 | modal.style.zIndex = '9999';
88 | modal.style.pointerEvents = 'auto';
89 |
90 | document.getElementsByTagName('body')[0].appendChild(modal);
91 |
92 | modal.innerHTML = transgateWrapper;
93 |
94 | const canvasElement = document.getElementById('zkpass-canvas');
95 |
96 | if (!canvasElement) {
97 | modal.remove();
98 | throw new Error('generate qrcode failed');
99 | }
100 |
101 | return { canvasElement, remove: () => modal.remove() };
102 | }
103 |
104 | export function launchApp(url: string) {
105 | const link = document.createElement('a');
106 | link.href = url;
107 | link.style.display = 'none';
108 | document.body.appendChild(link);
109 | link.click();
110 | link.remove();
111 | }
112 |
113 | export function injectMetaTag(name: string, content: string) {
114 | const meta = document.createElement('meta');
115 | meta.name = name;
116 | meta.content = content;
117 | document.getElementsByTagName('head')[0].appendChild(meta);
118 | }
119 |
120 | export function removeMetaTag(name: string) {
121 | const metaCollection = Array.from(document.getElementsByTagName('meta')) || [];
122 |
123 | for (const meta of metaCollection) {
124 | if (meta.name == name) {
125 | meta.remove();
126 | }
127 | }
128 | }
129 |
130 | function isSafari() {
131 | return (
132 | navigator.vendor === 'Apple Computer, Inc.' &&
133 | navigator.userAgent.includes('Safari') &&
134 | !navigator.userAgent.includes('CriOS') &&
135 | !navigator.userAgent.includes('FxiOS')
136 | );
137 | }
138 |
139 | export async function isTransgateAvailable(extensionId: string) {
140 | try {
141 | const url = `chrome-extension://${extensionId}/images/icon-16.png`;
142 | const { statusText } = await fetch(url);
143 | if (statusText === 'OK') {
144 | return true;
145 | }
146 | return false;
147 | } catch (error) {
148 | return false;
149 | }
150 | }
151 |
152 | export function launchAppForAndroid(url: string, backupUrl: string) {
153 | try {
154 | const iframe = document.createElement('iframe');
155 | iframe.style.display = 'none';
156 | iframe.src = url;
157 | document.body.appendChild(iframe);
158 |
159 | const fallbackTimeout = setTimeout(() => {
160 | window.location.href = backupUrl;
161 | }, 1500);
162 |
163 | window.addEventListener('blur', () => {
164 | clearTimeout(fallbackTimeout);
165 | iframe.remove();
166 | });
167 | } catch (error) {
168 | console.error('launchAppForAndroid error:', error);
169 | }
170 | }
171 |
172 | export function genPublicFieldHash(publicFields = []) {
173 | const publicData = publicFields.map((item: any) => {
174 | delete item.str;
175 | return item;
176 | });
177 |
178 | let values: any = [];
179 |
180 | function recurse(obj: any) {
181 | for (let key in obj) {
182 | if (obj.hasOwnProperty(key)) {
183 | if (typeof obj[key] === 'object' && obj[key] !== null) {
184 | recurse(obj[key]); // it's a nested object, so we do it again
185 | } else {
186 | values.push(obj[key]); // it's not an object, so we just push the value
187 | }
188 | }
189 | }
190 | }
191 |
192 | recurse(publicData);
193 | const publicFieldStr = values.join('');
194 |
195 | return Web3.utils.soliditySha3(
196 | !!publicFieldStr ? Web3.utils.stringToHex(publicFieldStr) : Web3.utils.utf8ToHex('1'),
197 | ) as string;
198 | }
199 |
200 | export function textToUnicodeSmart(str: string) {
201 | return Array.from(str).map(ch => {
202 | const code = ch.codePointAt(0);
203 | if (code! <= 0x7f) {
204 | return ch;
205 | }
206 | return '\\u' + code?.toString(16).padStart(4, '0');
207 | }).join('');
208 | }
--------------------------------------------------------------------------------
/src/transgateWrapper.ts:
--------------------------------------------------------------------------------
1 | export const transgateWrapper = `
2 |
122 |
123 |
124 |
128 |
129 |
130 |
131 |
136 |
137 |
1. Open the TransGate app
138 |
2. Tap scan button on Home Screen
139 |
140 |
185 |
186 |
187 |
188 | `;
189 |
190 | export const mobileDialog = `
191 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 |
Application for validation task
314 |
315 |
316 |
Task information preparation complete
317 |
318 |
319 |
320 |
321 |
322 |
`;
323 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import Web3, { Address } from 'web3';
2 | import { Buffer } from 'buffer';
3 | import secp256k1 from 'secp256k1';
4 | import * as borsh from 'borsh';
5 | import sha3 from 'js-sha3';
6 | import { Address as TonAddress, beginCell } from '@ton/ton';
7 | import QRCode from 'qrcode';
8 |
9 | import {
10 | server,
11 | extensionId,
12 | SolanaTaskAllocator,
13 | EVMTaskAllocator,
14 | TonTaskPubKey,
15 | DefaultCallbackUrl,
16 | ScanResultUrl,
17 | } from './constants';
18 | import { EventDataType, Result, Task, TaskConfig, ProofVerifyParams, VerifyResult, ChainType } from './types';
19 | import { ErrorCode, TransgateError } from './error';
20 | import { Attest, SolanaTask } from './solanaInstruction';
21 | import {
22 | getObjectValues,
23 | hexToBytes,
24 | insertQrcodeMask,
25 | getDeviceType,
26 | injectMetaTag,
27 | launchApp,
28 | insertMobileDialog,
29 | removeMetaTag,
30 | launchAppForAndroid,
31 | textToUnicodeSmart,
32 | } from './helper';
33 | import { signVerify } from '@ton/crypto';
34 |
35 | export default class TransgateConnect {
36 | readonly appid: string;
37 | readonly baseServer: string;
38 | transgateAvailable?: boolean;
39 | terminal?: boolean;
40 | removeModal?: () => void;
41 | constructor(appid: string) {
42 | this.appid = appid;
43 | this.baseServer = server;
44 | this.terminal = false;
45 | }
46 |
47 | async launch(schemaId: string, address?: Address) {
48 | return await this.runTransgate({ schemaId, address, chainType: 'evm' });
49 | }
50 |
51 | async launchWithSolana(schemaId: string, address: string) {
52 | return await this.runTransgate({ schemaId, address, chainType: 'sol' });
53 | }
54 |
55 | async launchWithTon(schemaId: string, address: string) {
56 | return await this.runTransgate({ schemaId, address, chainType: 'ton' });
57 | }
58 |
59 | async runTransgate({
60 | schemaId,
61 | address,
62 | chainType = 'evm',
63 | }: {
64 | schemaId: string;
65 | address?: Address;
66 | chainType?: ChainType;
67 | }) {
68 | this.terminal = false;
69 | const device = getDeviceType();
70 |
71 | if (device === 'iOS') {
72 | this.handleIOSModal();
73 | }
74 |
75 | this.transgateAvailable = await this.isTransgateAvailable();
76 |
77 | const config = await this.requestConfig();
78 | if (config.schemas.findIndex((schema) => schema.schema_id === schemaId) === -1) {
79 | throw new TransgateError(ErrorCode.ILLEGAL_SCHEMA_ID, 'Illegal schema id, please check your schema info');
80 | }
81 |
82 | const taskInfo = await this.requestTaskInfo(config.task_rpc, config.token, schemaId, chainType);
83 |
84 | const callbackUrl = config.callbackUrl || DefaultCallbackUrl;
85 | const appBasePath = 'https://app.zkpass.org/verify';
86 |
87 | let query = `app_id=${this.appid}&task_id=${taskInfo.task}&schema_id=${schemaId}&chain_type=${chainType}&callback_url=${callbackUrl}`;
88 |
89 | if (address) {
90 | query = `${query}/&account=${address}`;
91 | }
92 | if (device === 'Android') {
93 | launchAppForAndroid(`zkpass://zkpass.com/verify?${query}`, `${appBasePath}?${query}`);
94 | return await this.getProofInfo(taskInfo.task, callbackUrl);
95 | } else if (device === 'iOS') {
96 | removeMetaTag('apple-itunes-app');
97 | injectMetaTag(
98 | 'apple-itunes-app',
99 | 'app-clip-bundle-id=com.zkpass.transgate.clip, app-id=6738957441 app-clip-display=card',
100 | );
101 | const clipUrl = `https://appclip.apple.com/id?p=com.zkpass.transgate.clip&${query}`;
102 | this.handleIOSApp(clipUrl);
103 | return await this.getProofInfo(taskInfo.task, callbackUrl);
104 | } else if (this.transgateAvailable) {
105 | //support mobile but transgate is available and not mobile
106 | return await this.runTransgateExtension({ schemaId, address, taskInfo, chainType });
107 | } else {
108 | //support mobile but transgate is not available generate a qrcode
109 | const launchUrl = `${appBasePath}?${query}`;
110 | return await this.runWithTransgateApp(launchUrl, taskInfo.task, callbackUrl);
111 | }
112 | }
113 |
114 | private async runWithTransgateApp(launchUrl: string, taskId: string, callbackUrl: string) {
115 | try {
116 | const { canvasElement, remove } = insertQrcodeMask();
117 |
118 | await QRCode.toCanvas(canvasElement, launchUrl, {
119 | width: 240,
120 | });
121 |
122 | const closeBtn = document.getElementById('close-transgate');
123 | const zkpassCanvas = document.getElementById('zkpass-canvas');
124 |
125 | closeBtn?.addEventListener('click', () => {
126 | remove();
127 | this.terminal = true;
128 | });
129 |
130 | this.getScanResult(taskId).then((taskUsed: unknown) => {
131 | if (taskUsed) {
132 | //@ts-ignore
133 | const ctx = zkpassCanvas.getContext('2d');
134 | ctx.filter = 'blur(5px)';
135 | ctx.drawImage(zkpassCanvas, 0, 0);
136 | }
137 | });
138 |
139 | const proof = await this.getProofInfo(taskId, callbackUrl);
140 |
141 | if (proof) {
142 | remove();
143 | }
144 | return proof;
145 | } catch (error) {
146 | if (this.terminal) {
147 | throw new TransgateError(ErrorCode.VERIFICATION_CANCELED, 'User terminal the validation.');
148 | }
149 | throw new TransgateError(ErrorCode.UNEXPECTED_ERROR, error);
150 | }
151 | }
152 |
153 | private async runTransgateExtension({
154 | schemaId,
155 | address,
156 | taskInfo,
157 | chainType = 'evm',
158 | }: {
159 | schemaId: string;
160 | taskInfo: Task;
161 | address?: Address;
162 | chainType?: ChainType;
163 | }) {
164 | const schemaUrl = `${this.baseServer}/schema/${schemaId}`;
165 | const schemaInfo = await this.requestSchemaInfo(schemaUrl);
166 | console.log('runTransgateExtension address', address);
167 | const {
168 | task,
169 | alloc_address: allocatorAddress,
170 | alloc_signature: signature,
171 | node_address: nodeAddress,
172 | node_host: nodeHost,
173 | node_pk: nodePK,
174 | } = taskInfo;
175 |
176 | const extensionParams = {
177 | task,
178 | allocatorAddress,
179 | nodeAddress,
180 | nodeHost,
181 | nodePK,
182 | signature,
183 | ...schemaInfo,
184 | appid: this.appid,
185 | };
186 |
187 | if (!this.checkTaskInfo(chainType, task, schemaId, nodeAddress, signature)) {
188 | return new TransgateError(ErrorCode.ILLEGAL_TASK_INFO, 'Please ensure you connected the legitimate task nodes');
189 | }
190 |
191 | this.launchTransgate(extensionParams, address);
192 |
193 | return new Promise((resolve, reject) => {
194 | const eventListener = (event: any) => {
195 | if (event.data.id !== extensionParams.id) {
196 | return;
197 | }
198 | if (event.data.type === EventDataType.INVALID_SCHEMA) {
199 | reject(new TransgateError(ErrorCode.ILLEGAL_SCHEMA, 'Incorrect schema information.'));
200 | } else if (event.data.type === EventDataType.GENERATE_ZKP_SUCCESS) {
201 | window?.removeEventListener('message', eventListener);
202 | const message: VerifyResult = event.data;
203 | const { publicFields = [] } = message;
204 | const publicData = getObjectValues(
205 | publicFields.map((item: any) => {
206 | delete item.str;
207 | return item;
208 | }),
209 | );
210 |
211 | console.log('publicData', publicData);
212 | console.log('address', address);
213 |
214 | const proofResult = this.buildResult(message, taskInfo, publicData, allocatorAddress, address);
215 | console.log('proofResult', JSON.stringify(proofResult));
216 | if (this.verifyProofMessageSignature(chainType, schemaId, proofResult)) {
217 | console.log('proofResult', proofResult);
218 | resolve(proofResult);
219 | } else {
220 | reject(
221 | new TransgateError(
222 | ErrorCode.ILLEGAL_NODE,
223 | 'The verification node is not the same as the node assigned to the task.',
224 | ),
225 | );
226 | }
227 | } else if (event.data.type === EventDataType.NOT_MATCH_REQUIREMENTS) {
228 | window?.removeEventListener('message', eventListener);
229 | reject(new TransgateError(ErrorCode.NOT_MATCH_REQUIREMENTS, 'The user does not meet the requirements.'));
230 | } else if (event.data.type === EventDataType.ILLEGAL_WINDOW_CLOSING) {
231 | window?.removeEventListener('message', eventListener);
232 | reject(
233 | new TransgateError(
234 | ErrorCode.VERIFICATION_CANCELED,
235 | 'The user closes the window before finishing validation.',
236 | ),
237 | );
238 | } else if (event.data.type === EventDataType.UNEXPECTED_VERIFY_ERROR) {
239 | window?.removeEventListener('message', eventListener);
240 | reject(
241 | new TransgateError(
242 | ErrorCode.UNEXPECTED_VERIFY_ERROR,
243 | 'An unexpected error was encountered, please try again.',
244 | ),
245 | );
246 | }
247 | };
248 | window?.addEventListener('message', eventListener);
249 | });
250 | }
251 |
252 | private launchTransgate(taskInfo: any, address?: Address) {
253 | window?.postMessage(
254 | {
255 | type: 'AUTH_ZKPASS',
256 | mintAccount: address,
257 | ...taskInfo,
258 | },
259 | '*',
260 | );
261 | }
262 |
263 | /**
264 | * request task info
265 | * @param {*} schemaId string schema id
266 | * @returns
267 | */
268 | private async requestTaskInfo(taskUrl: string, token: string, schemaId: string, chainType: ChainType): Promise {
269 | const response = await fetch(`https://${taskUrl}`, {
270 | method: 'POST',
271 | headers: {
272 | 'Content-Type': 'application/json',
273 | },
274 | body: JSON.stringify({
275 | token,
276 | schema_id: schemaId,
277 | app_id: this.appid,
278 | chain_type: chainType,
279 | debug: false,
280 | }),
281 | });
282 | if (response.ok) {
283 | const result = await response.json();
284 | return result.info;
285 | }
286 |
287 | throw new TransgateError(ErrorCode.TASK_RPC_ERROR, 'Request task info error');
288 | }
289 |
290 | private async requestConfig(): Promise {
291 | const response = await fetch(`${this.baseServer}/sdk/config`, {
292 | method: 'POST',
293 | headers: {
294 | 'Content-Type': 'application/json',
295 | },
296 | body: JSON.stringify({
297 | app_id: this.appid,
298 | }),
299 | });
300 | if (response.ok) {
301 | const result = await response.json();
302 | return result.info;
303 | }
304 |
305 | throw new TransgateError(ErrorCode.ILLEGAL_APPID, 'Please check your appid');
306 | }
307 | /**
308 | * request schema detail info
309 | * @param schemaUrl
310 | */
311 | private async requestSchemaInfo(schemaUrl: string) {
312 | const response = await fetch(schemaUrl);
313 | if (response.ok) {
314 | return await response.json();
315 | }
316 | throw new TransgateError(ErrorCode.ILLEGAL_SCHEMA_ID, 'Illegal schema url, please contact develop team!');
317 | }
318 |
319 | private async getProofInfo(taskId: string, callbackUrl: string) {
320 | return new Promise((resolve, reject) => {
321 | let loopCount = 0;
322 | const requestInfo = () => {
323 | loopCount++;
324 | if (loopCount > 300) {
325 | this.removeModal && this.removeModal();
326 | reject(new TransgateError(ErrorCode.REQUEST_TIMEOUT, 'Request timeout, please try again'));
327 | return;
328 | }
329 |
330 | if (this.terminal) {
331 | this.removeModal && this.removeModal();
332 | reject(new TransgateError(ErrorCode.VERIFICATION_CANCELED, 'User terminal the validation.'));
333 | return;
334 | }
335 |
336 | setTimeout(async () => {
337 | try {
338 | const response = await fetch(`${callbackUrl}?task_index=${taskId}`, { signal: AbortSignal.timeout(5000) });
339 | if (response.ok) {
340 | const res = await response.json();
341 | this.removeModal && this.removeModal();
342 | resolve(res.info);
343 | } else {
344 | requestInfo();
345 | }
346 | } catch (error) {
347 | requestInfo();
348 | }
349 | }, 2000);
350 | };
351 |
352 | requestInfo();
353 | });
354 | }
355 |
356 | private async getScanResult(taskId: string) {
357 | return new Promise((resolve, reject) => {
358 | let loopCount = 0;
359 | const requestScanResult = () => {
360 | loopCount++;
361 | if (loopCount > 300) {
362 | reject(new TransgateError(ErrorCode.REQUEST_TIMEOUT, 'Request timeout, please try again'));
363 | return;
364 | }
365 |
366 | if (this.terminal) {
367 | reject(new TransgateError(ErrorCode.VERIFICATION_CANCELED, 'User terminal the validation.'));
368 | return;
369 | }
370 |
371 | setTimeout(async () => {
372 | try {
373 | const response = await await fetch(ScanResultUrl, {
374 | method: 'POST',
375 | headers: {
376 | 'Content-Type': 'application/json',
377 | },
378 | body: JSON.stringify({
379 | task_id: taskId,
380 | }),
381 | });
382 | if (response.ok) {
383 | const res = await response.json();
384 | //Task ID has been used
385 | if (res.info.used) {
386 | resolve(true);
387 | } else {
388 | requestScanResult();
389 | }
390 | } else {
391 | requestScanResult();
392 | }
393 | } catch (error) {
394 | requestScanResult();
395 | }
396 | }, 1000);
397 | };
398 |
399 | requestScanResult();
400 | });
401 | }
402 |
403 | handleIOSModal() {
404 | const { remove } = insertMobileDialog();
405 | this.removeModal = remove;
406 | const closeBtn = document.getElementById('close-transgate');
407 | closeBtn?.addEventListener('click', () => {
408 | remove();
409 | this.terminal = true;
410 | });
411 | }
412 |
413 | handleIOSApp(clipUrl: string) {
414 | const loading_box = document.getElementById('loading-box');
415 | loading_box?.remove();
416 | const complete_box = document.getElementById('complete-box');
417 | const verify_button = document.getElementById('verify-button');
418 | if (complete_box) {
419 | complete_box.style.display = 'flex';
420 | verify_button?.addEventListener('click', () => {
421 | launchApp(clipUrl);
422 | });
423 | }
424 | }
425 |
426 | checkTaskInfo(chainType: ChainType, task: string, schema: string, validatorAddress: string, signature: string) {
427 | if (chainType === 'sol') {
428 | return this.checkTaskInfoForSolana(task, schema, validatorAddress, signature);
429 | } else if (chainType === 'ton') {
430 | return this.checkTaskInfoForTon(task, schema, validatorAddress, signature);
431 | }
432 |
433 | const taskHex = Web3.utils.stringToHex(task);
434 | const schemaHex = Web3.utils.stringToHex(schema);
435 |
436 | return this.checkTaskInfoForEVM(taskHex, schemaHex, validatorAddress, signature);
437 | }
438 |
439 | checkTaskInfoForSolana(task: string, schema: string, validatorAddress: string, signature: string) {
440 | const sig_bytes = hexToBytes(signature.slice(2));
441 |
442 | const signatureBytes = sig_bytes.slice(0, 64);
443 | const recoverId = Array.from(sig_bytes.slice(64))[0];
444 |
445 | const plaintext = borsh.serialize(SolanaTask, {
446 | task: task,
447 | schema: schema,
448 | notary: validatorAddress,
449 | });
450 |
451 | const plaintextHash = Buffer.from(sha3.keccak_256.digest(Buffer.from(plaintext)));
452 |
453 | const address = secp256k1.ecdsaRecover(signatureBytes, recoverId, plaintextHash, false);
454 |
455 | return SolanaTaskAllocator === sha3.keccak_256.hex(address.slice(1));
456 | }
457 |
458 | checkTaskInfoForTon(task: string, schema: string, validatorAddress: string, signature: string) {
459 | const taskCell = beginCell()
460 | .storeBuffer(Buffer.from(task, 'ascii'))
461 | .storeBuffer(Buffer.from(schema, 'ascii'))
462 | .storeBuffer(Buffer.from(validatorAddress, 'hex'))
463 | .endCell();
464 | const taskVerify = signVerify(taskCell.hash(), Buffer.from(signature, 'hex'), Buffer.from(TonTaskPubKey, 'hex'));
465 | return taskVerify;
466 | }
467 |
468 | checkTaskInfoForEVM(task: string, schema: string, validatorAddress: string, signature: string) {
469 | const web3 = new Web3();
470 |
471 | const encodeParams = web3.eth.abi.encodeParameters(
472 | ['bytes32', 'bytes32', 'address'],
473 | [task, schema, validatorAddress],
474 | );
475 | const paramsHash = Web3.utils.soliditySha3(encodeParams) as string;
476 |
477 | const signedAllocatorAddress = web3.eth.accounts.recover(paramsHash, signature);
478 |
479 | return EVMTaskAllocator === signedAllocatorAddress;
480 | }
481 |
482 | /**
483 | * check the proof result by chain type
484 | * @param chainType
485 | * @param schema
486 | * @param proofResult
487 | * @returns
488 | */
489 | verifyProofMessageSignature(chainType: ChainType, schema: string, proofResult: Result) {
490 | const { taskId, publicFieldsHash, uHash, validatorAddress, validatorSignature, recipient } = proofResult;
491 |
492 | const taskHex = Web3.utils.stringToHex(taskId) as string;
493 | const schemaHex = Web3.utils.stringToHex(schema) as string;
494 |
495 | if (chainType === 'sol') {
496 | const rec = recipient as string;
497 |
498 | return this.verifyMessageSignatureForSolana({
499 | taskId,
500 | uHash,
501 | validatorAddress,
502 | schema,
503 | validatorSignature,
504 | recipient: rec,
505 | publicFieldsHash,
506 | });
507 | } else if (chainType === 'ton') {
508 | const rec = recipient as string;
509 | return this.verifyMessageSignatureForTon({
510 | taskId,
511 | uHash,
512 | validatorAddress,
513 | schema,
514 | validatorSignature,
515 | recipient: rec,
516 | publicFieldsHash,
517 | });
518 | }
519 |
520 | return this.verifyEVMMessageSignature(
521 | taskHex,
522 | schemaHex,
523 | uHash,
524 | publicFieldsHash,
525 | validatorSignature,
526 | validatorAddress,
527 | recipient,
528 | );
529 | }
530 |
531 | verifyEVMMessageSignature(
532 | taskId: string,
533 | schema: string,
534 | nullifier: string,
535 | publicFieldsHash: string,
536 | signature: string,
537 | originAddress: string,
538 | recipient?: string,
539 | ) {
540 | const web3 = new Web3();
541 |
542 | const types = ['bytes32', 'bytes32', 'bytes32', 'bytes32'];
543 | const values = [taskId, schema, nullifier, publicFieldsHash];
544 |
545 | if (recipient) {
546 | types.push('address');
547 | values.push(recipient);
548 | }
549 |
550 | const encodeParams = web3.eth.abi.encodeParameters(types, values);
551 |
552 | const paramsHash = Web3.utils.soliditySha3(encodeParams) as string;
553 |
554 | const nodeAddress = web3.eth.accounts.recover(paramsHash, signature);
555 | return nodeAddress === originAddress;
556 | }
557 | /**
558 | * check signature is matched with task info
559 | * @param params
560 | * @returns
561 | */
562 | verifyMessageSignatureForSolana(params: ProofVerifyParams): boolean {
563 | const { taskId, uHash, validatorAddress, schema, validatorSignature, recipient, publicFieldsHash } = params;
564 |
565 | const sig_bytes = hexToBytes(validatorSignature.slice(2));
566 |
567 | const signatureBytes = sig_bytes.slice(0, 64);
568 | const recoverId = Array.from(sig_bytes.slice(64))[0];
569 |
570 | const plaintext = borsh.serialize(Attest, {
571 | task: taskId,
572 | nullifier: uHash,
573 | schema,
574 | recipient,
575 | publicFieldsHash,
576 | });
577 |
578 | const plaintextHash = Buffer.from(sha3.keccak_256.digest(Buffer.from(plaintext)));
579 |
580 | const address = secp256k1.ecdsaRecover(signatureBytes, recoverId, plaintextHash, false);
581 |
582 | return validatorAddress === sha3.keccak_256.hex(address.slice(1));
583 | }
584 | private buildResult(
585 | data: VerifyResult,
586 | taskInfo: Task,
587 | publicData: string,
588 | allocatorAddress: string,
589 | recipient?: string,
590 | ): Result {
591 | const { publicFields, taskId, nullifierHash, signature } = data;
592 | const { node_address: nodeAddress, alloc_signature: allocSignature } = taskInfo;
593 |
594 | const publicFieldsHash = Web3.utils.soliditySha3(
595 | !!publicData ? Web3.utils.stringToHex(textToUnicodeSmart(publicData)) : Web3.utils.utf8ToHex('1'),
596 | ) as string;
597 |
598 | return {
599 | taskId,
600 | publicFields,
601 | allocatorAddress,
602 | publicFieldsHash,
603 | allocatorSignature: allocSignature,
604 | uHash: nullifierHash,
605 | validatorAddress: nodeAddress,
606 | validatorSignature: signature,
607 | recipient,
608 | };
609 | }
610 |
611 | verifyMessageSignatureForTon(params: ProofVerifyParams): boolean {
612 | const { taskId, uHash, validatorAddress, schema, validatorSignature, recipient, publicFieldsHash } = params;
613 |
614 | const attestationCell = beginCell()
615 | .storeRef(
616 | beginCell()
617 | .storeBuffer(Buffer.from(taskId, 'ascii'))
618 | .storeBuffer(Buffer.from(schema, 'ascii'))
619 | .storeBuffer(Buffer.from(uHash.slice(2), 'hex'))
620 | .endCell(),
621 | )
622 | .storeAddress(TonAddress.parse(recipient))
623 | .storeRef(
624 | beginCell()
625 | .storeBuffer(Buffer.from(publicFieldsHash.slice(2), 'hex'))
626 | .endCell(),
627 | )
628 | .endCell();
629 | const attestationVerify = signVerify(
630 | attestationCell.hash(),
631 | Buffer.from(validatorSignature.slice(2), 'hex'),
632 | Buffer.from(validatorAddress, 'hex'),
633 | );
634 |
635 | return attestationVerify;
636 | }
637 |
638 | async isTransgateAvailable() {
639 | try {
640 | const url = `chrome-extension://${extensionId}/images/icon-16.png`;
641 | const { statusText } = await fetch(url);
642 | if (statusText === 'OK') {
643 | this.transgateAvailable = true;
644 | return true;
645 | }
646 | return false;
647 | } catch (error) {
648 | return false;
649 | }
650 | }
651 | }
652 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@adraffy/ens-normalize@^1.8.8":
6 | version "1.10.0"
7 | resolved "https://registry.npmmirror.com/@adraffy/ens-normalize/-/ens-normalize-1.10.0.tgz#d2a39395c587e092d77cbbc80acf956a54f38bf7"
8 | integrity sha512-nA9XHtlAkYfJxY7bce8DcN7eKxWWCWkU+1GR9d+U6MbNpfwQp8TI7vqOsBsMcHoT4mBu2kypKoSKnghEzOOq5Q==
9 |
10 | "@babel/code-frame@^7.0.0":
11 | version "7.23.4"
12 | resolved "https://registry.npmmirror.com/@babel/code-frame/-/code-frame-7.23.4.tgz#03ae5af150be94392cb5c7ccd97db5a19a5da6aa"
13 | integrity sha512-r1IONyb6Ia+jYR2vvIDhdWdlTGhqbBoFqLTQidzZ4kepUFH15ejXvFHxCVbtl7BOXIudsIubf4E81xeA3h3IXA==
14 | dependencies:
15 | "@babel/highlight" "^7.23.4"
16 | chalk "^2.4.2"
17 |
18 | "@babel/helper-validator-identifier@^7.22.20":
19 | version "7.22.20"
20 | resolved "https://registry.npmmirror.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0"
21 | integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==
22 |
23 | "@babel/highlight@^7.23.4":
24 | version "7.23.4"
25 | resolved "https://registry.npmmirror.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b"
26 | integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==
27 | dependencies:
28 | "@babel/helper-validator-identifier" "^7.22.20"
29 | chalk "^2.4.2"
30 | js-tokens "^4.0.0"
31 |
32 | "@eslint-community/eslint-utils@^4.4.0":
33 | version "4.4.0"
34 | resolved "https://registry.npmmirror.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59"
35 | integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==
36 | dependencies:
37 | eslint-visitor-keys "^3.3.0"
38 |
39 | "@eslint-community/regexpp@^4.5.1":
40 | version "4.10.0"
41 | resolved "https://registry.npmmirror.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63"
42 | integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==
43 |
44 | "@ethereumjs/rlp@^4.0.1":
45 | version "4.0.1"
46 | resolved "https://registry.npmmirror.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41"
47 | integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw==
48 |
49 | "@noble/curves@1.1.0", "@noble/curves@~1.1.0":
50 | version "1.1.0"
51 | resolved "https://registry.npmmirror.com/@noble/curves/-/curves-1.1.0.tgz#f13fc667c89184bc04cccb9b11e8e7bae27d8c3d"
52 | integrity sha512-091oBExgENk/kGj3AZmtBDMpxQPDtxQABR2B9lb1JbVTs6ytdzZNwvhxQ4MWasRNEzlbEH8jCWFCwhF/Obj5AA==
53 | dependencies:
54 | "@noble/hashes" "1.3.1"
55 |
56 | "@noble/hashes@1.3.1":
57 | version "1.3.1"
58 | resolved "https://registry.npmmirror.com/@noble/hashes/-/hashes-1.3.1.tgz#8831ef002114670c603c458ab8b11328406953a9"
59 | integrity sha512-EbqwksQwz9xDRGfDST86whPBgM65E0OH/pCgqW0GBVzO22bNE+NuIbeTb714+IfSjU3aRk47EUvXIb5bTsenKA==
60 |
61 | "@noble/hashes@~1.3.0", "@noble/hashes@~1.3.1":
62 | version "1.3.2"
63 | resolved "https://registry.npmmirror.com/@noble/hashes/-/hashes-1.3.2.tgz#6f26dbc8fbc7205873ce3cee2f690eba0d421b39"
64 | integrity sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ==
65 |
66 | "@nodelib/fs.scandir@2.1.5":
67 | version "2.1.5"
68 | resolved "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
69 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
70 | dependencies:
71 | "@nodelib/fs.stat" "2.0.5"
72 | run-parallel "^1.1.9"
73 |
74 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
75 | version "2.0.5"
76 | resolved "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
77 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
78 |
79 | "@nodelib/fs.walk@^1.2.3":
80 | version "1.2.8"
81 | resolved "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
82 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
83 | dependencies:
84 | "@nodelib/fs.scandir" "2.1.5"
85 | fastq "^1.6.0"
86 |
87 | "@scure/base@~1.1.0":
88 | version "1.1.3"
89 | resolved "https://registry.npmmirror.com/@scure/base/-/base-1.1.3.tgz#8584115565228290a6c6c4961973e0903bb3df2f"
90 | integrity sha512-/+SgoRjLq7Xlf0CWuLHq2LUZeL/w65kfzAPG5NH9pcmBhs+nunQTn4gvdwgMTIXnt9b2C/1SeL2XiysZEyIC9Q==
91 |
92 | "@scure/bip32@1.3.1":
93 | version "1.3.1"
94 | resolved "https://registry.npmmirror.com/@scure/bip32/-/bip32-1.3.1.tgz#7248aea723667f98160f593d621c47e208ccbb10"
95 | integrity sha512-osvveYtyzdEVbt3OfwwXFr4P2iVBL5u1Q3q4ONBfDY/UpOuXmOlbgwc1xECEboY8wIays8Yt6onaWMUdUbfl0A==
96 | dependencies:
97 | "@noble/curves" "~1.1.0"
98 | "@noble/hashes" "~1.3.1"
99 | "@scure/base" "~1.1.0"
100 |
101 | "@scure/bip39@1.2.1":
102 | version "1.2.1"
103 | resolved "https://registry.npmmirror.com/@scure/bip39/-/bip39-1.2.1.tgz#5cee8978656b272a917b7871c981e0541ad6ac2a"
104 | integrity sha512-Z3/Fsz1yr904dduJD0NpiyRHhRYHdcnyh73FZWiV+/qhWi83wNJ3NWolYqCEN+ZWsUz2TWwajJggcRE9r1zUYg==
105 | dependencies:
106 | "@noble/hashes" "~1.3.0"
107 | "@scure/base" "~1.1.0"
108 |
109 | "@ton/core@^0.58.1":
110 | version "0.58.1"
111 | resolved "https://registry.yarnpkg.com/@ton/core/-/core-0.58.1.tgz#f6f2ecef6a7149bcd23825bfbb454f116d54363f"
112 | integrity sha512-zydh42iT6E3U3Ky/DhTFqJMN/ycKKzbsHASY257Qr2sZn97G/MOcHFizPfMnbJJgx0H9iHX6mdyMvp1IKBVAFA==
113 | dependencies:
114 | symbol.inspect "1.0.1"
115 |
116 | "@ton/crypto-primitives@2.1.0":
117 | version "2.1.0"
118 | resolved "https://registry.yarnpkg.com/@ton/crypto-primitives/-/crypto-primitives-2.1.0.tgz#8c9277c250b59aae3c819e0d6bd61e44d998e9ca"
119 | integrity sha512-PQesoyPgqyI6vzYtCXw4/ZzevePc4VGcJtFwf08v10OevVJHVfW238KBdpj1kEDQkxWLeuNHEpTECNFKnP6tow==
120 | dependencies:
121 | jssha "3.2.0"
122 |
123 | "@ton/crypto@^3.3.0":
124 | version "3.3.0"
125 | resolved "https://registry.yarnpkg.com/@ton/crypto/-/crypto-3.3.0.tgz#019103df6540fbc1d8102979b4587bc85ff9779e"
126 | integrity sha512-/A6CYGgA/H36OZ9BbTaGerKtzWp50rg67ZCH2oIjV1NcrBaCK9Z343M+CxedvM7Haf3f/Ee9EhxyeTp0GKMUpA==
127 | dependencies:
128 | "@ton/crypto-primitives" "2.1.0"
129 | jssha "3.2.0"
130 | tweetnacl "1.0.3"
131 |
132 | "@ton/ton@^15.0.0":
133 | version "15.0.0"
134 | resolved "https://registry.yarnpkg.com/@ton/ton/-/ton-15.0.0.tgz#03aab727d082db877ec6012f3b1b3fb6aa564b40"
135 | integrity sha512-0xBivkN0u0+vczt3mKJrx5yqkCxRR00wM8gXCmN/eOzzHKXRFWDEjJp8EEs5J/mq1Op/OhCOFExmOZkr58wgOA==
136 | dependencies:
137 | axios "^1.6.7"
138 | dataloader "^2.0.0"
139 | symbol.inspect "1.0.1"
140 | teslabot "^1.3.0"
141 | zod "^3.21.4"
142 |
143 | "@types/json-schema@^7.0.12":
144 | version "7.0.15"
145 | resolved "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
146 | integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
147 |
148 | "@types/node@*", "@types/node@^20.9.2":
149 | version "20.10.0"
150 | resolved "https://registry.npmmirror.com/@types/node/-/node-20.10.0.tgz#16ddf9c0a72b832ec4fcce35b8249cf149214617"
151 | integrity sha512-D0WfRmU9TQ8I9PFx9Yc+EBHw+vSpIub4IDvQivcp26PtPrdMGAq5SDcpXEo/epqa/DXotVpekHiLNTg3iaKXBQ==
152 | dependencies:
153 | undici-types "~5.26.4"
154 |
155 | "@types/qrcode@^1.5.5":
156 | version "1.5.5"
157 | resolved "https://registry.yarnpkg.com/@types/qrcode/-/qrcode-1.5.5.tgz#993ff7c6b584277eee7aac0a20861eab682f9dac"
158 | integrity sha512-CdfBi/e3Qk+3Z/fXYShipBT13OJ2fDO2Q2w5CIP5anLTLIndQG9z6P1cnm+8zCWSpm5dnxMFd/uREtb0EXuQzg==
159 | dependencies:
160 | "@types/node" "*"
161 |
162 | "@types/secp256k1@^4.0.6":
163 | version "4.0.6"
164 | resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.6.tgz#d60ba2349a51c2cbc5e816dcd831a42029d376bf"
165 | integrity sha512-hHxJU6PAEUn0TP4S/ZOzuTUvJWuZ6eIKeNKb5RBpODvSl6hp1Wrw4s7ATY50rklRCScUDpHzVA/DQdSjJ3UoYQ==
166 | dependencies:
167 | "@types/node" "*"
168 |
169 | "@types/semver@^7.5.0":
170 | version "7.5.6"
171 | resolved "https://registry.npmmirror.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339"
172 | integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==
173 |
174 | "@types/ws@8.5.3":
175 | version "8.5.3"
176 | resolved "https://registry.npmmirror.com/@types/ws/-/ws-8.5.3.tgz#7d25a1ffbecd3c4f2d35068d0b283c037003274d"
177 | integrity sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==
178 | dependencies:
179 | "@types/node" "*"
180 |
181 | "@typescript-eslint/eslint-plugin@^6.14.0":
182 | version "6.14.0"
183 | resolved "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.14.0.tgz#fc1ab5f23618ba590c87e8226ff07a760be3dd7b"
184 | integrity sha512-1ZJBykBCXaSHG94vMMKmiHoL0MhNHKSVlcHVYZNw+BKxufhqQVTOawNpwwI1P5nIFZ/4jLVop0mcY6mJJDFNaw==
185 | dependencies:
186 | "@eslint-community/regexpp" "^4.5.1"
187 | "@typescript-eslint/scope-manager" "6.14.0"
188 | "@typescript-eslint/type-utils" "6.14.0"
189 | "@typescript-eslint/utils" "6.14.0"
190 | "@typescript-eslint/visitor-keys" "6.14.0"
191 | debug "^4.3.4"
192 | graphemer "^1.4.0"
193 | ignore "^5.2.4"
194 | natural-compare "^1.4.0"
195 | semver "^7.5.4"
196 | ts-api-utils "^1.0.1"
197 |
198 | "@typescript-eslint/parser@^6.14.0":
199 | version "6.14.0"
200 | resolved "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-6.14.0.tgz#a2d6a732e0d2b95c73f6a26ae7362877cc1b4212"
201 | integrity sha512-QjToC14CKacd4Pa7JK4GeB/vHmWFJckec49FR4hmIRf97+KXole0T97xxu9IFiPxVQ1DBWrQ5wreLwAGwWAVQA==
202 | dependencies:
203 | "@typescript-eslint/scope-manager" "6.14.0"
204 | "@typescript-eslint/types" "6.14.0"
205 | "@typescript-eslint/typescript-estree" "6.14.0"
206 | "@typescript-eslint/visitor-keys" "6.14.0"
207 | debug "^4.3.4"
208 |
209 | "@typescript-eslint/scope-manager@6.14.0":
210 | version "6.14.0"
211 | resolved "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz#53d24363fdb5ee0d1d8cda4ed5e5321272ab3d48"
212 | integrity sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg==
213 | dependencies:
214 | "@typescript-eslint/types" "6.14.0"
215 | "@typescript-eslint/visitor-keys" "6.14.0"
216 |
217 | "@typescript-eslint/type-utils@6.14.0":
218 | version "6.14.0"
219 | resolved "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-6.14.0.tgz#ac9cb5ba0615c837f1a6b172feeb273d36e4f8af"
220 | integrity sha512-x6OC9Q7HfYKqjnuNu5a7kffIYs3No30isapRBJl1iCHLitD8O0lFbRcVGiOcuyN837fqXzPZ1NS10maQzZMKqw==
221 | dependencies:
222 | "@typescript-eslint/typescript-estree" "6.14.0"
223 | "@typescript-eslint/utils" "6.14.0"
224 | debug "^4.3.4"
225 | ts-api-utils "^1.0.1"
226 |
227 | "@typescript-eslint/types@6.14.0":
228 | version "6.14.0"
229 | resolved "https://registry.npmmirror.com/@typescript-eslint/types/-/types-6.14.0.tgz#935307f7a931016b7a5eb25d494ea3e1f613e929"
230 | integrity sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA==
231 |
232 | "@typescript-eslint/typescript-estree@6.14.0":
233 | version "6.14.0"
234 | resolved "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz#90c7ddd45cd22139adf3d4577580d04c9189ac13"
235 | integrity sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw==
236 | dependencies:
237 | "@typescript-eslint/types" "6.14.0"
238 | "@typescript-eslint/visitor-keys" "6.14.0"
239 | debug "^4.3.4"
240 | globby "^11.1.0"
241 | is-glob "^4.0.3"
242 | semver "^7.5.4"
243 | ts-api-utils "^1.0.1"
244 |
245 | "@typescript-eslint/utils@6.14.0":
246 | version "6.14.0"
247 | resolved "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-6.14.0.tgz#856a9e274367d99ffbd39c48128b93a86c4261e3"
248 | integrity sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg==
249 | dependencies:
250 | "@eslint-community/eslint-utils" "^4.4.0"
251 | "@types/json-schema" "^7.0.12"
252 | "@types/semver" "^7.5.0"
253 | "@typescript-eslint/scope-manager" "6.14.0"
254 | "@typescript-eslint/types" "6.14.0"
255 | "@typescript-eslint/typescript-estree" "6.14.0"
256 | semver "^7.5.4"
257 |
258 | "@typescript-eslint/visitor-keys@6.14.0":
259 | version "6.14.0"
260 | resolved "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz#1d1d486581819287de824a56c22f32543561138e"
261 | integrity sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw==
262 | dependencies:
263 | "@typescript-eslint/types" "6.14.0"
264 | eslint-visitor-keys "^3.4.1"
265 |
266 | abitype@0.7.1:
267 | version "0.7.1"
268 | resolved "https://registry.npmmirror.com/abitype/-/abitype-0.7.1.tgz#16db20abe67de80f6183cf75f3de1ff86453b745"
269 | integrity sha512-VBkRHTDZf9Myaek/dO3yMmOzB/y2s3Zo6nVU7yaw1G+TvCHAjwaJzNGN9yo4K5D8bU/VZXKP1EJpRhFr862PlQ==
270 |
271 | ansi-regex@^5.0.1:
272 | version "5.0.1"
273 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
274 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
275 |
276 | ansi-styles@^3.2.1:
277 | version "3.2.1"
278 | resolved "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
279 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
280 | dependencies:
281 | color-convert "^1.9.0"
282 |
283 | ansi-styles@^4.0.0:
284 | version "4.3.0"
285 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
286 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
287 | dependencies:
288 | color-convert "^2.0.1"
289 |
290 | argparse@^1.0.7:
291 | version "1.0.10"
292 | resolved "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
293 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
294 | dependencies:
295 | sprintf-js "~1.0.2"
296 |
297 | array-union@^2.1.0:
298 | version "2.1.0"
299 | resolved "https://registry.npmmirror.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
300 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
301 |
302 | asynckit@^0.4.0:
303 | version "0.4.0"
304 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
305 | integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
306 |
307 | available-typed-arrays@^1.0.5:
308 | version "1.0.5"
309 | resolved "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7"
310 | integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==
311 |
312 | axios@^1.6.7:
313 | version "1.7.7"
314 | resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f"
315 | integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==
316 | dependencies:
317 | follow-redirects "^1.15.6"
318 | form-data "^4.0.0"
319 | proxy-from-env "^1.1.0"
320 |
321 | balanced-match@^1.0.0:
322 | version "1.0.2"
323 | resolved "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
324 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
325 |
326 | base64-js@^1.3.1:
327 | version "1.5.1"
328 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
329 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
330 |
331 | bn.js@^4.11.9:
332 | version "4.12.0"
333 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
334 | integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
335 |
336 | borsh@^2.0.0:
337 | version "2.0.0"
338 | resolved "https://registry.yarnpkg.com/borsh/-/borsh-2.0.0.tgz#042a9f109565caac3c6a21297cd8c0ae8db3149d"
339 | integrity sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg==
340 |
341 | brace-expansion@^1.1.7:
342 | version "1.1.11"
343 | resolved "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
344 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
345 | dependencies:
346 | balanced-match "^1.0.0"
347 | concat-map "0.0.1"
348 |
349 | braces@^3.0.2:
350 | version "3.0.2"
351 | resolved "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
352 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
353 | dependencies:
354 | fill-range "^7.0.1"
355 |
356 | brorand@^1.1.0:
357 | version "1.1.0"
358 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
359 | integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==
360 |
361 | buffer@^6.0.3:
362 | version "6.0.3"
363 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
364 | integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
365 | dependencies:
366 | base64-js "^1.3.1"
367 | ieee754 "^1.2.1"
368 |
369 | builtin-modules@^1.1.1:
370 | version "1.1.1"
371 | resolved "https://registry.npmmirror.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
372 | integrity sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==
373 |
374 | call-bind@^1.0.2, call-bind@^1.0.4:
375 | version "1.0.5"
376 | resolved "https://registry.npmmirror.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513"
377 | integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==
378 | dependencies:
379 | function-bind "^1.1.2"
380 | get-intrinsic "^1.2.1"
381 | set-function-length "^1.1.1"
382 |
383 | camelcase@^5.0.0:
384 | version "5.3.1"
385 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
386 | integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
387 |
388 | chalk@^2.3.0, chalk@^2.4.2:
389 | version "2.4.2"
390 | resolved "https://registry.npmmirror.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
391 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
392 | dependencies:
393 | ansi-styles "^3.2.1"
394 | escape-string-regexp "^1.0.5"
395 | supports-color "^5.3.0"
396 |
397 | cliui@^6.0.0:
398 | version "6.0.0"
399 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1"
400 | integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==
401 | dependencies:
402 | string-width "^4.2.0"
403 | strip-ansi "^6.0.0"
404 | wrap-ansi "^6.2.0"
405 |
406 | color-convert@^1.9.0:
407 | version "1.9.3"
408 | resolved "https://registry.npmmirror.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
409 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
410 | dependencies:
411 | color-name "1.1.3"
412 |
413 | color-convert@^2.0.1:
414 | version "2.0.1"
415 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
416 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
417 | dependencies:
418 | color-name "~1.1.4"
419 |
420 | color-name@1.1.3:
421 | version "1.1.3"
422 | resolved "https://registry.npmmirror.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
423 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
424 |
425 | color-name@~1.1.4:
426 | version "1.1.4"
427 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
428 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
429 |
430 | combined-stream@^1.0.8:
431 | version "1.0.8"
432 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
433 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
434 | dependencies:
435 | delayed-stream "~1.0.0"
436 |
437 | commander@^2.12.1:
438 | version "2.20.3"
439 | resolved "https://registry.npmmirror.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
440 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
441 |
442 | concat-map@0.0.1:
443 | version "0.0.1"
444 | resolved "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
445 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
446 |
447 | crc-32@^1.2.2:
448 | version "1.2.2"
449 | resolved "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff"
450 | integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==
451 |
452 | cross-fetch@^4.0.0:
453 | version "4.0.0"
454 | resolved "https://registry.npmmirror.com/cross-fetch/-/cross-fetch-4.0.0.tgz#f037aef1580bb3a1a35164ea2a848ba81b445983"
455 | integrity sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==
456 | dependencies:
457 | node-fetch "^2.6.12"
458 |
459 | dataloader@^2.0.0:
460 | version "2.2.2"
461 | resolved "https://registry.yarnpkg.com/dataloader/-/dataloader-2.2.2.tgz#216dc509b5abe39d43a9b9d97e6e5e473dfbe3e0"
462 | integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==
463 |
464 | debug@^4.3.4:
465 | version "4.3.4"
466 | resolved "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
467 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
468 | dependencies:
469 | ms "2.1.2"
470 |
471 | decamelize@^1.2.0:
472 | version "1.2.0"
473 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
474 | integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
475 |
476 | define-data-property@^1.1.1:
477 | version "1.1.1"
478 | resolved "https://registry.npmmirror.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3"
479 | integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==
480 | dependencies:
481 | get-intrinsic "^1.2.1"
482 | gopd "^1.0.1"
483 | has-property-descriptors "^1.0.0"
484 |
485 | delayed-stream@~1.0.0:
486 | version "1.0.0"
487 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
488 | integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
489 |
490 | diff@^4.0.1:
491 | version "4.0.2"
492 | resolved "https://registry.npmmirror.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
493 | integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
494 |
495 | dijkstrajs@^1.0.1:
496 | version "1.0.3"
497 | resolved "https://registry.yarnpkg.com/dijkstrajs/-/dijkstrajs-1.0.3.tgz#4c8dbdea1f0f6478bff94d9c49c784d623e4fc23"
498 | integrity sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==
499 |
500 | dir-glob@^3.0.1:
501 | version "3.0.1"
502 | resolved "https://registry.npmmirror.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
503 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
504 | dependencies:
505 | path-type "^4.0.0"
506 |
507 | elliptic@^6.5.4:
508 | version "6.5.5"
509 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.5.tgz#c715e09f78b6923977610d4c2346d6ce22e6dded"
510 | integrity sha512-7EjbcmUm17NQFu4Pmgmq2olYMj8nwMnpcddByChSUjArp8F5DQWcIcpriwO4ZToLNAJig0yiyjswfyGNje/ixw==
511 | dependencies:
512 | bn.js "^4.11.9"
513 | brorand "^1.1.0"
514 | hash.js "^1.0.0"
515 | hmac-drbg "^1.0.1"
516 | inherits "^2.0.4"
517 | minimalistic-assert "^1.0.1"
518 | minimalistic-crypto-utils "^1.0.1"
519 |
520 | emoji-regex@^8.0.0:
521 | version "8.0.0"
522 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
523 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
524 |
525 | escape-string-regexp@^1.0.5:
526 | version "1.0.5"
527 | resolved "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
528 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
529 |
530 | eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1:
531 | version "3.4.3"
532 | resolved "https://registry.npmmirror.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
533 | integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
534 |
535 | esprima@^4.0.0:
536 | version "4.0.1"
537 | resolved "https://registry.npmmirror.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
538 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
539 |
540 | ethereum-cryptography@^2.0.0:
541 | version "2.1.2"
542 | resolved "https://registry.npmmirror.com/ethereum-cryptography/-/ethereum-cryptography-2.1.2.tgz#18fa7108622e56481157a5cb7c01c0c6a672eb67"
543 | integrity sha512-Z5Ba0T0ImZ8fqXrJbpHcbpAvIswRte2wGNR/KePnu8GbbvgJ47lMxT/ZZPG6i9Jaht4azPDop4HaM00J0J59ug==
544 | dependencies:
545 | "@noble/curves" "1.1.0"
546 | "@noble/hashes" "1.3.1"
547 | "@scure/bip32" "1.3.1"
548 | "@scure/bip39" "1.2.1"
549 |
550 | fast-glob@^3.2.9:
551 | version "3.3.2"
552 | resolved "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
553 | integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
554 | dependencies:
555 | "@nodelib/fs.stat" "^2.0.2"
556 | "@nodelib/fs.walk" "^1.2.3"
557 | glob-parent "^5.1.2"
558 | merge2 "^1.3.0"
559 | micromatch "^4.0.4"
560 |
561 | fastq@^1.6.0:
562 | version "1.15.0"
563 | resolved "https://registry.npmmirror.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a"
564 | integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==
565 | dependencies:
566 | reusify "^1.0.4"
567 |
568 | fill-range@^7.0.1:
569 | version "7.0.1"
570 | resolved "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
571 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
572 | dependencies:
573 | to-regex-range "^5.0.1"
574 |
575 | find-up@^4.1.0:
576 | version "4.1.0"
577 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19"
578 | integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==
579 | dependencies:
580 | locate-path "^5.0.0"
581 | path-exists "^4.0.0"
582 |
583 | follow-redirects@^1.15.6:
584 | version "1.15.9"
585 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1"
586 | integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==
587 |
588 | for-each@^0.3.3:
589 | version "0.3.3"
590 | resolved "https://registry.npmmirror.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e"
591 | integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==
592 | dependencies:
593 | is-callable "^1.1.3"
594 |
595 | form-data@^4.0.0:
596 | version "4.0.0"
597 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
598 | integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
599 | dependencies:
600 | asynckit "^0.4.0"
601 | combined-stream "^1.0.8"
602 | mime-types "^2.1.12"
603 |
604 | fs.realpath@^1.0.0:
605 | version "1.0.0"
606 | resolved "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
607 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
608 |
609 | function-bind@^1.1.2:
610 | version "1.1.2"
611 | resolved "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
612 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
613 |
614 | get-caller-file@^2.0.1:
615 | version "2.0.5"
616 | resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
617 | integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
618 |
619 | get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2:
620 | version "1.2.2"
621 | resolved "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b"
622 | integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==
623 | dependencies:
624 | function-bind "^1.1.2"
625 | has-proto "^1.0.1"
626 | has-symbols "^1.0.3"
627 | hasown "^2.0.0"
628 |
629 | glob-parent@^5.1.2:
630 | version "5.1.2"
631 | resolved "https://registry.npmmirror.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
632 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
633 | dependencies:
634 | is-glob "^4.0.1"
635 |
636 | glob@^7.1.1:
637 | version "7.2.3"
638 | resolved "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
639 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
640 | dependencies:
641 | fs.realpath "^1.0.0"
642 | inflight "^1.0.4"
643 | inherits "2"
644 | minimatch "^3.1.1"
645 | once "^1.3.0"
646 | path-is-absolute "^1.0.0"
647 |
648 | globby@^11.1.0:
649 | version "11.1.0"
650 | resolved "https://registry.npmmirror.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
651 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
652 | dependencies:
653 | array-union "^2.1.0"
654 | dir-glob "^3.0.1"
655 | fast-glob "^3.2.9"
656 | ignore "^5.2.0"
657 | merge2 "^1.4.1"
658 | slash "^3.0.0"
659 |
660 | gopd@^1.0.1:
661 | version "1.0.1"
662 | resolved "https://registry.npmmirror.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
663 | integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
664 | dependencies:
665 | get-intrinsic "^1.1.3"
666 |
667 | graphemer@^1.4.0:
668 | version "1.4.0"
669 | resolved "https://registry.npmmirror.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
670 | integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
671 |
672 | has-flag@^3.0.0:
673 | version "3.0.0"
674 | resolved "https://registry.npmmirror.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
675 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
676 |
677 | has-property-descriptors@^1.0.0:
678 | version "1.0.1"
679 | resolved "https://registry.npmmirror.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340"
680 | integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==
681 | dependencies:
682 | get-intrinsic "^1.2.2"
683 |
684 | has-proto@^1.0.1:
685 | version "1.0.1"
686 | resolved "https://registry.npmmirror.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0"
687 | integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==
688 |
689 | has-symbols@^1.0.2, has-symbols@^1.0.3:
690 | version "1.0.3"
691 | resolved "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
692 | integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
693 |
694 | has-tostringtag@^1.0.0:
695 | version "1.0.0"
696 | resolved "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25"
697 | integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==
698 | dependencies:
699 | has-symbols "^1.0.2"
700 |
701 | hash.js@^1.0.0, hash.js@^1.0.3:
702 | version "1.1.7"
703 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
704 | integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
705 | dependencies:
706 | inherits "^2.0.3"
707 | minimalistic-assert "^1.0.1"
708 |
709 | hasown@^2.0.0:
710 | version "2.0.0"
711 | resolved "https://registry.npmmirror.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c"
712 | integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==
713 | dependencies:
714 | function-bind "^1.1.2"
715 |
716 | hmac-drbg@^1.0.1:
717 | version "1.0.1"
718 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
719 | integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==
720 | dependencies:
721 | hash.js "^1.0.3"
722 | minimalistic-assert "^1.0.0"
723 | minimalistic-crypto-utils "^1.0.1"
724 |
725 | ieee754@^1.2.1:
726 | version "1.2.1"
727 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
728 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
729 |
730 | ignore@^5.2.0, ignore@^5.2.4:
731 | version "5.3.0"
732 | resolved "https://registry.npmmirror.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78"
733 | integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==
734 |
735 | inflight@^1.0.4:
736 | version "1.0.6"
737 | resolved "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
738 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
739 | dependencies:
740 | once "^1.3.0"
741 | wrappy "1"
742 |
743 | inherits@2, inherits@^2.0.3, inherits@^2.0.4:
744 | version "2.0.4"
745 | resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
746 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
747 |
748 | is-arguments@^1.0.4:
749 | version "1.1.1"
750 | resolved "https://registry.npmmirror.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b"
751 | integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==
752 | dependencies:
753 | call-bind "^1.0.2"
754 | has-tostringtag "^1.0.0"
755 |
756 | is-callable@^1.1.3:
757 | version "1.2.7"
758 | resolved "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
759 | integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
760 |
761 | is-core-module@^2.13.0:
762 | version "2.13.1"
763 | resolved "https://registry.npmmirror.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384"
764 | integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==
765 | dependencies:
766 | hasown "^2.0.0"
767 |
768 | is-extglob@^2.1.1:
769 | version "2.1.1"
770 | resolved "https://registry.npmmirror.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
771 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
772 |
773 | is-fullwidth-code-point@^3.0.0:
774 | version "3.0.0"
775 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
776 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
777 |
778 | is-generator-function@^1.0.7:
779 | version "1.0.10"
780 | resolved "https://registry.npmmirror.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72"
781 | integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==
782 | dependencies:
783 | has-tostringtag "^1.0.0"
784 |
785 | is-glob@^4.0.1, is-glob@^4.0.3:
786 | version "4.0.3"
787 | resolved "https://registry.npmmirror.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
788 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
789 | dependencies:
790 | is-extglob "^2.1.1"
791 |
792 | is-number@^7.0.0:
793 | version "7.0.0"
794 | resolved "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
795 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
796 |
797 | is-typed-array@^1.1.3:
798 | version "1.1.12"
799 | resolved "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a"
800 | integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==
801 | dependencies:
802 | which-typed-array "^1.1.11"
803 |
804 | isomorphic-ws@^5.0.0:
805 | version "5.0.0"
806 | resolved "https://registry.npmmirror.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf"
807 | integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==
808 |
809 | js-sha3@^0.9.3:
810 | version "0.9.3"
811 | resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.9.3.tgz#f0209432b23a66a0f6c7af592c26802291a75c2a"
812 | integrity sha512-BcJPCQeLg6WjEx3FE591wVAevlli8lxsxm9/FzV4HXkV49TmBH38Yvrpce6fjbADGMKFrBMGTqrVz3qPIZ88Gg==
813 |
814 | js-tokens@^4.0.0:
815 | version "4.0.0"
816 | resolved "https://registry.npmmirror.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
817 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
818 |
819 | js-yaml@^3.13.1:
820 | version "3.14.1"
821 | resolved "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
822 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
823 | dependencies:
824 | argparse "^1.0.7"
825 | esprima "^4.0.0"
826 |
827 | jssha@3.2.0:
828 | version "3.2.0"
829 | resolved "https://registry.yarnpkg.com/jssha/-/jssha-3.2.0.tgz#88ec50b866dd1411deaddbe6b3e3692e4c710f16"
830 | integrity sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q==
831 |
832 | locate-path@^5.0.0:
833 | version "5.0.0"
834 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0"
835 | integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==
836 | dependencies:
837 | p-locate "^4.1.0"
838 |
839 | lru-cache@^6.0.0:
840 | version "6.0.0"
841 | resolved "https://registry.npmmirror.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
842 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
843 | dependencies:
844 | yallist "^4.0.0"
845 |
846 | merge2@^1.3.0, merge2@^1.4.1:
847 | version "1.4.1"
848 | resolved "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
849 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
850 |
851 | micromatch@^4.0.4:
852 | version "4.0.5"
853 | resolved "https://registry.npmmirror.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
854 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
855 | dependencies:
856 | braces "^3.0.2"
857 | picomatch "^2.3.1"
858 |
859 | mime-db@1.52.0:
860 | version "1.52.0"
861 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
862 | integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
863 |
864 | mime-types@^2.1.12:
865 | version "2.1.35"
866 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
867 | integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
868 | dependencies:
869 | mime-db "1.52.0"
870 |
871 | minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
872 | version "1.0.1"
873 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
874 | integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
875 |
876 | minimalistic-crypto-utils@^1.0.1:
877 | version "1.0.1"
878 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
879 | integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==
880 |
881 | minimatch@^3.0.4, minimatch@^3.1.1:
882 | version "3.1.2"
883 | resolved "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
884 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
885 | dependencies:
886 | brace-expansion "^1.1.7"
887 |
888 | minimist@^1.2.6:
889 | version "1.2.8"
890 | resolved "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
891 | integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
892 |
893 | mkdirp@^0.5.3:
894 | version "0.5.6"
895 | resolved "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
896 | integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
897 | dependencies:
898 | minimist "^1.2.6"
899 |
900 | ms@2.1.2:
901 | version "2.1.2"
902 | resolved "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
903 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
904 |
905 | natural-compare@^1.4.0:
906 | version "1.4.0"
907 | resolved "https://registry.npmmirror.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
908 | integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
909 |
910 | node-addon-api@^5.0.0:
911 | version "5.1.0"
912 | resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762"
913 | integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==
914 |
915 | node-fetch@^2.6.12:
916 | version "2.7.0"
917 | resolved "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
918 | integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
919 | dependencies:
920 | whatwg-url "^5.0.0"
921 |
922 | node-gyp-build@^4.2.0:
923 | version "4.8.1"
924 | resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.1.tgz#976d3ad905e71b76086f4f0b0d3637fe79b6cda5"
925 | integrity sha512-OSs33Z9yWr148JZcbZd5WiAXhh/n9z8TxQcdMhIOlpN9AhWpLfvVFO73+m77bBABQMaY9XSvIa+qk0jlI7Gcaw==
926 |
927 | once@^1.3.0:
928 | version "1.4.0"
929 | resolved "https://registry.npmmirror.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
930 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
931 | dependencies:
932 | wrappy "1"
933 |
934 | p-limit@^2.2.0:
935 | version "2.3.0"
936 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1"
937 | integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==
938 | dependencies:
939 | p-try "^2.0.0"
940 |
941 | p-locate@^4.1.0:
942 | version "4.1.0"
943 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07"
944 | integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==
945 | dependencies:
946 | p-limit "^2.2.0"
947 |
948 | p-try@^2.0.0:
949 | version "2.2.0"
950 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
951 | integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
952 |
953 | path-exists@^4.0.0:
954 | version "4.0.0"
955 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
956 | integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
957 |
958 | path-is-absolute@^1.0.0:
959 | version "1.0.1"
960 | resolved "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
961 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
962 |
963 | path-parse@^1.0.7:
964 | version "1.0.7"
965 | resolved "https://registry.npmmirror.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
966 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
967 |
968 | path-type@^4.0.0:
969 | version "4.0.0"
970 | resolved "https://registry.npmmirror.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
971 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
972 |
973 | picomatch@^2.3.1:
974 | version "2.3.1"
975 | resolved "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
976 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
977 |
978 | pngjs@^5.0.0:
979 | version "5.0.0"
980 | resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-5.0.0.tgz#e79dd2b215767fd9c04561c01236df960bce7fbb"
981 | integrity sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==
982 |
983 | prettier@^3.1.0:
984 | version "3.1.0"
985 | resolved "https://registry.npmmirror.com/prettier/-/prettier-3.1.0.tgz#c6d16474a5f764ea1a4a373c593b779697744d5e"
986 | integrity sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==
987 |
988 | proxy-from-env@^1.1.0:
989 | version "1.1.0"
990 | resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
991 | integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
992 |
993 | qrcode@^1.5.4:
994 | version "1.5.4"
995 | resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.5.4.tgz#5cb81d86eb57c675febb08cf007fff963405da88"
996 | integrity sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==
997 | dependencies:
998 | dijkstrajs "^1.0.1"
999 | pngjs "^5.0.0"
1000 | yargs "^15.3.1"
1001 |
1002 | queue-microtask@^1.2.2:
1003 | version "1.2.3"
1004 | resolved "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
1005 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
1006 |
1007 | require-directory@^2.1.1:
1008 | version "2.1.1"
1009 | resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
1010 | integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
1011 |
1012 | require-main-filename@^2.0.0:
1013 | version "2.0.0"
1014 | resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b"
1015 | integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==
1016 |
1017 | resolve@^1.3.2:
1018 | version "1.22.8"
1019 | resolved "https://registry.npmmirror.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d"
1020 | integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==
1021 | dependencies:
1022 | is-core-module "^2.13.0"
1023 | path-parse "^1.0.7"
1024 | supports-preserve-symlinks-flag "^1.0.0"
1025 |
1026 | reusify@^1.0.4:
1027 | version "1.0.4"
1028 | resolved "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
1029 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
1030 |
1031 | run-parallel@^1.1.9:
1032 | version "1.2.0"
1033 | resolved "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
1034 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
1035 | dependencies:
1036 | queue-microtask "^1.2.2"
1037 |
1038 | secp256k1@^5.0.0:
1039 | version "5.0.0"
1040 | resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-5.0.0.tgz#be6f0c8c7722e2481e9773336d351de8cddd12f7"
1041 | integrity sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==
1042 | dependencies:
1043 | elliptic "^6.5.4"
1044 | node-addon-api "^5.0.0"
1045 | node-gyp-build "^4.2.0"
1046 |
1047 | semver@^5.3.0:
1048 | version "5.7.2"
1049 | resolved "https://registry.npmmirror.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8"
1050 | integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==
1051 |
1052 | semver@^7.5.4:
1053 | version "7.5.4"
1054 | resolved "https://registry.npmmirror.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
1055 | integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
1056 | dependencies:
1057 | lru-cache "^6.0.0"
1058 |
1059 | set-blocking@^2.0.0:
1060 | version "2.0.0"
1061 | resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
1062 | integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
1063 |
1064 | set-function-length@^1.1.1:
1065 | version "1.1.1"
1066 | resolved "https://registry.npmmirror.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed"
1067 | integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==
1068 | dependencies:
1069 | define-data-property "^1.1.1"
1070 | get-intrinsic "^1.2.1"
1071 | gopd "^1.0.1"
1072 | has-property-descriptors "^1.0.0"
1073 |
1074 | setimmediate@^1.0.5:
1075 | version "1.0.5"
1076 | resolved "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
1077 | integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==
1078 |
1079 | slash@^3.0.0:
1080 | version "3.0.0"
1081 | resolved "https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
1082 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
1083 |
1084 | sprintf-js@~1.0.2:
1085 | version "1.0.3"
1086 | resolved "https://registry.npmmirror.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
1087 | integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==
1088 |
1089 | string-width@^4.1.0, string-width@^4.2.0:
1090 | version "4.2.3"
1091 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
1092 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
1093 | dependencies:
1094 | emoji-regex "^8.0.0"
1095 | is-fullwidth-code-point "^3.0.0"
1096 | strip-ansi "^6.0.1"
1097 |
1098 | strip-ansi@^6.0.0, strip-ansi@^6.0.1:
1099 | version "6.0.1"
1100 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
1101 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
1102 | dependencies:
1103 | ansi-regex "^5.0.1"
1104 |
1105 | supports-color@^5.3.0:
1106 | version "5.5.0"
1107 | resolved "https://registry.npmmirror.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1108 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1109 | dependencies:
1110 | has-flag "^3.0.0"
1111 |
1112 | supports-preserve-symlinks-flag@^1.0.0:
1113 | version "1.0.0"
1114 | resolved "https://registry.npmmirror.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
1115 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
1116 |
1117 | symbol.inspect@1.0.1:
1118 | version "1.0.1"
1119 | resolved "https://registry.yarnpkg.com/symbol.inspect/-/symbol.inspect-1.0.1.tgz#e13125b8038c4996eb0dfa1567332ad4dcd0763f"
1120 | integrity sha512-YQSL4duoHmLhsTD1Pw8RW6TZ5MaTX5rXJnqacJottr2P2LZBF/Yvrc3ku4NUpMOm8aM0KOCqM+UAkMA5HWQCzQ==
1121 |
1122 | teslabot@^1.3.0:
1123 | version "1.5.0"
1124 | resolved "https://registry.yarnpkg.com/teslabot/-/teslabot-1.5.0.tgz#70f544516699ca5f696d8ae94f3d12cd495d5cd6"
1125 | integrity sha512-e2MmELhCgrgZEGo7PQu/6bmYG36IDH+YrBI1iGm6jovXkeDIGa3pZ2WSqRjzkuw2vt1EqfkZoV5GpXgqL8QJVg==
1126 |
1127 | to-regex-range@^5.0.1:
1128 | version "5.0.1"
1129 | resolved "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
1130 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1131 | dependencies:
1132 | is-number "^7.0.0"
1133 |
1134 | tr46@~0.0.3:
1135 | version "0.0.3"
1136 | resolved "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
1137 | integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
1138 |
1139 | ts-api-utils@^1.0.1:
1140 | version "1.0.3"
1141 | resolved "https://registry.npmmirror.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331"
1142 | integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==
1143 |
1144 | tslib@^1.13.0, tslib@^1.8.1:
1145 | version "1.14.1"
1146 | resolved "https://registry.npmmirror.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
1147 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
1148 |
1149 | tslint-config-prettier@^1.18.0:
1150 | version "1.18.0"
1151 | resolved "https://registry.npmmirror.com/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz#75f140bde947d35d8f0d238e0ebf809d64592c37"
1152 | integrity sha512-xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==
1153 |
1154 | tslint@^6.1.3:
1155 | version "6.1.3"
1156 | resolved "https://registry.npmmirror.com/tslint/-/tslint-6.1.3.tgz#5c23b2eccc32487d5523bd3a470e9aa31789d904"
1157 | integrity sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==
1158 | dependencies:
1159 | "@babel/code-frame" "^7.0.0"
1160 | builtin-modules "^1.1.1"
1161 | chalk "^2.3.0"
1162 | commander "^2.12.1"
1163 | diff "^4.0.1"
1164 | glob "^7.1.1"
1165 | js-yaml "^3.13.1"
1166 | minimatch "^3.0.4"
1167 | mkdirp "^0.5.3"
1168 | resolve "^1.3.2"
1169 | semver "^5.3.0"
1170 | tslib "^1.13.0"
1171 | tsutils "^2.29.0"
1172 |
1173 | tsutils@^2.29.0:
1174 | version "2.29.0"
1175 | resolved "https://registry.npmmirror.com/tsutils/-/tsutils-2.29.0.tgz#32b488501467acbedd4b85498673a0812aca0b99"
1176 | integrity sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==
1177 | dependencies:
1178 | tslib "^1.8.1"
1179 |
1180 | tweetnacl@1.0.3:
1181 | version "1.0.3"
1182 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596"
1183 | integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==
1184 |
1185 | typescript@^5.2.2:
1186 | version "5.3.2"
1187 | resolved "https://registry.npmmirror.com/typescript/-/typescript-5.3.2.tgz#00d1c7c1c46928c5845c1ee8d0cc2791031d4c43"
1188 | integrity sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==
1189 |
1190 | undici-types@~5.26.4:
1191 | version "5.26.5"
1192 | resolved "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
1193 | integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
1194 |
1195 | util@^0.12.5:
1196 | version "0.12.5"
1197 | resolved "https://registry.npmmirror.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc"
1198 | integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==
1199 | dependencies:
1200 | inherits "^2.0.3"
1201 | is-arguments "^1.0.4"
1202 | is-generator-function "^1.0.7"
1203 | is-typed-array "^1.1.3"
1204 | which-typed-array "^1.1.2"
1205 |
1206 | web3-core@^4.3.0, web3-core@^4.3.1:
1207 | version "4.3.1"
1208 | resolved "https://registry.npmmirror.com/web3-core/-/web3-core-4.3.1.tgz#5c3b5b59f1e31537a64237caa5fd83f5ffd7b0f3"
1209 | integrity sha512-xa3w5n/ESxp5HIbrwsYBhpAPx2KI5LprjRFEtRwP0GpqqhTcCSMMYoyItRqQQ+k9YnB0PoFpWJfJI6Qn5x8YUQ==
1210 | dependencies:
1211 | web3-errors "^1.1.4"
1212 | web3-eth-iban "^4.0.7"
1213 | web3-providers-http "^4.1.0"
1214 | web3-providers-ws "^4.0.7"
1215 | web3-types "^1.3.1"
1216 | web3-utils "^4.0.7"
1217 | web3-validator "^2.0.3"
1218 | optionalDependencies:
1219 | web3-providers-ipc "^4.0.7"
1220 |
1221 | web3-errors@^1.1.3, web3-errors@^1.1.4:
1222 | version "1.1.4"
1223 | resolved "https://registry.npmmirror.com/web3-errors/-/web3-errors-1.1.4.tgz#5667a0a5f66fc936e101ef32032ccc1e8ca4d5a1"
1224 | integrity sha512-WahtszSqILez+83AxGecVroyZsMuuRT+KmQp4Si5P4Rnqbczno1k748PCrZTS1J4UCPmXMG2/Vt+0Bz2zwXkwQ==
1225 | dependencies:
1226 | web3-types "^1.3.1"
1227 |
1228 | web3-eth-abi@^4.1.4:
1229 | version "4.1.4"
1230 | resolved "https://registry.npmmirror.com/web3-eth-abi/-/web3-eth-abi-4.1.4.tgz#56ae7ebb1385db1a948e69fb35f4057bff6743af"
1231 | integrity sha512-YLOBVVxxxLYKXjaiwZjEWYEnkMmmrm0nswZsvzSsINy/UgbWbzfoiZU+zn4YNWIEhORhx1p37iS3u/dP6VyC2w==
1232 | dependencies:
1233 | abitype "0.7.1"
1234 | web3-errors "^1.1.3"
1235 | web3-types "^1.3.0"
1236 | web3-utils "^4.0.7"
1237 | web3-validator "^2.0.3"
1238 |
1239 | web3-eth-accounts@^4.1.0:
1240 | version "4.1.0"
1241 | resolved "https://registry.npmmirror.com/web3-eth-accounts/-/web3-eth-accounts-4.1.0.tgz#5b5e6c60d457e7b829ec590021fc87ada8585920"
1242 | integrity sha512-UFtAsOANsvihTQ6SSvOKguupmQkResyR9M9JNuOxYpKh7+3W+sTnbLXw2UbOSYIsKlc1mpqqW9bVr1SjqHDpUQ==
1243 | dependencies:
1244 | "@ethereumjs/rlp" "^4.0.1"
1245 | crc-32 "^1.2.2"
1246 | ethereum-cryptography "^2.0.0"
1247 | web3-errors "^1.1.3"
1248 | web3-types "^1.3.0"
1249 | web3-utils "^4.0.7"
1250 | web3-validator "^2.0.3"
1251 |
1252 | web3-eth-contract@^4.1.2, web3-eth-contract@^4.1.3:
1253 | version "4.1.3"
1254 | resolved "https://registry.npmmirror.com/web3-eth-contract/-/web3-eth-contract-4.1.3.tgz#15dd4c978eaf0d8f894b2c1f3e9f94edd29ff57c"
1255 | integrity sha512-F6e3eyetUDiNOb78EDVJtNOb0H1GPz3xAZH8edSfYdhaxI9tTutP2V3p++kh2ZJ/RrdE2+xil7H/nPLgHymBvg==
1256 | dependencies:
1257 | web3-core "^4.3.1"
1258 | web3-errors "^1.1.4"
1259 | web3-eth "^4.3.1"
1260 | web3-eth-abi "^4.1.4"
1261 | web3-types "^1.3.1"
1262 | web3-utils "^4.0.7"
1263 | web3-validator "^2.0.3"
1264 |
1265 | web3-eth-ens@^4.0.8:
1266 | version "4.0.8"
1267 | resolved "https://registry.npmmirror.com/web3-eth-ens/-/web3-eth-ens-4.0.8.tgz#f4e0a018ce6cc69e37007ee92063867feb5994f0"
1268 | integrity sha512-nj0JfeD45BbzVJcVYpUJnSo8iwDcY9CQ7CZhhIVVOFjvpMAPw0zEwjTvZEIQyCW61OoDG9xcBzwxe2tZoYhMRw==
1269 | dependencies:
1270 | "@adraffy/ens-normalize" "^1.8.8"
1271 | web3-core "^4.3.0"
1272 | web3-errors "^1.1.3"
1273 | web3-eth "^4.3.1"
1274 | web3-eth-contract "^4.1.2"
1275 | web3-net "^4.0.7"
1276 | web3-types "^1.3.0"
1277 | web3-utils "^4.0.7"
1278 | web3-validator "^2.0.3"
1279 |
1280 | web3-eth-iban@^4.0.7:
1281 | version "4.0.7"
1282 | resolved "https://registry.npmmirror.com/web3-eth-iban/-/web3-eth-iban-4.0.7.tgz#ee504f845d7b6315f0be78fcf070ccd5d38e4aaf"
1283 | integrity sha512-8weKLa9KuKRzibC87vNLdkinpUE30gn0IGY027F8doeJdcPUfsa4IlBgNC4k4HLBembBB2CTU0Kr/HAOqMeYVQ==
1284 | dependencies:
1285 | web3-errors "^1.1.3"
1286 | web3-types "^1.3.0"
1287 | web3-utils "^4.0.7"
1288 | web3-validator "^2.0.3"
1289 |
1290 | web3-eth-personal@^4.0.8:
1291 | version "4.0.8"
1292 | resolved "https://registry.npmmirror.com/web3-eth-personal/-/web3-eth-personal-4.0.8.tgz#b51628c560de550ca8b354fa784f9556aae6065c"
1293 | integrity sha512-sXeyLKJ7ddQdMxz1BZkAwImjqh7OmKxhXoBNF3isDmD4QDpMIwv/t237S3q4Z0sZQamPa/pHebJRWVuvP8jZdw==
1294 | dependencies:
1295 | web3-core "^4.3.0"
1296 | web3-eth "^4.3.1"
1297 | web3-rpc-methods "^1.1.3"
1298 | web3-types "^1.3.0"
1299 | web3-utils "^4.0.7"
1300 | web3-validator "^2.0.3"
1301 |
1302 | web3-eth@^4.3.1:
1303 | version "4.3.1"
1304 | resolved "https://registry.npmmirror.com/web3-eth/-/web3-eth-4.3.1.tgz#cb4224356716da71e694091aa3fbf10bcb813fb5"
1305 | integrity sha512-zJir3GOXooHQT85JB8SrufE+Voo5TtXdjhf1D8IGXmxM8MrhI8AT+Pgt4siBTupJcu5hF17iGmTP/Nj2XnaibQ==
1306 | dependencies:
1307 | setimmediate "^1.0.5"
1308 | web3-core "^4.3.0"
1309 | web3-errors "^1.1.3"
1310 | web3-eth-abi "^4.1.4"
1311 | web3-eth-accounts "^4.1.0"
1312 | web3-net "^4.0.7"
1313 | web3-providers-ws "^4.0.7"
1314 | web3-rpc-methods "^1.1.3"
1315 | web3-types "^1.3.0"
1316 | web3-utils "^4.0.7"
1317 | web3-validator "^2.0.3"
1318 |
1319 | web3-net@^4.0.7:
1320 | version "4.0.7"
1321 | resolved "https://registry.npmmirror.com/web3-net/-/web3-net-4.0.7.tgz#ed2c1bd700cf94be93a6dbd8bd8aa413d8681942"
1322 | integrity sha512-SzEaXFrBjY25iQGk5myaOfO9ZyfTwQEa4l4Ps4HDNVMibgZji3WPzpjq8zomVHMwi8bRp6VV7YS71eEsX7zLow==
1323 | dependencies:
1324 | web3-core "^4.3.0"
1325 | web3-rpc-methods "^1.1.3"
1326 | web3-types "^1.3.0"
1327 | web3-utils "^4.0.7"
1328 |
1329 | web3-providers-http@^4.1.0:
1330 | version "4.1.0"
1331 | resolved "https://registry.npmmirror.com/web3-providers-http/-/web3-providers-http-4.1.0.tgz#8d7afda67d1d8542ca85b30f60a3d1fe1993b561"
1332 | integrity sha512-6qRUGAhJfVQM41E5t+re5IHYmb5hSaLc02BE2MaRQsz2xKA6RjmHpOA5h/+ojJxEpI9NI2CrfDKOAgtJfoUJQg==
1333 | dependencies:
1334 | cross-fetch "^4.0.0"
1335 | web3-errors "^1.1.3"
1336 | web3-types "^1.3.0"
1337 | web3-utils "^4.0.7"
1338 |
1339 | web3-providers-ipc@^4.0.7:
1340 | version "4.0.7"
1341 | resolved "https://registry.npmmirror.com/web3-providers-ipc/-/web3-providers-ipc-4.0.7.tgz#9ec4c8565053af005a5170ba80cddeb40ff3e3d3"
1342 | integrity sha512-YbNqY4zUvIaK2MHr1lQFE53/8t/ejHtJchrWn9zVbFMGXlTsOAbNoIoZWROrg1v+hCBvT2c9z8xt7e/+uz5p1g==
1343 | dependencies:
1344 | web3-errors "^1.1.3"
1345 | web3-types "^1.3.0"
1346 | web3-utils "^4.0.7"
1347 |
1348 | web3-providers-ws@^4.0.7:
1349 | version "4.0.7"
1350 | resolved "https://registry.npmmirror.com/web3-providers-ws/-/web3-providers-ws-4.0.7.tgz#7a78a0dcf077e0e802da524fbb37d080b356c14b"
1351 | integrity sha512-n4Dal9/rQWjS7d6LjyEPM2R458V8blRm0eLJupDEJOOIBhGYlxw5/4FthZZ/cqB7y/sLVi7K09DdYx2MeRtU5w==
1352 | dependencies:
1353 | "@types/ws" "8.5.3"
1354 | isomorphic-ws "^5.0.0"
1355 | web3-errors "^1.1.3"
1356 | web3-types "^1.3.0"
1357 | web3-utils "^4.0.7"
1358 | ws "^8.8.1"
1359 |
1360 | web3-rpc-methods@^1.1.3:
1361 | version "1.1.3"
1362 | resolved "https://registry.npmmirror.com/web3-rpc-methods/-/web3-rpc-methods-1.1.3.tgz#4be8a85628d8b69846e2e0afa0ed71e3f6eaf163"
1363 | integrity sha512-XB6SsCZZPdZUMPIRqDxJkZFKMu0/Y+yaExAt+Z7RqmuM7xF55fJ/Qb84LQho8zarvUoYziy4jnIfs+SXImxQUw==
1364 | dependencies:
1365 | web3-core "^4.3.0"
1366 | web3-types "^1.3.0"
1367 | web3-validator "^2.0.3"
1368 |
1369 | web3-types@^1.3.0, web3-types@^1.3.1:
1370 | version "1.3.1"
1371 | resolved "https://registry.npmmirror.com/web3-types/-/web3-types-1.3.1.tgz#cf6148ad46b68c5c89714613380b270d31e297be"
1372 | integrity sha512-8fXi7h/t95VKRtgU4sxprLPZpsTh3jYDfSghshIDBgUD/OoGe5S+syP24SUzBZYllZ/L+hMr2gdp/0bGJa8pYQ==
1373 |
1374 | web3-utils@^4.0.7:
1375 | version "4.0.7"
1376 | resolved "https://registry.npmmirror.com/web3-utils/-/web3-utils-4.0.7.tgz#7df497b7cdd06cdfe7d02036c45fecbe3382d137"
1377 | integrity sha512-sy8S6C2FIa5NNHc8DjND+Fx3S8KDAizuh5RbL1RX3h0PRbFgPfWzF5RfUns8gTt0mjJuOhs/IaDhrZfeTszG5A==
1378 | dependencies:
1379 | ethereum-cryptography "^2.0.0"
1380 | web3-errors "^1.1.3"
1381 | web3-types "^1.3.0"
1382 | web3-validator "^2.0.3"
1383 |
1384 | web3-validator@^2.0.3:
1385 | version "2.0.3"
1386 | resolved "https://registry.npmmirror.com/web3-validator/-/web3-validator-2.0.3.tgz#e5dcd4b4902612cff21b7f8817dd233393999d97"
1387 | integrity sha512-fJbAQh+9LSNWy+l5Ze6HABreml8fra98o5+vS073T35jUcLbRZ0IOjF/ZPJhJNbJDt+jP1vseZsc3z3uX9mxxQ==
1388 | dependencies:
1389 | ethereum-cryptography "^2.0.0"
1390 | util "^0.12.5"
1391 | web3-errors "^1.1.3"
1392 | web3-types "^1.3.0"
1393 | zod "^3.21.4"
1394 |
1395 | web3@^4.2.2:
1396 | version "4.2.2"
1397 | resolved "https://registry.npmmirror.com/web3/-/web3-4.2.2.tgz#3562e0b918a95adb0798945624e8e9377c699fdb"
1398 | integrity sha512-im7weoHY7TW87nhFk10ysupZnsDJEO/xDpz985AgrTd/7KxExlzjjKd+4nue0WskUF0th0mgoMs1YaA8xUjCjw==
1399 | dependencies:
1400 | web3-core "^4.3.1"
1401 | web3-errors "^1.1.4"
1402 | web3-eth "^4.3.1"
1403 | web3-eth-abi "^4.1.4"
1404 | web3-eth-accounts "^4.1.0"
1405 | web3-eth-contract "^4.1.3"
1406 | web3-eth-ens "^4.0.8"
1407 | web3-eth-iban "^4.0.7"
1408 | web3-eth-personal "^4.0.8"
1409 | web3-net "^4.0.7"
1410 | web3-providers-http "^4.1.0"
1411 | web3-providers-ws "^4.0.7"
1412 | web3-rpc-methods "^1.1.3"
1413 | web3-types "^1.3.1"
1414 | web3-utils "^4.0.7"
1415 | web3-validator "^2.0.3"
1416 |
1417 | webidl-conversions@^3.0.0:
1418 | version "3.0.1"
1419 | resolved "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
1420 | integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
1421 |
1422 | whatwg-url@^5.0.0:
1423 | version "5.0.0"
1424 | resolved "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
1425 | integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
1426 | dependencies:
1427 | tr46 "~0.0.3"
1428 | webidl-conversions "^3.0.0"
1429 |
1430 | which-module@^2.0.0:
1431 | version "2.0.1"
1432 | resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409"
1433 | integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==
1434 |
1435 | which-typed-array@^1.1.11, which-typed-array@^1.1.2:
1436 | version "1.1.13"
1437 | resolved "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36"
1438 | integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==
1439 | dependencies:
1440 | available-typed-arrays "^1.0.5"
1441 | call-bind "^1.0.4"
1442 | for-each "^0.3.3"
1443 | gopd "^1.0.1"
1444 | has-tostringtag "^1.0.0"
1445 |
1446 | wrap-ansi@^6.2.0:
1447 | version "6.2.0"
1448 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
1449 | integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
1450 | dependencies:
1451 | ansi-styles "^4.0.0"
1452 | string-width "^4.1.0"
1453 | strip-ansi "^6.0.0"
1454 |
1455 | wrappy@1:
1456 | version "1.0.2"
1457 | resolved "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1458 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
1459 |
1460 | ws@^8.8.1:
1461 | version "8.14.2"
1462 | resolved "https://registry.npmmirror.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f"
1463 | integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==
1464 |
1465 | y18n@^4.0.0:
1466 | version "4.0.3"
1467 | resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf"
1468 | integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==
1469 |
1470 | yallist@^4.0.0:
1471 | version "4.0.0"
1472 | resolved "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
1473 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
1474 |
1475 | yargs-parser@^18.1.2:
1476 | version "18.1.3"
1477 | resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"
1478 | integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==
1479 | dependencies:
1480 | camelcase "^5.0.0"
1481 | decamelize "^1.2.0"
1482 |
1483 | yargs@^15.3.1:
1484 | version "15.4.1"
1485 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
1486 | integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==
1487 | dependencies:
1488 | cliui "^6.0.0"
1489 | decamelize "^1.2.0"
1490 | find-up "^4.1.0"
1491 | get-caller-file "^2.0.1"
1492 | require-directory "^2.1.1"
1493 | require-main-filename "^2.0.0"
1494 | set-blocking "^2.0.0"
1495 | string-width "^4.2.0"
1496 | which-module "^2.0.0"
1497 | y18n "^4.0.0"
1498 | yargs-parser "^18.1.2"
1499 |
1500 | zod@^3.21.4:
1501 | version "3.22.4"
1502 | resolved "https://registry.npmmirror.com/zod/-/zod-3.22.4.tgz#f31c3a9386f61b1f228af56faa9255e845cf3fff"
1503 | integrity sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==
1504 |
--------------------------------------------------------------------------------