diff --git a/package.json b/package.json index 668a505..88d45cc 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "eslint": "eslint src/**/* --ext .ts,.tsx --ignore-pattern **/*.graphql --fix", "lint": "npm run check-circular-deps && npm run eslint && npm run tsc && npm run tsc-test", "prepare": "npm run build", - "postinstall": "node postinstall.js", + "postinstall": "node postinstall.js && patch-package", "build-graphql-V2": "rm -rf src/services/railgun/quick-sync/V2/graphql/.graphclient && graphclient build --dir src/services/railgun/quick-sync/V2/graphql", "build-graphql-V3": "rm -rf src/services/railgun/quick-sync/V3/graphql/.graphclient && graphclient build --dir src/services/railgun/quick-sync/V3/graphql", "build-graphql-railgun-txids": "rm -rf src/services/railgun/railgun-txids/graphql/.graphclient && graphclient build --dir src/services/railgun/railgun-txids/graphql" @@ -54,6 +54,7 @@ "ethers": "6.13.1", "events": "3.3.0", "graphql": "^16.6.0", + "patch-package": "^8.0.0", "stream-browserify": "3.0.0" }, "devDependencies": { diff --git a/patches/@railgun-community+engine+9.3.1.patch b/patches/@railgun-community+engine+9.3.1.patch new file mode 100644 index 0000000..8f7630e --- /dev/null +++ b/patches/@railgun-community+engine+9.3.1.patch @@ -0,0 +1,388 @@ +diff --git a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V2/railgun-smart-wallet.d.ts b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V2/railgun-smart-wallet.d.ts +index af1f476..cc734df 100644 +--- a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V2/railgun-smart-wallet.d.ts ++++ b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V2/railgun-smart-wallet.d.ts +@@ -1,23 +1,27 @@ + /// +-import { ContractTransaction, FallbackProvider } from 'ethers'; ++import { ContractTransaction, Provider } from 'ethers'; + import EventEmitter from 'events'; + import { EventsCommitmentListener, EventsNullifierListener, EventsUnshieldListener } from '../../../models/event-types'; + import { CommitmentPreimageStruct, ShieldRequestStruct, TokenDataStructOutput, TransactionStruct, RailgunSmartWallet } from '../../../abi/typechain/RailgunSmartWallet'; + import { Chain } from '../../../models/engine-types'; +-import { PollingJsonRpcProvider } from '../../../provider/polling-json-rpc-provider'; + import { TXIDVersion } from '../../../models/poi-types'; + export declare class RailgunSmartWalletContract extends EventEmitter { + readonly contract: RailgunSmartWallet; +- readonly contractForListeners: RailgunSmartWallet; + readonly address: string; + readonly chain: Chain; + readonly txidVersion = TXIDVersion.V2_PoseidonMerkle; + /** + * Connect to Railgun instance on network + * @param railgunSmartWalletContractAddress - address of Railgun instance (Proxy contract) +- * @param provider - Network provider ++ * @param defaultProvider - Network provider ++ * @param pollingProvider - DEPRECATED ++ * @param chain + */ +- constructor(railgunSmartWalletContractAddress: string, defaultProvider: PollingJsonRpcProvider | FallbackProvider, pollingProvider: PollingJsonRpcProvider, chain: Chain); ++ constructor(railgunSmartWalletContractAddress: string, defaultProvider: Provider, ++ /** ++ * @deprecated pollingProvider will be removed in the next major version. ++ */ ++ pollingProvider?: Provider, chain: Chain); + /** + * Get current merkle root + * @returns merkle root +diff --git a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V2/railgun-smart-wallet.js b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V2/railgun-smart-wallet.js +index 62590aa..22cb434 100644 +--- a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V2/railgun-smart-wallet.js ++++ b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V2/railgun-smart-wallet.js +@@ -15,7 +15,6 @@ const V2_events_1 = require("./V2-events"); + const legacy_events_1 = require("../V1/legacy-events"); + const constants_1 = require("../../../utils/constants"); + const engine_types_1 = require("../../../models/engine-types"); +-const polling_util_1 = require("../../../provider/polling-util"); + const poi_types_1 = require("../../../models/poi-types"); + const ethers_2 = require("../../../utils/ethers"); + const SCAN_CHUNKS = 499; +@@ -24,23 +23,26 @@ const EVENTS_SCAN_TIMEOUT = 5000; + const SCAN_TIMEOUT_ERROR_MESSAGE = 'getLogs request timed out after 5 seconds.'; + class RailgunSmartWalletContract extends events_1.default { + contract; +- contractForListeners; + address; + chain; + txidVersion = poi_types_1.TXIDVersion.V2_PoseidonMerkle; + /** + * Connect to Railgun instance on network + * @param railgunSmartWalletContractAddress - address of Railgun instance (Proxy contract) +- * @param provider - Network provider ++ * @param defaultProvider - Network provider ++ * @param pollingProvider - DEPRECATED ++ * @param chain + */ +- constructor(railgunSmartWalletContractAddress, defaultProvider, pollingProvider, chain) { ++ constructor(railgunSmartWalletContractAddress, defaultProvider, ++ /** ++ * @deprecated pollingProvider will be removed in the next major version. ++ */ ++ pollingProvider, ++ // @ts-ignore - Ignore optional param last requirement during deprecation ++ chain) { + super(); + this.address = railgunSmartWalletContractAddress; + this.contract = new ethers_1.Contract(railgunSmartWalletContractAddress, abi_1.ABIRailgunSmartWallet, defaultProvider); +- // Because of a 'stallTimeout' bug in Ethers v6, all providers in a FallbackProvider will get called simultaneously. +- // So, we'll use a single json rpc (the first in the FallbackProvider) to poll for the event listeners. +- (0, polling_util_1.assertIsPollingProvider)(pollingProvider); +- this.contractForListeners = new ethers_1.Contract(railgunSmartWalletContractAddress, abi_1.ABIRailgunSmartWallet, pollingProvider); + this.chain = chain; + } + /** +@@ -165,7 +167,7 @@ class RailgunSmartWalletContract extends events_1.default { + const shieldTopic = this.contract.getEvent('Shield').getFragment().topicHash; + const transactTopic = this.contract.getEvent('Transact').getFragment().topicHash; + const unshieldTopic = this.contract.getEvent('Unshield').getFragment().topicHash; +- await this.contractForListeners.on( ++ await this.contract.on( + // @ts-expect-error - Use * to request all events + '*', // All Events + (event) => { +@@ -388,7 +390,6 @@ class RailgunSmartWalletContract extends events_1.default { + */ + async unload() { + await this.contract.removeAllListeners(); +- await this.contractForListeners?.removeAllListeners(); + } + } + exports.RailgunSmartWalletContract = RailgunSmartWalletContract; +diff --git a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V2/railgun-smart-wallet.js.map b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V2/railgun-smart-wallet.js.map +index 0a00376..bdd08be 100644 +--- a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V2/railgun-smart-wallet.js.map ++++ b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V2/railgun-smart-wallet.js.map +@@ -1 +1 @@ +-{"version":3,"file":"railgun-smart-wallet.js","sourceRoot":"","sources":["../../../../src/contracts/railgun-smart-wallet/V2/railgun-smart-wallet.ts"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"railgun-smart-wallet.js","sourceRoot":"","sources":["../../../../src/contracts/railgun-smart-wallet/V2/railgun-smart-wallet.ts"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-accumulator.d.ts b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-accumulator.d.ts +index 5f421bc..1d70eff 100644 +--- a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-accumulator.d.ts ++++ b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-accumulator.d.ts +@@ -1,19 +1,27 @@ + /// +-import { FallbackProvider } from 'ethers'; ++import { Provider } from 'ethers'; + import EventEmitter from 'events'; + import { Chain } from '../../../models/engine-types'; +-import { PollingJsonRpcProvider } from '../../../provider/polling-json-rpc-provider'; + import { PoseidonMerkleAccumulator } from '../../../abi/typechain/PoseidonMerkleAccumulator'; + import { EventsCommitmentListener, EventsNullifierListener, EventsRailgunTransactionListenerV3, EventsUnshieldListener } from '../../../models/event-types'; + import { TXIDVersion } from '../../../models/poi-types'; + export declare class PoseidonMerkleAccumulatorContract extends EventEmitter { + readonly contract: PoseidonMerkleAccumulator; +- readonly contractForListeners: PoseidonMerkleAccumulator; + readonly address: string; + readonly chain: Chain; + readonly txidVersion = TXIDVersion.V3_PoseidonMerkle; + private readonly eventTopic; +- constructor(address: string, provider: PollingJsonRpcProvider | FallbackProvider, pollingProvider: PollingJsonRpcProvider, chain: Chain); ++ /** ++ * @param address ++ * @param provider ++ * @param pollingProvider - DEPRECATED ++ * @param chain ++ */ ++ constructor(address: string, provider: Provider, ++ /** ++ * @deprecated pollingProvider will be removed in the next major version. ++ */ ++ pollingProvider?: Provider, chain: Chain); + /** + * Get current merkle root + */ +diff --git a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-accumulator.js b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-accumulator.js +index 6092094..f7f5859 100644 +--- a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-accumulator.js ++++ b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-accumulator.js +@@ -9,7 +9,6 @@ const events_1 = __importDefault(require("events")); + const abi_1 = require("../../../abi/abi"); + const bytes_1 = require("../../../utils/bytes"); + const debugger_1 = __importDefault(require("../../../debugger/debugger")); +-const polling_util_1 = require("../../../provider/polling-util"); + const event_types_1 = require("../../../models/event-types"); + const poi_types_1 = require("../../../models/poi-types"); + const V3_events_1 = require("./V3-events"); +@@ -21,21 +20,28 @@ const EVENTS_SCAN_TIMEOUT = 5000; + const SCAN_TIMEOUT_ERROR_MESSAGE = 'getLogs request timed out after 5 seconds.'; + class PoseidonMerkleAccumulatorContract extends events_1.default { + contract; +- contractForListeners; + address; + chain; + txidVersion = poi_types_1.TXIDVersion.V3_PoseidonMerkle; + eventTopic; +- constructor(address, provider, pollingProvider, chain) { ++ /** ++ * @param address ++ * @param provider ++ * @param pollingProvider - DEPRECATED ++ * @param chain ++ */ ++ constructor(address, provider, ++ /** ++ * @deprecated pollingProvider will be removed in the next major version. ++ */ ++ pollingProvider, ++ // @ts-ignore - Ignore optional param last requirement during deprecation ++ chain) { + super(); + this.address = address; + this.contract = new ethers_1.Contract(address, abi_1.ABIPoseidonMerkleAccumulator, provider); + this.eventTopic = this.contract.getEvent('AccumulatorStateUpdate').getFragment().topicHash; + this.chain = chain; +- // Because of a 'stallTimeout' bug in Ethers v6, all providers in a FallbackProvider will get called simultaneously. +- // So, we'll use a single json rpc (the first in the FallbackProvider) to poll for the event listeners. +- (0, polling_util_1.assertIsPollingProvider)(pollingProvider); +- this.contractForListeners = new ethers_1.Contract(address, abi_1.ABIPoseidonMerkleAccumulator, pollingProvider); + } + /** + * Get current merkle root +@@ -66,7 +72,7 @@ class PoseidonMerkleAccumulatorContract extends events_1.default { + * Listens for update events. + */ + async setTreeUpdateListeners(eventsCommitmentListener, eventsNullifierListener, eventsUnshieldListener, eventsRailgunTransactionsV3Listener, triggerWalletBalanceDecryptions) { +- await this.contractForListeners.on(this.eventTopic, (event) => { ++ await this.contract.on(this.eventTopic, (event) => { + try { + if (event.log.topics.length !== 1) { + throw new Error('Requires one topic for railgun events'); +@@ -161,7 +167,6 @@ class PoseidonMerkleAccumulatorContract extends events_1.default { + */ + async unload() { + await this.contract.removeAllListeners(); +- await this.contractForListeners?.removeAllListeners(); + } + } + exports.PoseidonMerkleAccumulatorContract = PoseidonMerkleAccumulatorContract; +diff --git a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-accumulator.js.map b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-accumulator.js.map +index 20ba043..8c9f91c 100644 +--- a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-accumulator.js.map ++++ b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-accumulator.js.map +@@ -1 +1 @@ +-{"version":3,"file":"poseidon-merkle-accumulator.js","sourceRoot":"","sources":["../../../../src/contracts/railgun-smart-wallet/V3/poseidon-merkle-accumulator.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAkF;AAClF,oDAAkC;AAIlC,0CAAgE;AAChE,gDAA6D;AAC7D,0EAAqD;AACrD,iEAAyE;AACzE,6DAMqC;AACrC,yDAAwD;AACxD,2CAAuC;AACvC,sDAAyD;AACzD,kDAAgE;AAIhE,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,mBAAmB,GAAG,IAAI,CAAC;AACjC,MAAM,0BAA0B,GAAG,4CAA4C,CAAC;AAEhF,MAAa,iCAAkC,SAAQ,gBAAY;IACxD,QAAQ,CAA4B;IAEpC,oBAAoB,CAA4B;IAEhD,OAAO,CAAS;IAEhB,KAAK,CAAQ;IAEb,WAAW,GAAG,uBAAW,CAAC,iBAAiB,CAAC;IAEpC,UAAU,CAAS;IAEpC,YACE,OAAe,EACf,QAAmD,EACnD,eAAuC,EACvC,KAAY;QAEZ,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAQ,CAC1B,OAAO,EACP,kCAA4B,EAC5B,QAAQ,CAC+B,CAAC;QAC1C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC;QAC3F,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,oHAAoH;QACpH,uGAAuG;QACvG,IAAA,sCAAuB,EAAC,eAAe,CAAC,CAAC;QACzC,IAAI,CAAC,oBAAoB,GAAG,IAAI,iBAAQ,CACtC,OAAO,EACP,kCAA4B,EAC5B,eAAe,CACwB,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,OAAO,iBAAS,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,IAAY,EAAE,IAAY;QACjD,IAAI,CAAC;YACH,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CACvD,IAAI,EACJ,iBAAS,CAAC,kBAAkB,CAAC,IAAI,EAAE,kBAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAC9D,CAAC;YACF,uDAAuD;YACvD,uBAAuB;YACvB,2FAA2F;YAC3F,OAAO;YACP,IAAI;YACJ,OAAO,iBAAiB,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,2CAA2C,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9E,kBAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,sBAAsB,CAC1B,wBAAkD,EAClD,uBAAgD,EAChD,sBAA8C,EAC9C,mCAAuE,EACvE,+BAA4E;QAE5E,MAAM,IAAI,CAAC,oBAAoB,CAAC,EAAE,CAAC,IAAI,CAAC,UAAiB,EAAE,CAAC,KAA2B,EAAE,EAAE;YACzF,IAAI,CAAC;gBACH,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAClC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;gBAC3D,CAAC;gBAED,mEAAmE;gBACnE,oBAAQ,CAAC,uBAAuB,CAC9B,IAAI,CAAC,WAAW,EAChB,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,GAAG,CAAC,eAAe,EACzB,KAAK,CAAC,GAAG,CAAC,WAAW,EACrB,wBAAwB,EACxB,KAAK,EAAE,WAAwB,EAAE,UAAuB,EAAE,EAAE;oBAC1D,mEAAmE;oBACnE,uBAAuB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;oBACjD,IAAI,CAAC,IAAI,CAAC,yBAAW,CAAC,yBAAyB,EAAE,UAAU,CAAC,CAAC;gBAC/D,CAAC,EACD,sBAAsB,EACtB,mCAAmC,EACnC,+BAA+B,CAChC,CAAC;YACJ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;oBACzB,kBAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;gBACD,IAAI,kBAAW,CAAC,SAAS,EAAE,EAAE,CAAC;oBAC5B,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,UAAkB,EAClB,QAAgB,EAChB,UAAU,GAAG,CAAC;QAEd,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAA,yBAAc,EACjC,IAAI,CAAC,QAAQ,CAAC,WAAW,CACvB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAC9C,UAAU,EACV,QAAQ,CACT,EACD,mBAAmB,EACnB,0BAA0B,CAC3B,CAAC;YACF,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACnD,GAAG,KAAK;gBACR,IAAI,EAAE,IAAA,gCAAuB,EAAC,KAAK,CAAC,IAAyB,CAAC;aAC/D,CAAC,CAAC,CAAC;YACJ,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,mDAAmD,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAClF,CAAC;YACD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,qCAAqC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACxE,IAAI,UAAU,GAAG,gBAAgB,IAAI,KAAK,CAAC,OAAO,KAAK,0BAA0B,EAAE,CAAC;gBAClF,MAAM,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC;gBAC7B,kBAAW,CAAC,GAAG,CACb,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,IACvB,IAAI,CAAC,KAAK,CAAC,EACb,gCAAgC,UAAU,cAAc,gBAAgB,GAAG,KAAK,SAAS,CAC1F,CAAC;gBACF,kBAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACvB,OAAO,IAAI,CAAC,qBAAqB,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YACjE,CAAC;YACD,kBAAW,CAAC,GAAG,CACb,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,2BAA2B,UAAU,uBAAuB,CACvG,CAAC;YACF,kBAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,mBAAmB,CACvB,iBAAyB,EACzB,WAAmB,EACnB,oCAA2D,EAC3D,wBAAkD,EAClD,uBAAgD,EAChD,sBAA8C,EAC9C,mCAAuE,EACvE,kBAA8D;QAE9D,IAAI,iBAAiB,GAAG,iBAAiB,CAAC;QAE1C,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAE7B,kBAAW,CAAC,GAAG,CACb,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,WAAW,2CAA2C,iBAAiB,OAAO,WAAW,EAAE,CAC7I,CAAC;QAEF,IAAI,sBAAsB,GAAG,iBAAiB,CAAC;QAE/C,OAAO,iBAAiB,GAAG,WAAW,EAAE,CAAC;YACvC,qDAAqD;YAErD,IAAI,CAAC,iBAAiB,GAAG,sBAAsB,CAAC,GAAG,KAAK,KAAK,CAAC,EAAE,CAAC;gBAC/D,kBAAW,CAAC,GAAG,CACb,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,WAAW,kCAAkC,iBAAiB,MAAM,CACtH,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAiB,GAAG,WAAW,CAAC,CAAC;YAExE,4CAA4C;YAC5C,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;YAE3F,4CAA4C;YAC5C,MAAM,oBAAQ,CAAC,8BAA8B,CAC3C,IAAI,CAAC,WAAW,EAChB,oBAAoB,EACpB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,mCAAmC,CACpC,CAAC;YAEF,4CAA4C;YAC5C,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAEnC,MAAM,8BAA8B,GAAG,iBAAiB,GAAG,WAAW,GAAG,CAAC,CAAC;YAC3E,MAAM,4CAA4C;YAChD,4CAA4C;YAC5C,MAAM,oCAAoC,EAAE,CAAC;YAE/C,qBAAqB;YACrB,yCAAyC;YACzC,sCAAsC;YACtC,wGAAwG;YACxG,uHAAuH;YACvH,sDAAsD;YACtD,IAAI,4CAA4C,GAAG,8BAA8B,EAAE,CAAC;gBAClF,iBAAiB,GAAG,4CAA4C,CAAC;gBACjE,sBAAsB,GAAG,4CAA4C,CAAC;gBACtE,kBAAW,CAAC,GAAG,CACb,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,eACxC,8BAA8B,GAAG,4CACnC,uDAAuD,CACxD,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,iBAAiB,GAAG,8BAA8B,CAAC;YACrD,CAAC;QACH,CAAC;QAED,kBAAW,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE,mCAAmC,CAAC,CAAC;IACjG,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,CAAC;QACzC,MAAM,IAAI,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,CAAC;IACxD,CAAC;CACF;AAhPD,8EAgPC"} +\ No newline at end of file ++{"version":3,"file":"poseidon-merkle-accumulator.js","sourceRoot":"","sources":["../../../../src/contracts/railgun-smart-wallet/V3/poseidon-merkle-accumulator.ts"],"names":[],"mappings":"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"} +\ No newline at end of file +diff --git a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-verifier.d.ts b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-verifier.d.ts +index 9138e2a..a7336f5 100644 +--- a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-verifier.d.ts ++++ b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-verifier.d.ts +@@ -1,10 +1,9 @@ +-import { ContractTransaction, FallbackProvider } from 'ethers'; +-import { PollingJsonRpcProvider } from '../../../provider/polling-json-rpc-provider'; ++import { ContractTransaction, Provider } from 'ethers'; + import { PoseidonMerkleVerifier } from '../../../abi/typechain/PoseidonMerkleVerifier'; + import { ShieldCiphertextStruct } from '../../../abi/typechain/RailgunSmartWallet'; + export declare class PoseidonMerkleVerifierContract { + readonly contract: PoseidonMerkleVerifier; + readonly address: string; +- constructor(address: string, provider: PollingJsonRpcProvider | FallbackProvider); ++ constructor(address: string, provider: Provider); + generateExecute(transactions: PoseidonMerkleVerifier.TransactionStruct[], shields: PoseidonMerkleVerifier.ShieldRequestStruct[], globalBoundParams: PoseidonMerkleVerifier.GlobalBoundParamsStruct, unshieldChangeCiphertext: ShieldCiphertextStruct): Promise; + } +diff --git a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-verifier.js.map b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-verifier.js.map +index c12812a..bbc9e89 100644 +--- a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-verifier.js.map ++++ b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/poseidon-merkle-verifier.js.map +@@ -1 +1 @@ +-{"version":3,"file":"poseidon-merkle-verifier.js","sourceRoot":"","sources":["../../../../src/contracts/railgun-smart-wallet/V3/poseidon-merkle-verifier.ts"],"names":[],"mappings":";;;AAAA,mCAAyE;AAGzE,0CAA6D;AAG7D,MAAa,8BAA8B;IAChC,QAAQ,CAAyB;IAEjC,OAAO,CAAS;IAEzB,YAAY,OAAe,EAAE,QAAmD;QAC9E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAQ,CAC1B,OAAO,EACP,+BAAyB,EACzB,QAAQ,CAC4B,CAAC;IACzC,CAAC;IAED,eAAe,CACb,YAAwD,EACxD,OAAqD,EACrD,iBAAiE,EACjE,wBAAgD;QAEhD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAC9C,YAAY,EACZ,OAAO,EACP,iBAAiB,EACjB,wBAAwB,CACzB,CAAC;IACJ,CAAC;CACF;AA3BD,wEA2BC"} +\ No newline at end of file ++{"version":3,"file":"poseidon-merkle-verifier.js","sourceRoot":"","sources":["../../../../src/contracts/railgun-smart-wallet/V3/poseidon-merkle-verifier.ts"],"names":[],"mappings":";;;AAAA,mCAAiE;AAEjE,0CAA6D;AAG7D,MAAa,8BAA8B;IAChC,QAAQ,CAAyB;IAEjC,OAAO,CAAS;IAEzB,YAAY,OAAe,EAAE,QAAkB;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAQ,CAC1B,OAAO,EACP,+BAAyB,EACzB,QAAQ,CAC4B,CAAC;IACzC,CAAC;IAED,eAAe,CACb,YAAwD,EACxD,OAAqD,EACrD,iBAAiE,EACjE,wBAAgD;QAEhD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAC9C,YAAY,EACZ,OAAO,EACP,iBAAiB,EACjB,wBAAwB,CACzB,CAAC;IACJ,CAAC;CACF;AA3BD,wEA2BC"} +\ No newline at end of file +diff --git a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/token-vault-contract.d.ts b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/token-vault-contract.d.ts +index 9f63c9f..4b86ca0 100644 +--- a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/token-vault-contract.d.ts ++++ b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/token-vault-contract.d.ts +@@ -1,10 +1,9 @@ +-import { FallbackProvider } from 'ethers'; ++import { Provider } from 'ethers'; + import { TokenDataStructOutput, TokenVault } from '../../../abi/typechain/TokenVault'; +-import { PollingJsonRpcProvider } from '../../../provider/polling-json-rpc-provider'; + export declare class TokenVaultContract { + readonly contract: TokenVault; + readonly address: string; +- constructor(address: string, provider: PollingJsonRpcProvider | FallbackProvider); ++ constructor(address: string, provider: Provider); + /** + * Gets transaction fees in basis points. + */ +diff --git a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/token-vault-contract.js.map b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/token-vault-contract.js.map +index ac121c7..0d0e46e 100644 +--- a/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/token-vault-contract.js.map ++++ b/node_modules/@railgun-community/engine/dist/contracts/railgun-smart-wallet/V3/token-vault-contract.js.map +@@ -1 +1 @@ +-{"version":3,"file":"token-vault-contract.js","sourceRoot":"","sources":["../../../../src/contracts/railgun-smart-wallet/V3/token-vault-contract.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAoD;AAGpD,0CAAiD;AACjD,gDAA6D;AAC7D,0EAAqD;AAErD,MAAa,kBAAkB;IACpB,QAAQ,CAAa;IAErB,OAAO,CAAS;IAEzB,YAAY,OAAe,EAAE,QAAmD;QAC9E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAQ,CAAC,OAAO,EAAE,mBAAa,EAAE,QAAQ,CAA0B,CAAC;IAC1F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QAIR,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjD,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;SAC5B,CAAC,CAAC;QACH,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,WAAW;SACtB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,IAAI,CAAC;YACH,MAAM,kBAAkB,GAAG,iBAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,kBAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC9F,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACpE,kBAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AAxCD,gDAwCC"} +\ No newline at end of file ++{"version":3,"file":"token-vault-contract.js","sourceRoot":"","sources":["../../../../src/contracts/railgun-smart-wallet/V3/token-vault-contract.ts"],"names":[],"mappings":";;;;;;AAAA,mCAA4C;AAE5C,0CAAiD;AACjD,gDAA6D;AAC7D,0EAAqD;AAErD,MAAa,kBAAkB;IACpB,QAAQ,CAAa;IAErB,OAAO,CAAS;IAEzB,YAAY,OAAe,EAAE,QAAkB;QAC7C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAQ,CAAC,OAAO,EAAE,mBAAa,EAAE,QAAQ,CAA0B,CAAC;IAC1F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QAIR,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjD,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YACzB,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;SAC5B,CAAC,CAAC;QACH,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,WAAW;SACtB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,SAAiB;QACrC,IAAI,CAAC;YACH,MAAM,kBAAkB,GAAG,iBAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,kBAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC9F,OAAO,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAChE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,iCAAiC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YACpE,kBAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AAxCD,gDAwCC"} +\ No newline at end of file +diff --git a/node_modules/@railgun-community/engine/dist/railgun-engine.d.ts b/node_modules/@railgun-community/engine/dist/railgun-engine.d.ts +index 70dcd36..3768a01 100644 +--- a/node_modules/@railgun-community/engine/dist/railgun-engine.d.ts ++++ b/node_modules/@railgun-community/engine/dist/railgun-engine.d.ts +@@ -1,7 +1,7 @@ + /// + import type { AbstractLevelDOWN } from 'abstract-leveldown'; + import EventEmitter from 'events'; +-import { FallbackProvider } from 'ethers'; ++import type { Provider } from 'ethers'; + import { RailgunSmartWalletContract } from './contracts/railgun-smart-wallet/V2/railgun-smart-wallet'; + import { RelayAdaptV2Contract } from './contracts/relay-adapt/V2/relay-adapt-v2'; + import { Database } from './database/database'; +@@ -14,7 +14,6 @@ import { GetLatestValidatedRailgunTxid, QuickSyncEvents, QuickSyncRailgunTransac + import { ViewOnlyWallet } from './wallet/view-only-wallet'; + import { AbstractWallet } from './wallet/abstract-wallet'; + import { ArtifactGetter } from './models/prover-types'; +-import { PollingJsonRpcProvider } from './provider/polling-json-rpc-provider'; + import { UTXOMerkletree } from './merkletree/utxo-merkletree'; + import { TXIDMerkletree } from './merkletree/txid-merkletree'; + import { MerklerootValidator } from './models/merkletree-types'; +@@ -135,12 +134,23 @@ declare class RailgunEngine extends EventEmitter { + private static validateMerkleroot; + /** + * Load network ++ * @param chain + * @param railgunSmartWalletContractAddress - address of railgun instance (proxy contract) + * @param relayAdaptV2ContractAddress - address of railgun instance (proxy contract) +- * @param provider - ethers provider for network +- * @param deploymentBlock - block number to start scanning from +- */ +- loadNetwork(chain: Chain, railgunSmartWalletContractAddress: string, relayAdaptV2ContractAddress: string, poseidonMerkleAccumulatorV3Address: string, poseidonMerkleVerifierV3Address: string, tokenVaultV3Address: string, defaultProvider: PollingJsonRpcProvider | FallbackProvider, pollingProvider: PollingJsonRpcProvider, deploymentBlocks: Record, poiLaunchBlock: Optional, supportsV3: boolean): Promise; ++ * @param poseidonMerkleAccumulatorV3Address ++ * @param poseidonMerkleVerifierV3Address ++ * @param tokenVaultV3Address ++ * @param defaultProvider - ethers provider for network ++ * @param pollingProvider - DEPRECATED ++ * @param deploymentBlocks - block number to start scanning from ++ * @param poiLaunchBlock ++ * @param supportsV3 ++ */ ++ loadNetwork(chain: Chain, railgunSmartWalletContractAddress: string, relayAdaptV2ContractAddress: string, poseidonMerkleAccumulatorV3Address: string, poseidonMerkleVerifierV3Address: string, tokenVaultV3Address: string, defaultProvider: Provider, ++ /** ++ * @deprecated pollingProvider will be removed in the next major version. ++ */ ++ pollingProvider?: Provider, deploymentBlocks: Record, poiLaunchBlock: Optional, supportsV3: boolean): Promise; + /** + * Unload network + * @param chain - chainID of network to unload +diff --git a/node_modules/@railgun-community/engine/dist/railgun-engine.js b/node_modules/@railgun-community/engine/dist/railgun-engine.js +index dfd6202..530c3bf 100644 +--- a/node_modules/@railgun-community/engine/dist/railgun-engine.js ++++ b/node_modules/@railgun-community/engine/dist/railgun-engine.js +@@ -21,7 +21,6 @@ const wallet_info_1 = __importDefault(require("./wallet/wallet-info")); + const chain_1 = require("./chain/chain"); + const contract_store_1 = require("./contracts/contract-store"); + const constants_1 = require("./utils/constants"); +-const polling_util_1 = require("./provider/polling-util"); + const is_defined_1 = require("./utils/is-defined"); + const utxo_merkletree_1 = require("./merkletree/utxo-merkletree"); + const txid_merkletree_1 = require("./merkletree/txid-merkletree"); +@@ -921,12 +920,25 @@ class RailgunEngine extends events_1.default { + } + /** + * Load network ++ * @param chain + * @param railgunSmartWalletContractAddress - address of railgun instance (proxy contract) + * @param relayAdaptV2ContractAddress - address of railgun instance (proxy contract) +- * @param provider - ethers provider for network +- * @param deploymentBlock - block number to start scanning from +- */ +- async loadNetwork(chain, railgunSmartWalletContractAddress, relayAdaptV2ContractAddress, poseidonMerkleAccumulatorV3Address, poseidonMerkleVerifierV3Address, tokenVaultV3Address, defaultProvider, pollingProvider, deploymentBlocks, poiLaunchBlock, supportsV3) { ++ * @param poseidonMerkleAccumulatorV3Address ++ * @param poseidonMerkleVerifierV3Address ++ * @param tokenVaultV3Address ++ * @param defaultProvider - ethers provider for network ++ * @param pollingProvider - DEPRECATED ++ * @param deploymentBlocks - block number to start scanning from ++ * @param poiLaunchBlock ++ * @param supportsV3 ++ */ ++ async loadNetwork(chain, railgunSmartWalletContractAddress, relayAdaptV2ContractAddress, poseidonMerkleAccumulatorV3Address, poseidonMerkleVerifierV3Address, tokenVaultV3Address, defaultProvider, ++ /** ++ * @deprecated pollingProvider will be removed in the next major version. ++ */ ++ pollingProvider, ++ // @ts-ignore - Ignore optional param last requirement during deprecation ++ deploymentBlocks, poiLaunchBlock, supportsV3) { + debugger_1.default.log(`loadNetwork: ${chain.type}:${chain.id}`); + try { + await (0, promises_1.promiseTimeout)(defaultProvider.getBlockNumber(), 60_000, 'Timed out waiting for default RPC provider to connect.'); +@@ -936,17 +948,6 @@ class RailgunEngine extends events_1.default { + debugger_1.default.error(err); + throw err; + } +- (0, polling_util_1.assertIsPollingProvider)(pollingProvider); +- try { +- await (0, promises_1.promiseTimeout)(pollingProvider.getBlockNumber(), 60_000, 'Timed out waiting for polling RPC provider to connect.'); +- } +- catch (cause) { +- const err = new Error('Failed to get block number from polling provider when loading network', { +- cause, +- }); +- debugger_1.default.error(cause); +- throw err; +- } + if (supportsV3) { + (0, chain_1.addChainSupportsV3)(chain); + } +diff --git a/node_modules/@railgun-community/engine/dist/railgun-engine.js.map b/node_modules/@railgun-community/engine/dist/railgun-engine.js.map +index d754409..ef0f21e 100644 +--- a/node_modules/@railgun-community/engine/dist/railgun-engine.js.map ++++ b/node_modules/@railgun-community/engine/dist/railgun-engine.js.map +@@ -1 +1 @@ +-{"version":3,"file":"railgun-engine.js","sourceRoot":"","sources":["../src/railgun-engine.ts"],"names":[],"mappings":"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"} +\ No newline at end of file ++{"version":3,"file":"railgun-engine.js","sourceRoot":"","sources":["../src/railgun-engine.ts"],"names":[],"mappings":"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"} +\ No newline at end of file diff --git a/patches/@railgun-community+shared-models+7.5.0.patch b/patches/@railgun-community+shared-models+7.5.0.patch new file mode 100644 index 0000000..1d30884 --- /dev/null +++ b/patches/@railgun-community+shared-models+7.5.0.patch @@ -0,0 +1,241 @@ +diff --git a/node_modules/@railgun-community/shared-models/dist/utils/available-rpc.d.ts b/node_modules/@railgun-community/shared-models/dist/utils/available-rpc.d.ts +index a84b244..e144017 100644 +--- a/node_modules/@railgun-community/shared-models/dist/utils/available-rpc.d.ts ++++ b/node_modules/@railgun-community/shared-models/dist/utils/available-rpc.d.ts +@@ -1,4 +1,4 @@ +-import { ProviderJson } from './fallback-provider'; ++import { ProviderJson } from './provider'; + type LogError = (err: string) => void; + /** + * Health checks ProviderJson inputs, and returns an array of available RPC providers. +diff --git a/node_modules/@railgun-community/shared-models/dist/utils/available-rpc.js b/node_modules/@railgun-community/shared-models/dist/utils/available-rpc.js +index b87c16f..78e1f9f 100644 +--- a/node_modules/@railgun-community/shared-models/dist/utils/available-rpc.js ++++ b/node_modules/@railgun-community/shared-models/dist/utils/available-rpc.js +@@ -36,9 +36,18 @@ const getAvailableProviderJSONs = async (chainId, providerJsons, logError) => { + exports.getAvailableProviderJSONs = getAvailableProviderJSONs; + const getBlockNumber = async (chainId, provider, logError) => { + const network = ethers_1.Network.from(chainId); +- const rpcProvider = new ethers_1.JsonRpcProvider(provider, network, { +- staticNetwork: network, +- }); ++ // Conditionally handle what type of provider is being passed ++ let rpcProvider; ++ if (provider.startsWith('wss')) { ++ rpcProvider = new ethers_1.WebSocketProvider(provider, network, { ++ staticNetwork: network, // Network is dictated in the RPC URL, will not change ++ }); ++ } ++ else { ++ rpcProvider = new ethers_1.JsonRpcProvider(provider, network, { ++ staticNetwork: network, // Network is dictated in the RPC URL, will not change ++ }); ++ } + try { + const block = await (0, promises_1.promiseTimeout)(rpcProvider.getBlock('latest'), BLOCK_NUMBER_TIMEOUT_MS); + if (block == null) { +diff --git a/node_modules/@railgun-community/shared-models/dist/utils/available-rpc.js.map b/node_modules/@railgun-community/shared-models/dist/utils/available-rpc.js.map +index b2f79ce..87b1a61 100644 +--- a/node_modules/@railgun-community/shared-models/dist/utils/available-rpc.js.map ++++ b/node_modules/@railgun-community/shared-models/dist/utils/available-rpc.js.map +@@ -1 +1 @@ +-{"version":3,"file":"available-rpc.js","sourceRoot":"","sources":["../../src/utils/available-rpc.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AACzC,mCAAkD;AAElD,qCAA+C;AAC/C,yCAA4C;AAI5C,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC;;;GAGG;AACI,MAAM,yBAAyB,GAAG,KAAK,EAC5C,OAAe,EACf,aAA6B,EAC7B,QAAkB,EACO,EAAE;IAC3B,MAAM,YAAY,GAAuB,MAAM,OAAO,CAAC,GAAG,CACxD,aAAa,CAAC,GAAG,CACf,KAAK,EAAC,YAAY,EAAC,EAAE,CACnB,MAAM,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CACjE,CACF,CAAC;IAEF,MAAM,mBAAmB,GAAG,YAAY,CAAC,MAAM,CAC7C,WAAW,CAAC,EAAE,CAAC,WAAW,IAAI,IAAI,IAAI,WAAW,GAAG,CAAC,CAC1C,CAAC;IACd,MAAM,iBAAiB,GAAG,IAAA,4BAAmB,EAAC,mBAAmB,CAAC,CAAC;IACnE,MAAM,eAAe,GAAG,iBAAiB,GAAG,GAAG,CAAC;IAChD,MAAM,eAAe,GAAG,iBAAiB,GAAG,GAAG,CAAC;IAEhD,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE;QAClD,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,WAAW,IAAI,IAAI,EAAE;YACvB,QAAQ,CACN,+BAA+B,YAAY,CAAC,QAAQ,mBAAmB,CACxE,CAAC;YACF,OAAO,KAAK,CAAC;SACd;QACD,IAAI,WAAW,GAAG,eAAe,EAAE;YACjC,QAAQ,CACN,+BAA+B,YAAY,CAAC,QAAQ,mBAClD,iBAAiB,GAAG,WACtB,cAAc,CACf,CAAC;YACF,OAAO,KAAK,CAAC;SACd;QACD,IAAI,WAAW,GAAG,eAAe,EAAE;YACjC,QAAQ,CACN,+BAA+B,YAAY,CAAC,QAAQ,mBAClD,WAAW,GAAG,iBAChB,cAAc,CACf,CAAC;YACF,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AA7CW,QAAA,yBAAyB,6BA6CpC;AAEF,MAAM,cAAc,GAAG,KAAK,EAC1B,OAAe,EACf,QAAgB,EAChB,QAAkB,EACS,EAAE;IAC7B,MAAM,OAAO,GAAG,gBAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,IAAI,wBAAe,CAAC,QAAQ,EAAE,OAAO,EAAE;QACzD,aAAa,EAAE,OAAO;KACvB,CAAC,CAAC;IACH,IAAI;QACF,MAAM,KAAK,GAAG,MAAM,IAAA,yBAAc,EAChC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC9B,uBAAuB,CACxB,CAAC;QACF,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;SAClC;QACD,OAAO,KAAK,CAAC,MAAM,CAAC;KACrB;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CAAC,sCAAsC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;SACpE;QACD,WAAW,CAAC,OAAO,EAAE,CAAC;QACtB,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxB,OAAO,SAAS,CAAC;KAClB;AACH,CAAC,CAAC","sourcesContent":["/// \nimport { JsonRpcProvider, Network } from 'ethers';\nimport { ProviderJson } from './fallback-provider';\nimport { getUpperBoundMedian } from './median';\nimport { promiseTimeout } from './promises';\n\ntype LogError = (err: string) => void;\n\nconst BLOCK_NUMBER_TIMEOUT_MS = 5000;\n\n/**\n * Health checks ProviderJson inputs, and returns an array of available RPC providers.\n * Available means that they respond to getBlockNumber(), and they are +/- 100 blocks from the median.\n */\nexport const getAvailableProviderJSONs = async (\n chainId: number,\n providerJsons: ProviderJson[],\n logError: LogError,\n): Promise => {\n const blockNumbers: Optional[] = await Promise.all(\n providerJsons.map(\n async providerJson =>\n await getBlockNumber(chainId, providerJson.provider, logError),\n ),\n );\n\n const nonZeroBlockNumbers = blockNumbers.filter(\n blockNumber => blockNumber != null && blockNumber > 0,\n ) as number[];\n const medianBlockNumber = getUpperBoundMedian(nonZeroBlockNumbers);\n const lowerBoundRange = medianBlockNumber - 100;\n const upperBoundRange = medianBlockNumber + 100;\n\n return providerJsons.filter((providerJson, index) => {\n const blockNumber = blockNumbers[index];\n if (blockNumber == null) {\n logError(\n `RPC Health Check failed for ${providerJson.provider}: No Block Number`,\n );\n return false;\n }\n if (blockNumber < lowerBoundRange) {\n logError(\n `RPC Health Check failed for ${providerJson.provider}: Block Number -${\n medianBlockNumber - blockNumber\n } from median`,\n );\n return false;\n }\n if (blockNumber > upperBoundRange) {\n logError(\n `RPC Health Check failed for ${providerJson.provider}: Block Number +${\n blockNumber - medianBlockNumber\n } from median`,\n );\n return false;\n }\n return true;\n });\n};\n\nconst getBlockNumber = async (\n chainId: number,\n provider: string,\n logError: LogError,\n): Promise> => {\n const network = Network.from(chainId);\n const rpcProvider = new JsonRpcProvider(provider, network, {\n staticNetwork: network,\n });\n try {\n const block = await promiseTimeout(\n rpcProvider.getBlock('latest'),\n BLOCK_NUMBER_TIMEOUT_MS,\n );\n if (block == null) {\n throw new Error('Block is null');\n }\n return block.number;\n } catch (cause) {\n if (!(cause instanceof Error)) {\n throw new Error('Non-error thrown from getBlockNumber', { cause });\n }\n rpcProvider.destroy();\n logError(cause.message);\n return undefined;\n }\n};\n"]} +\ No newline at end of file ++{"version":3,"file":"available-rpc.js","sourceRoot":"","sources":["../../src/utils/available-rpc.ts"],"names":[],"mappings":"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","sourcesContent":["/// \nimport { JsonRpcProvider, Network, type Provider, WebSocketProvider } from 'ethers';\nimport { ProviderJson } from './provider';\nimport { getUpperBoundMedian } from './median';\nimport { promiseTimeout } from './promises';\n\ntype LogError = (err: string) => void;\n\nconst BLOCK_NUMBER_TIMEOUT_MS = 5000;\n\n/**\n * Health checks ProviderJson inputs, and returns an array of available RPC providers.\n * Available means that they respond to getBlockNumber(), and they are +/- 100 blocks from the median.\n */\nexport const getAvailableProviderJSONs = async (\n chainId: number,\n providerJsons: ProviderJson[],\n logError: LogError,\n): Promise => {\n const blockNumbers: Optional[] = await Promise.all(\n providerJsons.map(\n async providerJson =>\n await getBlockNumber(chainId, providerJson.provider, logError),\n ),\n );\n\n const nonZeroBlockNumbers = blockNumbers.filter(\n blockNumber => blockNumber != null && blockNumber > 0,\n ) as number[];\n const medianBlockNumber = getUpperBoundMedian(nonZeroBlockNumbers);\n const lowerBoundRange = medianBlockNumber - 100;\n const upperBoundRange = medianBlockNumber + 100;\n\n return providerJsons.filter((providerJson, index) => {\n const blockNumber = blockNumbers[index];\n if (blockNumber == null) {\n logError(\n `RPC Health Check failed for ${providerJson.provider}: No Block Number`,\n );\n return false;\n }\n if (blockNumber < lowerBoundRange) {\n logError(\n `RPC Health Check failed for ${providerJson.provider}: Block Number -${\n medianBlockNumber - blockNumber\n } from median`,\n );\n return false;\n }\n if (blockNumber > upperBoundRange) {\n logError(\n `RPC Health Check failed for ${providerJson.provider}: Block Number +${\n blockNumber - medianBlockNumber\n } from median`,\n );\n return false;\n }\n return true;\n });\n};\n\nconst getBlockNumber = async (\n chainId: number,\n provider: string,\n logError: LogError,\n): Promise> => {\n const network = Network.from(chainId);\n\n // Conditionally handle what type of provider is being passed\n let rpcProvider: Provider;\n if(provider.startsWith('wss')) {\n rpcProvider = new WebSocketProvider(provider, network, {\n staticNetwork: network, // Network is dictated in the RPC URL, will not change\n });\n } else {\n rpcProvider = new JsonRpcProvider(provider, network, {\n staticNetwork: network, // Network is dictated in the RPC URL, will not change\n });\n }\n\n try {\n const block = await promiseTimeout(\n rpcProvider.getBlock('latest'),\n BLOCK_NUMBER_TIMEOUT_MS,\n );\n if (block == null) {\n throw new Error('Block is null');\n }\n return block.number;\n } catch (cause) {\n if (!(cause instanceof Error)) {\n throw new Error('Non-error thrown from getBlockNumber', { cause });\n }\n rpcProvider.destroy();\n logError(cause.message);\n return undefined;\n }\n};\n"]} +\ No newline at end of file +diff --git a/node_modules/@railgun-community/shared-models/dist/utils/fallback-provider.js b/node_modules/@railgun-community/shared-models/dist/utils/fallback-provider.js +deleted file mode 100644 +index 75cd1e7..0000000 +--- a/node_modules/@railgun-community/shared-models/dist/utils/fallback-provider.js ++++ /dev/null +@@ -1,36 +0,0 @@ +-"use strict"; +-Object.defineProperty(exports, "__esModule", { value: true }); +-exports.createFallbackProviderFromJsonConfig = void 0; +-const ethers_1 = require("ethers"); +-const configured_json_rpc_provider_1 = require("./configured-json-rpc-provider"); +-const createFallbackProviderFromJsonConfig = (config) => { +- try { +- const totalWeight = config.providers.reduce((acc, { weight }) => acc + weight, 0); +- if (totalWeight < 2) { +- throw new Error('Total weight across providers must be >= 2 for fallback quorum.'); +- } +- const network = ethers_1.Network.from(Number(config.chainId)); +- const providers = config.providers.map(({ provider: providerURL, priority, weight, stallTimeout, maxLogsPerBatch, }) => { +- const isWebsocket = providerURL.startsWith('wss'); +- const provider = isWebsocket +- ? new ethers_1.WebSocketProvider(providerURL, network) +- : new configured_json_rpc_provider_1.ConfiguredJsonRpcProvider(providerURL, network, maxLogsPerBatch); +- const fallbackProviderConfig = { +- provider, +- priority, +- weight, +- stallTimeout, +- }; +- return fallbackProviderConfig; +- }); +- return new ethers_1.FallbackProvider(providers, network); +- } +- catch (cause) { +- if (!(cause instanceof Error)) { +- throw new Error('Non-error thrown from createFallbackProviderFromJsonConfig', { cause }); +- } +- throw new Error(`Invalid fallback provider config for chain ${config.chainId}`, { cause }); +- } +-}; +-exports.createFallbackProviderFromJsonConfig = createFallbackProviderFromJsonConfig; +-//# sourceMappingURL=fallback-provider.js.map +\ No newline at end of file +diff --git a/node_modules/@railgun-community/shared-models/dist/utils/fallback-provider.js.map b/node_modules/@railgun-community/shared-models/dist/utils/fallback-provider.js.map +deleted file mode 100644 +index 2118e5a..0000000 +--- a/node_modules/@railgun-community/shared-models/dist/utils/fallback-provider.js.map ++++ /dev/null +@@ -1 +0,0 @@ +-{"version":3,"file":"fallback-provider.js","sourceRoot":"","sources":["../../src/utils/fallback-provider.ts"],"names":[],"mappings":";;;AAAA,mCAAsE;AACtE,iFAA2E;AAgBpE,MAAM,oCAAoC,GAAG,CAClD,MAAkC,EAChB,EAAE;IACpB,IAAI;QACF,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,EACjC,CAAC,CACF,CAAC;QACF,IAAI,WAAW,GAAG,CAAC,EAAE;YACnB,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;SACH;QAED,MAAM,OAAO,GAAG,gBAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAErD,MAAM,SAAS,GAA6B,MAAM,CAAC,SAAS,CAAC,GAAG,CAC9D,CAAC,EACC,QAAQ,EAAE,WAAW,EACrB,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,eAAe,GAChB,EAAE,EAAE;YACH,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,WAAW;gBAC1B,CAAC,CAAC,IAAI,0BAAiB,CAAC,WAAW,EAAE,OAAO,CAAC;gBAC7C,CAAC,CAAC,IAAI,wDAAyB,CAC3B,WAAW,EACX,OAAO,EACP,eAAe,CAChB,CAAC;YAEN,MAAM,sBAAsB,GAA2B;gBACrD,QAAQ;gBACR,QAAQ;gBACR,MAAM;gBACN,YAAY;aACb,CAAC;YACF,OAAO,sBAAsB,CAAC;QAChC,CAAC,CACF,CAAC;QAEF,OAAO,IAAI,yBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;KACjD;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CACb,4DAA4D,EAC5D,EAAE,KAAK,EAAE,CACV,CAAC;SACH;QACD,MAAM,IAAI,KAAK,CACb,8CAA8C,MAAM,CAAC,OAAO,EAAE,EAC9D,EAAE,KAAK,EAAE,CACV,CAAC;KACH;AACH,CAAC,CAAC;AAxDW,QAAA,oCAAoC,wCAwD/C","sourcesContent":["import { FallbackProvider, Network, WebSocketProvider } from 'ethers';\nimport { ConfiguredJsonRpcProvider } from './configured-json-rpc-provider';\nimport { FallbackProviderConfig } from 'ethers/lib.commonjs/providers/provider-fallback';\n\nexport type FallbackProviderJsonConfig = {\n chainId: number;\n providers: ProviderJson[];\n};\n\nexport type ProviderJson = {\n priority: number;\n weight: number;\n provider: string;\n stallTimeout?: number;\n maxLogsPerBatch?: number;\n};\n\nexport const createFallbackProviderFromJsonConfig = (\n config: FallbackProviderJsonConfig,\n): FallbackProvider => {\n try {\n const totalWeight = config.providers.reduce(\n (acc, { weight }) => acc + weight,\n 0,\n );\n if (totalWeight < 2) {\n throw new Error(\n 'Total weight across providers must be >= 2 for fallback quorum.',\n );\n }\n\n const network = Network.from(Number(config.chainId));\n\n const providers: FallbackProviderConfig[] = config.providers.map(\n ({\n provider: providerURL,\n priority,\n weight,\n stallTimeout,\n maxLogsPerBatch,\n }) => {\n const isWebsocket = providerURL.startsWith('wss');\n const provider = isWebsocket\n ? new WebSocketProvider(providerURL, network)\n : new ConfiguredJsonRpcProvider(\n providerURL,\n network,\n maxLogsPerBatch,\n );\n\n const fallbackProviderConfig: FallbackProviderConfig = {\n provider,\n priority,\n weight,\n stallTimeout,\n };\n return fallbackProviderConfig;\n },\n );\n\n return new FallbackProvider(providers, network);\n } catch (cause) {\n if (!(cause instanceof Error)) {\n throw new Error(\n 'Non-error thrown from createFallbackProviderFromJsonConfig',\n { cause },\n );\n }\n throw new Error(\n `Invalid fallback provider config for chain ${config.chainId}`,\n { cause },\n );\n }\n};\n"]} +\ No newline at end of file +diff --git a/node_modules/@railgun-community/shared-models/dist/utils/index.d.ts b/node_modules/@railgun-community/shared-models/dist/utils/index.d.ts +index 8a9c0c5..8480616 100644 +--- a/node_modules/@railgun-community/shared-models/dist/utils/index.d.ts ++++ b/node_modules/@railgun-community/shared-models/dist/utils/index.d.ts +@@ -1,7 +1,7 @@ + export * from './artifact-v2'; + export * from './available-rpc'; + export * from './compare'; +-export * from './fallback-provider'; ++export * from './provider'; + export * from './error'; + export * from './format'; + export * from './gas'; +diff --git a/node_modules/@railgun-community/shared-models/dist/utils/index.js b/node_modules/@railgun-community/shared-models/dist/utils/index.js +index 3c2c697..8b5f57e 100644 +--- a/node_modules/@railgun-community/shared-models/dist/utils/index.js ++++ b/node_modules/@railgun-community/shared-models/dist/utils/index.js +@@ -17,7 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); + __exportStar(require("./artifact-v2"), exports); + __exportStar(require("./available-rpc"), exports); + __exportStar(require("./compare"), exports); +-__exportStar(require("./fallback-provider"), exports); ++__exportStar(require("./provider"), exports); + __exportStar(require("./error"), exports); + __exportStar(require("./format"), exports); + __exportStar(require("./gas"), exports); +diff --git a/node_modules/@railgun-community/shared-models/dist/utils/index.js.map b/node_modules/@railgun-community/shared-models/dist/utils/index.js.map +index c266b30..972acee 100644 +--- a/node_modules/@railgun-community/shared-models/dist/utils/index.js.map ++++ b/node_modules/@railgun-community/shared-models/dist/utils/index.js.map +@@ -1 +1 @@ +-{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,kDAAgC;AAChC,4CAA0B;AAC1B,sDAAoC;AACpC,0CAAwB;AACxB,2CAAyB;AACzB,wCAAsB;AACtB,4CAA0B;AAC1B,6CAA2B;AAC3B,yCAAuB;AACvB,6CAA2B","sourcesContent":["export * from './artifact-v2';\nexport * from './available-rpc';\nexport * from './compare';\nexport * from './fallback-provider';\nexport * from './error';\nexport * from './format';\nexport * from './gas';\nexport * from './network';\nexport * from './promises';\nexport * from './util';\nexport * from './versions';\n"]} +\ No newline at end of file ++{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,kDAAgC;AAChC,4CAA0B;AAC1B,6CAA2B;AAC3B,0CAAwB;AACxB,2CAAyB;AACzB,wCAAsB;AACtB,4CAA0B;AAC1B,6CAA2B;AAC3B,yCAAuB;AACvB,6CAA2B","sourcesContent":["export * from './artifact-v2';\nexport * from './available-rpc';\nexport * from './compare';\nexport * from './provider';\nexport * from './error';\nexport * from './format';\nexport * from './gas';\nexport * from './network';\nexport * from './promises';\nexport * from './util';\nexport * from './versions';\n"]} +\ No newline at end of file +diff --git a/node_modules/@railgun-community/shared-models/dist/utils/fallback-provider.d.ts b/node_modules/@railgun-community/shared-models/dist/utils/provider.d.ts +similarity index 55% +rename from node_modules/@railgun-community/shared-models/dist/utils/fallback-provider.d.ts +rename to node_modules/@railgun-community/shared-models/dist/utils/provider.d.ts +index fec4ce9..3f9b115 100644 +--- a/node_modules/@railgun-community/shared-models/dist/utils/fallback-provider.d.ts ++++ b/node_modules/@railgun-community/shared-models/dist/utils/provider.d.ts +@@ -1,4 +1,4 @@ +-import { FallbackProvider } from 'ethers'; ++import { Provider } from 'ethers'; + export type FallbackProviderJsonConfig = { + chainId: number; + providers: ProviderJson[]; +@@ -7,7 +7,8 @@ export type ProviderJson = { + priority: number; + weight: number; + provider: string; ++ chainId?: number; + stallTimeout?: number; + maxLogsPerBatch?: number; + }; +-export declare const createFallbackProviderFromJsonConfig: (config: FallbackProviderJsonConfig) => FallbackProvider; ++export declare const createProviderFromJsonConfig: (config: FallbackProviderJsonConfig | ProviderJson, pollingInterval?: number) => Provider; +diff --git a/node_modules/@railgun-community/shared-models/dist/utils/provider.js b/node_modules/@railgun-community/shared-models/dist/utils/provider.js +new file mode 100644 +index 0000000..3d56966 +--- /dev/null ++++ b/node_modules/@railgun-community/shared-models/dist/utils/provider.js +@@ -0,0 +1,72 @@ ++"use strict"; ++Object.defineProperty(exports, "__esModule", { value: true }); ++exports.createProviderFromJsonConfig = void 0; ++const ethers_1 = require("ethers"); ++const configured_json_rpc_provider_1 = require("./configured-json-rpc-provider"); ++const util_1 = require("./util"); ++const createProviderFromJsonConfig = (config, pollingInterval) => { ++ try { ++ // Handle single provider case ++ if (!('providers' in config)) { ++ // Get RPC URL ++ const providerURL = config.provider; ++ // Ensure providerURL exists and is a string ++ if (!(0, util_1.isDefined)(providerURL)) { ++ throw new Error('provider is required for single provider configuration'); ++ } ++ else if (typeof providerURL !== 'string') { ++ throw new Error('provider must be a string'); ++ } ++ // Ensure chainId is present ++ if (!(0, util_1.isDefined)(config.chainId)) { ++ throw new Error('chainId is required for single provider configuration'); ++ } ++ // Create singular provider depending on the URL ++ let provider; ++ if (providerURL.startsWith('wss')) { ++ provider = new ethers_1.WebSocketProvider(providerURL, config.chainId, { ++ staticNetwork: true, ++ }); ++ } ++ else { ++ provider = new ethers_1.JsonRpcProvider(providerURL, config.chainId, { ++ staticNetwork: true, ++ pollingInterval, ++ }); ++ } ++ return provider; ++ } ++ ; ++ const totalWeight = config.providers.reduce((acc, { weight }) => acc + weight, 0); ++ if (totalWeight < 2) { ++ throw new Error('Total weight across providers must be >= 2 for fallback quorum.'); ++ } ++ const network = ethers_1.Network.from(Number(config.chainId)); ++ const providers = config.providers.map(({ provider: providerURL, priority, weight, stallTimeout, maxLogsPerBatch, }) => { ++ const isWebsocket = providerURL.startsWith('wss'); ++ if (isWebsocket) { ++ throw new Error('WebSocketProvider not supported in FallbackProvider as it will use polling instead of eth_subscribe'); ++ } ++ const provider = new configured_json_rpc_provider_1.ConfiguredJsonRpcProvider(providerURL, network, maxLogsPerBatch); ++ const fallbackProviderConfig = { ++ provider, ++ priority, ++ weight, ++ stallTimeout, ++ }; ++ return fallbackProviderConfig; ++ }); ++ return new ethers_1.FallbackProvider(providers, network, { ++ pollingInterval ++ }); ++ } ++ catch (cause) { ++ if (!(cause instanceof Error)) { ++ throw new Error('Non-error thrown from createFallbackProviderFromJsonConfig', { cause }); ++ } ++ // Preserve the original error message ++ throw cause; ++ } ++}; ++exports.createProviderFromJsonConfig = createProviderFromJsonConfig; ++//# sourceMappingURL=provider.js.map +\ No newline at end of file +diff --git a/node_modules/@railgun-community/shared-models/dist/utils/provider.js.map b/node_modules/@railgun-community/shared-models/dist/utils/provider.js.map +new file mode 100644 +index 0000000..45612f1 +--- /dev/null ++++ b/node_modules/@railgun-community/shared-models/dist/utils/provider.js.map +@@ -0,0 +1 @@ ++{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/utils/provider.ts"],"names":[],"mappings":";;;AAAA,mCAAiG;AACjG,iFAA2E;AAE3E,iCAAmC;AAgB5B,MAAM,4BAA4B,GAAG,CAC1C,MAAiD,EACjD,eAAwB,EACd,EAAE;IACZ,IAAI;QACF,8BAA8B;QAC9B,IAAI,CAAC,CAAC,WAAW,IAAI,MAAM,CAAC,EAAE;YAC5B,cAAc;YACd,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC;YACpC,4CAA4C;YAC5C,IAAI,CAAC,IAAA,gBAAS,EAAC,WAAW,CAAC,EAAE;gBAC3B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;aAC3E;iBAAM,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;gBAC1C,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;aAC9C;YAED,4BAA4B;YAC5B,IAAI,CAAC,IAAA,gBAAS,EAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gBAC9B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;aAC1E;YAED,gDAAgD;YAChD,IAAI,QAA6C,CAAC;YAClD,IAAI,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;gBACjC,QAAQ,GAAG,IAAI,0BAAiB,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE;oBAC5D,aAAa,EAAE,IAAI;iBACpB,CAAC,CAAC;aACJ;iBAAM;gBACL,QAAQ,GAAG,IAAI,wBAAe,CAAC,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE;oBAC1D,aAAa,EAAE,IAAI;oBACnB,eAAe;iBAChB,CAAC,CAAC;aACJ;YAED,OAAO,QAAQ,CAAC;SACjB;QAAA,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,EACjC,CAAC,CACF,CAAC;QACF,IAAI,WAAW,GAAG,CAAC,EAAE;YACnB,MAAM,IAAI,KAAK,CACb,iEAAiE,CAClE,CAAC;SACH;QAED,MAAM,OAAO,GAAG,gBAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAErD,MAAM,SAAS,GAA6B,MAAM,CAAC,SAAS,CAAC,GAAG,CAC9D,CAAC,EACC,QAAQ,EAAE,WAAW,EACrB,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,eAAe,GAChB,EAAE,EAAE;YACH,MAAM,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,WAAW,EAAE;gBACf,MAAM,IAAI,KAAK,CACb,qGAAqG,CACtG,CAAC;aACH;YAED,MAAM,QAAQ,GAAG,IAAI,wDAAyB,CAC5C,WAAW,EACX,OAAO,EACP,eAAe,CAChB,CAAC;YAEF,MAAM,sBAAsB,GAA2B;gBACrD,QAAQ;gBACR,QAAQ;gBACR,MAAM;gBACN,YAAY;aACb,CAAC;YACF,OAAO,sBAAsB,CAAC;QAChC,CAAC,CACF,CAAC;QAEF,OAAO,IAAI,yBAAgB,CAAC,SAAS,EAAE,OAAO,EAAE;YAC9C,eAAe;SAChB,CAAC,CAAC;KACJ;IAAC,OAAO,KAAK,EAAE;QACd,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE;YAC7B,MAAM,IAAI,KAAK,CACb,4DAA4D,EAC5D,EAAE,KAAK,EAAE,CACV,CAAC;SACH;QACD,sCAAsC;QACtC,MAAM,KAAK,CAAC;KACb;AACH,CAAC,CAAC;AA7FW,QAAA,4BAA4B,gCA6FvC","sourcesContent":["import { FallbackProvider, JsonRpcProvider, Network, Provider, WebSocketProvider } from 'ethers';\nimport { ConfiguredJsonRpcProvider } from './configured-json-rpc-provider';\nimport { FallbackProviderConfig } from 'ethers/lib.commonjs/providers/provider-fallback';\nimport { isDefined } from './util';\n\nexport type FallbackProviderJsonConfig = {\n chainId: number;\n providers: ProviderJson[];\n};\n\nexport type ProviderJson = {\n priority: number;\n weight: number;\n provider: string;\n chainId?: number;\n stallTimeout?: number;\n maxLogsPerBatch?: number;\n};\n\nexport const createProviderFromJsonConfig = (\n config: FallbackProviderJsonConfig | ProviderJson,\n pollingInterval?: number,\n): Provider => {\n try {\n // Handle single provider case\n if (!('providers' in config)) {\n // Get RPC URL\n const providerURL = config.provider;\n // Ensure providerURL exists and is a string\n if (!isDefined(providerURL)) {\n throw new Error('provider is required for single provider configuration');\n } else if (typeof providerURL !== 'string') {\n throw new Error('provider must be a string');\n }\n\n // Ensure chainId is present\n if (!isDefined(config.chainId)) {\n throw new Error('chainId is required for single provider configuration');\n }\n \n // Create singular provider depending on the URL\n let provider: JsonRpcProvider | WebSocketProvider;\n if (providerURL.startsWith('wss')) {\n provider = new WebSocketProvider(providerURL, config.chainId, {\n staticNetwork: true,\n });\n } else {\n provider = new JsonRpcProvider(providerURL, config.chainId, {\n staticNetwork: true,\n pollingInterval,\n });\n }\n\n return provider;\n };\n\n const totalWeight = config.providers.reduce(\n (acc, { weight }) => acc + weight,\n 0,\n );\n if (totalWeight < 2) {\n throw new Error(\n 'Total weight across providers must be >= 2 for fallback quorum.',\n );\n }\n\n const network = Network.from(Number(config.chainId));\n\n const providers: FallbackProviderConfig[] = config.providers.map(\n ({\n provider: providerURL,\n priority,\n weight,\n stallTimeout,\n maxLogsPerBatch,\n }) => {\n const isWebsocket = providerURL.startsWith('wss');\n if (isWebsocket) {\n throw new Error(\n 'WebSocketProvider not supported in FallbackProvider as it will use polling instead of eth_subscribe', \n );\n }\n\n const provider = new ConfiguredJsonRpcProvider(\n providerURL,\n network,\n maxLogsPerBatch,\n );\n\n const fallbackProviderConfig: FallbackProviderConfig = {\n provider,\n priority,\n weight,\n stallTimeout,\n };\n return fallbackProviderConfig;\n },\n );\n\n return new FallbackProvider(providers, network, {\n pollingInterval\n });\n } catch (cause) {\n if (!(cause instanceof Error)) {\n throw new Error(\n 'Non-error thrown from createFallbackProviderFromJsonConfig',\n { cause },\n );\n }\n // Preserve the original error message\n throw cause;\n }\n};\n"]} +\ No newline at end of file diff --git a/src/services/poi/poi-required.ts b/src/services/poi/poi-required.ts index 7e3af8e..f4e8805 100644 --- a/src/services/poi/poi-required.ts +++ b/src/services/poi/poi-required.ts @@ -3,7 +3,7 @@ import { NetworkName, isDefined, } from '@railgun-community/shared-models'; -import { getFallbackProviderForNetwork } from '../railgun/core/providers'; +import { getProviderForNetwork } from '../railgun/core/providers'; import { POI } from '@railgun-community/engine'; export class POIRequired { @@ -21,7 +21,7 @@ export class POIRequired { return false; } - const provider = getFallbackProviderForNetwork(networkName); + const provider = getProviderForNetwork(networkName); const blockNumber = await provider.getBlockNumber(); const isRequired = poi.launchBlock < blockNumber; diff --git a/src/services/railgun/core/__tests__/providers.test.ts b/src/services/railgun/core/__tests__/providers.test.ts index b694f01..45ccc03 100644 --- a/src/services/railgun/core/__tests__/providers.test.ts +++ b/src/services/railgun/core/__tests__/providers.test.ts @@ -11,7 +11,7 @@ import { MOCK_FALLBACK_PROVIDER_JSON_CONFIG_SEPOLIA, } from '../../../../tests/mocks.test'; import { closeTestEngine, initTestEngine } from '../../../../tests/setup.test'; -import { getFallbackProviderForNetwork } from '../providers'; +import { getProviderForNetwork } from '../providers'; import { loadProvider } from '../load-provider'; import { createRailgunWallet, walletForID } from '../../wallets/wallets'; import { @@ -54,10 +54,10 @@ describe('providers', () => { unshieldFeeV3: undefined, }); - expect(getFallbackProviderForNetwork(NetworkName.EthereumSepolia)).to.not.be + expect(getProviderForNetwork(NetworkName.EthereumSepolia)).to.not.be .undefined; expect(() => - getFallbackProviderForNetwork(NetworkName.EthereumRopsten_DEPRECATED), + getProviderForNetwork(NetworkName.EthereumRopsten_DEPRECATED), ).to.throw; expect(getUTXOMerkletreeForNetwork(txidVersion, NetworkName.EthereumSepolia)) @@ -140,6 +140,6 @@ describe('providers', () => { NetworkName.BNBChain, 10000, // pollingInterval ), - ).rejectedWith('Invalid fallback provider config for chain 56'); + ).rejectedWith('provider is required for single provider configuration'); }); }); diff --git a/src/services/railgun/core/load-provider.ts b/src/services/railgun/core/load-provider.ts index f971b88..e3057c8 100644 --- a/src/services/railgun/core/load-provider.ts +++ b/src/services/railgun/core/load-provider.ts @@ -4,8 +4,9 @@ import { LoadProviderResponse, NETWORK_CONFIG, NetworkName, + ProviderJson, TXIDVersion, - createFallbackProviderFromJsonConfig, + createProviderFromJsonConfig, isDefined, } from '@railgun-community/shared-models'; import { sendMessage } from '../../../utils'; @@ -13,73 +14,53 @@ import { reportAndSanitizeError } from '../../../utils/error'; import { WalletPOI } from '../../poi/wallet-poi'; import { getEngine } from './engine'; import { - PollingJsonRpcProvider, RailgunVersionedSmartContracts, - createPollingJsonRpcProviderForListeners, } from '@railgun-community/engine'; -import { FallbackProvider } from 'ethers' +import { type Provider} from 'ethers' import { - fallbackProviderMap, - pollingProviderMap, - setFallbackProviderForNetwork, - setPollingProviderForNetwork, + providerMap, + setProviderForNetwork, } from './providers'; import { WalletPOINodeInterface } from '../../poi/wallet-poi-node-interface'; -const createFallbackProviderForNetwork = async ( +const createProviderForNetwork = async ( networkName: NetworkName, - fallbackProviderJsonConfig: FallbackProviderJsonConfig, -): Promise => { - const existingProvider = fallbackProviderMap[networkName]; + providerJsonConfig: FallbackProviderJsonConfig | ProviderJson, + pollingInterval?: number, +): Promise => { + const existingProvider = providerMap[networkName]; if (existingProvider) { return existingProvider; } - const fallbackProvider = createFallbackProviderFromJsonConfig( - fallbackProviderJsonConfig, - ); - setFallbackProviderForNetwork(networkName, fallbackProvider); - return fallbackProvider; -}; - -const createPollingProviderForNetwork = async ( - networkName: NetworkName, - fallbackProvider: FallbackProvider, - pollingInterval: number, -): Promise => { - const existingProvider = pollingProviderMap[networkName]; - if (existingProvider) { - return existingProvider; - } - const network = NETWORK_CONFIG[networkName]; - if (!isDefined(network)) { - throw new Error('No network found'); - } - const pollingProvider = await createPollingJsonRpcProviderForListeners( - fallbackProvider, - network.chain.id, - pollingInterval, + const provider = createProviderFromJsonConfig( + providerJsonConfig, + pollingInterval ); - setPollingProviderForNetwork(networkName, pollingProvider); - return pollingProvider; + setProviderForNetwork(networkName, provider); + return provider; }; +/** + * + * @param chain + * @param networkName + * @param fallbackProviderJsonConfig + * @param pollingInterval + */ const loadProviderForNetwork = async ( chain: Chain, networkName: NetworkName, - fallbackProviderJsonConfig: FallbackProviderJsonConfig, + providerJsonConfig: FallbackProviderJsonConfig | ProviderJson, pollingInterval: number, ) => { sendMessage(`Load provider for network: ${networkName}`); - const fallbackProvider = await createFallbackProviderForNetwork( - networkName, - fallbackProviderJsonConfig, - ); - const pollingProvider = await createPollingProviderForNetwork( - networkName, - fallbackProvider, - pollingInterval - ); + // Create the provider from the JSON config + const provider = await createProviderForNetwork( + networkName, + providerJsonConfig, + pollingInterval, + ); const network = NETWORK_CONFIG[networkName]; const { @@ -125,8 +106,8 @@ const loadProviderForNetwork = async ( poseidonMerkleAccumulatorV3Contract, poseidonMerkleVerifierV3Contract, tokenVaultV3Contract, - fallbackProvider, - pollingProvider, + provider, // Can be of type FallbackProvider, WebSocketProvider, or JsonRpcProvider + undefined, // pollingProvider is being deprecated deploymentBlocks, poi?.launchBlock, supportsV3, @@ -138,22 +119,25 @@ const loadProviderForNetwork = async ( * for new RAILGUN events (balance updates). */ export const loadProvider = async ( - fallbackProviderJsonConfig: FallbackProviderJsonConfig, + providerJsonConfig: FallbackProviderJsonConfig | ProviderJson, networkName: NetworkName, + /** + * @deprecated pollingInterval - Default ethers polling interval is used + */ pollingInterval = 15000, ): Promise => { try { - delete fallbackProviderMap[networkName]; + delete providerMap[networkName]; const { chain, supportsV3 } = NETWORK_CONFIG[networkName]; - if (fallbackProviderJsonConfig.chainId !== chain.id) { + if ('chainId' in providerJsonConfig && providerJsonConfig.chainId !== chain.id) { throw new Error('Invalid chain ID'); } await loadProviderForNetwork( chain, networkName, - fallbackProviderJsonConfig, + providerJsonConfig, pollingInterval, ); WalletPOINodeInterface.unpause(chain); @@ -197,23 +181,33 @@ export const unloadProvider = async ( networkName: NetworkName, ): Promise => { WalletPOINodeInterface.pause(NETWORK_CONFIG[networkName].chain); - await fallbackProviderMap[networkName]?.destroy(); - pollingProviderMap[networkName]?.destroy(); - delete fallbackProviderMap[networkName]; - delete pollingProviderMap[networkName]; + providerMap[networkName]?.destroy(); + delete providerMap[networkName]; }; export const pauseAllPollingProviders = ( excludeNetworkName?: NetworkName, ): void => { - Object.keys(pollingProviderMap).forEach(networkName => { + Object.keys(providerMap).forEach(networkName => { if (networkName === excludeNetworkName) { return; } - const pollingProvider = pollingProviderMap[networkName]; - if (isDefined(pollingProvider) && !pollingProvider.paused) { - pollingProvider.pause(); + const provider = providerMap[networkName]; + + // Check if provider exists + if (!isDefined(provider)) { + throw new Error(`No provider found for network: ${networkName}`); + } + + // Ensure provider is a pausable provider + if (!('paused' in provider && 'pause' in provider)) { + throw new Error( + `Provider for network ${networkName} is not a pausable provider`, + ); } + + // Safe to call pause() after type check + (provider as { pause(): void }).pause(); }); }; @@ -223,11 +217,20 @@ export const resumeIsolatedPollingProviderForNetwork = ( pauseAllPollingProviders( networkName, // excludeNetworkName ); - const pollingProviderForNetwork = pollingProviderMap[networkName]; - if ( - isDefined(pollingProviderForNetwork) && - pollingProviderForNetwork.paused - ) { - pollingProviderForNetwork.resume(); + const provider = providerMap[networkName]; + + // Check if provider exists + if (!isDefined(provider)) { + throw new Error(`No provider found for network: ${networkName}`); } + + // Ensure provider has resume functionality + if (!('paused' in provider && 'resume' in provider)) { + throw new Error( + `Provider for network ${networkName} is not a pausable provider`, + ); + } + + // Safe to call resume() after type check + (provider as { resume(): void }).resume(); }; diff --git a/src/services/railgun/core/providers.ts b/src/services/railgun/core/providers.ts index a0f62e8..f654d08 100644 --- a/src/services/railgun/core/providers.ts +++ b/src/services/railgun/core/providers.ts @@ -1,42 +1,21 @@ import { NetworkName, isDefined } from '@railgun-community/shared-models'; -import { PollingJsonRpcProvider } from '@railgun-community/engine'; -import { FallbackProvider } from 'ethers'; +import { Provider } from 'ethers'; -export const fallbackProviderMap: MapType = {}; -export const pollingProviderMap: MapType = {}; +export const providerMap: MapType = {}; -export const getFallbackProviderForNetwork = ( +export const getProviderForNetwork = ( networkName: NetworkName, -): FallbackProvider => { - const provider = fallbackProviderMap[networkName]; +): Provider => { + const provider = providerMap[networkName]; if (!isDefined(provider)) { throw new Error(`Provider not yet loaded for network ${networkName}`); } return provider; }; -export const getPollingProviderForNetwork = ( +export const setProviderForNetwork = ( networkName: NetworkName, -): PollingJsonRpcProvider => { - const provider = pollingProviderMap[networkName]; - if (!isDefined(provider)) { - throw new Error( - `Polling provider not yet loaded for network ${networkName}`, - ); - } - return provider; -}; - -export const setFallbackProviderForNetwork = ( - networkName: NetworkName, - provider: FallbackProvider, -): void => { - fallbackProviderMap[networkName] = provider; -}; - -export const setPollingProviderForNetwork = ( - networkName: NetworkName, - provider: PollingJsonRpcProvider, + provider: Provider, ): void => { - pollingProviderMap[networkName] = provider; + providerMap[networkName] = provider; }; diff --git a/src/services/transactions/__tests__/tx-gas-details.test.ts b/src/services/transactions/__tests__/tx-gas-details.test.ts index 92f8d46..cec158b 100644 --- a/src/services/transactions/__tests__/tx-gas-details.test.ts +++ b/src/services/transactions/__tests__/tx-gas-details.test.ts @@ -3,7 +3,7 @@ import chaiAsPromised from 'chai-as-promised'; import Sinon, { SinonStub } from 'sinon'; import { CommitmentSummary, - createFallbackProviderFromJsonConfig, + createProviderFromJsonConfig, EVMGasType, NetworkName, TransactionGasDetails, @@ -17,7 +17,7 @@ import { getGasEstimate, setGasDetailsForTransaction, } from '../tx-gas-details'; -import { setFallbackProviderForNetwork } from '../../railgun'; +import { setProviderForNetwork } from '../../railgun'; import { ContractTransaction, FallbackProvider } from 'ethers'; import { getTestTXIDVersion } from '../../../tests/helper.test'; @@ -43,11 +43,11 @@ describe('tx-gas', () => { it('Should format gas estimate response', async () => { const transaction = {} as ContractTransaction; - const fallbackProvider = createFallbackProviderFromJsonConfig( + const fallbackProvider = createProviderFromJsonConfig( MOCK_FALLBACK_PROVIDER_JSON_CONFIG_POLYGON, ); - setFallbackProviderForNetwork( + setProviderForNetwork( NetworkName.Polygon, fallbackProvider as unknown as FallbackProvider, ); @@ -78,10 +78,10 @@ describe('tx-gas', () => { it('Should pull gas estimate for basic transaction - self-signed', async () => { stubGasEstimateSuccess(); - const fallbackProvider = createFallbackProviderFromJsonConfig( + const fallbackProvider = createProviderFromJsonConfig( MOCK_FALLBACK_PROVIDER_JSON_CONFIG_POLYGON, ); - setFallbackProviderForNetwork( + setProviderForNetwork( NetworkName.Polygon, fallbackProvider as unknown as FallbackProvider, ); @@ -111,10 +111,10 @@ describe('tx-gas', () => { it('Should pull gas estimate for basic transaction - broadcaster', async () => { stubGasEstimateSuccess(); - const fallbackProvider = createFallbackProviderFromJsonConfig( + const fallbackProvider = createProviderFromJsonConfig( MOCK_FALLBACK_PROVIDER_JSON_CONFIG_POLYGON, ); - setFallbackProviderForNetwork( + setProviderForNetwork( NetworkName.Polygon, fallbackProvider as unknown as FallbackProvider, ); diff --git a/src/services/transactions/tx-gas-details.ts b/src/services/transactions/tx-gas-details.ts index 82b7264..7767eac 100644 --- a/src/services/transactions/tx-gas-details.ts +++ b/src/services/transactions/tx-gas-details.ts @@ -8,7 +8,7 @@ import { TransactionGasDetails, TXIDVersion, } from '@railgun-community/shared-models'; -import { getFallbackProviderForNetwork } from '../railgun'; +import { getProviderForNetwork } from '../railgun'; import { reportAndSanitizeError } from '../../utils/error'; import { GAS_ESTIMATE_VARIANCE_DUMMY_TO_ACTUAL_TRANSACTION, @@ -58,7 +58,7 @@ const estimateGas = ( transaction: ContractTransaction, isCrossContractCall: boolean, ): Promise => { - const provider = getFallbackProviderForNetwork(networkName); + const provider = getProviderForNetwork(networkName); if (isCrossContractCall) { // Includes custom error handler for relay-adapt transactions. return RelayAdaptVersionedSmartContracts.estimateGasWithErrorHandler( diff --git a/src/services/transactions/tx-unshield.ts b/src/services/transactions/tx-unshield.ts index 9019860..6c2c168 100644 --- a/src/services/transactions/tx-unshield.ts +++ b/src/services/transactions/tx-unshield.ts @@ -29,7 +29,7 @@ import { reportAndSanitizeError } from '../../utils/error'; import { gasEstimateResponse, getGasEstimate } from './tx-gas-details'; import { walletForID, - getFallbackProviderForNetwork, + getProviderForNetwork, getSerializedERC20Balances, getSerializedNFTBalances, } from '../railgun'; @@ -268,7 +268,7 @@ export const getERC20AndNFTAmountRecipientsForUnshieldToOrigin = async ( originalShieldTxid, ); - const provider = getFallbackProviderForNetwork(networkName); + const provider = getProviderForNetwork(networkName); const transaction = await provider.getTransaction(originalShieldTxid); if (!transaction) { throw new Error('Could not find shield transaction from RPC'); diff --git a/yarn.lock b/yarn.lock index 4db3c70..e0f0994 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2412,6 +2412,11 @@ "@whatwg-node/fetch" "^0.8.3" tslib "^2.3.1" +"@yarnpkg/lockfile@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz#e77a97fbd345b76d83245edcd17d393b1b41fb31" + integrity sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ== + abortcontroller-polyfill@^1.7.5: version "1.7.5" resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz#6738495f4e901fbb57b6c0611d0c75f76c485bed" @@ -2731,6 +2736,11 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + auto-bind@~4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-4.0.0.tgz#e3589fc6c2da8f7ca43ba9f84fa52a744fc997fb" @@ -3149,6 +3159,14 @@ caching-transform@^4.0.0: package-hash "^4.0.0" write-file-atomic "^3.0.0" +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz#32e5892e6361b29b0b545ba6f7763378daca2840" + integrity sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g== + dependencies: + es-errors "^1.3.0" + function-bind "^1.1.2" + call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.7.tgz#06016599c40c56498c18769d2730be242b6fa3b9" @@ -3160,6 +3178,24 @@ call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bin get-intrinsic "^1.2.4" set-function-length "^1.2.1" +call-bind@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" + integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== + dependencies: + call-bind-apply-helpers "^1.0.0" + es-define-property "^1.0.0" + get-intrinsic "^1.2.4" + set-function-length "^1.2.2" + +call-bound@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.3.tgz#41cfd032b593e39176a71533ab4f384aa04fd681" + integrity sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA== + dependencies: + call-bind-apply-helpers "^1.0.1" + get-intrinsic "^1.2.6" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -3236,7 +3272,7 @@ chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1: +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -3326,6 +3362,11 @@ chownr@^1.1.4: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== +ci-info@^3.7.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== + cids@^0.7.1: version "0.7.5" resolved "https://registry.yarnpkg.com/cids/-/cids-0.7.5.tgz#60a08138a99bfb69b6be4ceb63bfef7a396b28b2" @@ -4069,6 +4110,15 @@ dset@^3.1.1, dset@^3.1.2: resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.3.tgz#c194147f159841148e8e34ca41f638556d9542d2" integrity sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ== +dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" + eastasianwidth@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" @@ -4231,6 +4281,11 @@ es-define-property@^1.0.0: dependencies: get-intrinsic "^1.2.4" +es-define-property@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + es-errors@^1.2.1, es-errors@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" @@ -4931,6 +4986,13 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" +find-yarn-workspace-root@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" + integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== + dependencies: + micromatch "^4.0.2" + flat-cache@^3.0.4: version "3.2.0" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.2.0.tgz#2c0c2d5040c99b1632771a9d105725c0115363ee" @@ -5040,6 +5102,16 @@ fs-extra@^4.0.2: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@^9.0.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs-minipass@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" @@ -5119,6 +5191,22 @@ get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@ has-symbols "^1.0.3" hasown "^2.0.0" +get-intrinsic@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.7.tgz#dcfcb33d3272e15f445d15124bc0a216189b9044" + integrity sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + function-bind "^1.1.2" + get-proto "^1.0.0" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" + get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" @@ -5129,6 +5217,14 @@ get-package-type@^0.1.0: resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== +get-proto@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" @@ -5260,6 +5356,11 @@ gopd@^1.0.1: dependencies: get-intrinsic "^1.1.3" +gopd@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== + got@12.1.0: version "12.1.0" resolved "https://registry.yarnpkg.com/got/-/got-12.1.0.tgz#099f3815305c682be4fd6b0ee0726d8e4c6b0af4" @@ -5296,7 +5397,7 @@ got@^11.8.5: p-cancelable "^2.0.0" responselike "^2.0.0" -graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.4: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.4: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -5414,6 +5515,11 @@ has-symbols@^1.0.2, has-symbols@^1.0.3: resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== +has-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== + has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc" @@ -6134,6 +6240,17 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== +json-stable-stringify@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.2.1.tgz#addb683c2b78014d0b78d704c2fcbdf0695a60e2" + integrity sha512-Lp6HbbBgosLmJbjx0pBLbgvx68FaFU1sdkmBuckmhhJ88kL13OA51CDtR2yJB50eCNMH9wRqtQNNiAqQH4YXnA== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + isarray "^2.0.5" + jsonify "^0.0.1" + object-keys "^1.1.1" + json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" @@ -6158,6 +6275,20 @@ jsonfile@^4.0.0: optionalDependencies: graceful-fs "^4.1.6" +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.1.tgz#2aa3111dae3d34a0f151c63f3a45d995d9420978" + integrity sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg== + jsonpath@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/jsonpath/-/jsonpath-1.1.1.tgz#0ca1ed8fb65bb3309248cc9d5466d12d5b0b9901" @@ -6198,6 +6329,13 @@ keyv@^4.0.0, keyv@^4.5.3: dependencies: json-buffer "3.0.1" +klaw-sync@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/klaw-sync/-/klaw-sync-6.0.0.tgz#1fd2cfd56ebb6250181114f0a581167099c2b28c" + integrity sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ== + dependencies: + graceful-fs "^4.1.11" + level-codec@^10.0.0: version "10.0.0" resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-10.0.0.tgz#f9e892770532c6cdcc83529546730791b0c62c12" @@ -6457,6 +6595,11 @@ map-cache@^0.2.0: resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + md5.js@^1.3.4: version "1.3.5" resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" @@ -6496,6 +6639,14 @@ micro-ftch@^0.3.1: resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== +micromatch@^4.0.2: + version "4.0.8" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== + dependencies: + braces "^3.0.3" + picomatch "^2.3.1" + micromatch@^4.0.4: version "4.0.7" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.7.tgz#33e8190d9fe474a9895525f5618eee136d46c2e5" @@ -7089,6 +7240,11 @@ ora@^5.4.1: strip-ansi "^6.0.0" wcwidth "^1.0.1" +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + p-cancelable@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" @@ -7223,6 +7379,27 @@ pascal-case@^3.1.2: no-case "^3.0.4" tslib "^2.0.3" +patch-package@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/patch-package/-/patch-package-8.0.0.tgz#d191e2f1b6e06a4624a0116bcb88edd6714ede61" + integrity sha512-da8BVIhzjtgScwDJ2TtKsfT5JFWz1hYoBl9rUQ1f38MC2HwnEIkK8VN3dKMKcP7P7bvvgzNDbfNHtx3MsQb5vA== + dependencies: + "@yarnpkg/lockfile" "^1.1.0" + chalk "^4.1.2" + ci-info "^3.7.0" + cross-spawn "^7.0.3" + find-yarn-workspace-root "^2.0.0" + fs-extra "^9.0.0" + json-stable-stringify "^1.0.2" + klaw-sync "^6.0.0" + minimist "^1.2.6" + open "^7.4.2" + rimraf "^2.6.3" + semver "^7.5.3" + slash "^2.0.0" + tmp "^0.0.33" + yaml "^2.2.2" + path-browserify@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" @@ -7793,6 +7970,13 @@ rfdc@^1.2.0: resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== +rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -7955,7 +8139,7 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== -set-function-length@^1.2.1: +set-function-length@^1.2.1, set-function-length@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.2.tgz#aac72314198eaed975cf77b2c3b6b880695e5449" integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== @@ -8058,6 +8242,11 @@ sinon@^15.0.1: nise "^5.1.4" supports-color "^7.2.0" +slash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" + integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -8173,16 +8362,7 @@ strict-uri-encode@^1.0.0: resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ== -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -8251,14 +8431,7 @@ stringify-object@^3.2.1: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -8406,6 +8579,13 @@ title-case@^3.0.3: dependencies: tslib "^2.0.3" +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" @@ -8698,6 +8878,11 @@ universalify@^0.1.0: resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== +universalify@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== + unixify@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unixify/-/unixify-1.0.0.tgz#3a641c8c2ffbce4da683a5c70f03a462940c2090" @@ -9170,7 +9355,7 @@ workerpool@^6.5.1: resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544" integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -9188,15 +9373,6 @@ wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" @@ -9305,6 +9481,11 @@ yallist@^4.0.0: resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml@^2.2.2: + version "2.7.0" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.7.0.tgz#aef9bb617a64c937a9a748803786ad8d3ffe1e98" + integrity sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA== + yargs-parser@^18.1.2: version "18.1.3" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0"