{"version":3,"file":"static/js/419.54ea2ddb.chunk.js","mappings":"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C,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,GAAG,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,GAA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","sources":["../node_modules/@coinbase/wallet-sdk/dist/CoinbaseWalletSDK.js","../node_modules/@coinbase/wallet-sdk/dist/assets/wallet-logo.js","../node_modules/@coinbase/wallet-sdk/dist/components/LinkFlow.js","../node_modules/@coinbase/wallet-sdk/dist/components/QRCode.js","../node_modules/@coinbase/wallet-sdk/dist/components/Snackbar-css.js","../node_modules/@coinbase/wallet-sdk/dist/components/Snackbar.js","../node_modules/@coinbase/wallet-sdk/dist/components/Spinner-css.js","../node_modules/@coinbase/wallet-sdk/dist/components/Spinner.js","../node_modules/@coinbase/wallet-sdk/dist/components/TryExtensionLinkDialog-css.js","../node_modules/@coinbase/wallet-sdk/dist/components/TryExtensionLinkDialog.js","../node_modules/@coinbase/wallet-sdk/dist/components/icons/QRLogo.js","../node_modules/@coinbase/wallet-sdk/dist/components/icons/globe-icon-svg.js","../node_modules/@coinbase/wallet-sdk/dist/components/icons/link-icon-svg.js","../node_modules/@coinbase/wallet-sdk/dist/components/icons/lock-icon-svg.js","../node_modules/@coinbase/wallet-sdk/dist/connection/ClientMessage.js","../node_modules/@coinbase/wallet-sdk/dist/connection/DiagnosticLogger.js","../node_modules/@coinbase/wallet-sdk/dist/connection/RxWebSocket.js","../node_modules/@coinbase/wallet-sdk/dist/connection/ServerMessage.js","../node_modules/@coinbase/wallet-sdk/dist/connection/WalletSDKConnection.js","../node_modules/@coinbase/wallet-sdk/dist/index.js","../node_modules/@coinbase/wallet-sdk/dist/lib/ScopedLocalStorage.js","../node_modules/@coinbase/wallet-sdk/dist/lib/cssReset-css.js","../node_modules/@coinbase/wallet-sdk/dist/lib/cssReset.js","../node_modules/@coinbase/wallet-sdk/dist/provider/CoinbaseWalletProvider.js","../node_modules/@coinbase/wallet-sdk/dist/provider/FilterPolyfill.js","../node_modules/@coinbase/wallet-sdk/dist/provider/JSONRPC.js","../node_modules/@coinbase/wallet-sdk/dist/provider/SubscriptionManager.js","../node_modules/@coinbase/wallet-sdk/dist/provider/WalletSDKUI.js","../node_modules/@coinbase/wallet-sdk/dist/provider/WalletUIError.js","../node_modules/@coinbase/wallet-sdk/dist/relay/RelayMessage.js","../node_modules/@coinbase/wallet-sdk/dist/relay/Session.js","../node_modules/@coinbase/wallet-sdk/dist/relay/WalletSDKRelay.js","../node_modules/@coinbase/wallet-sdk/dist/relay/WalletSDKRelayAbstract.js","../node_modules/@coinbase/wallet-sdk/dist/relay/WalletSDKRelayEventManager.js","../node_modules/@coinbase/wallet-sdk/dist/relay/Web3Method.js","../node_modules/@coinbase/wallet-sdk/dist/relay/Web3RequestCanceledMessage.js","../node_modules/@coinbase/wallet-sdk/dist/relay/Web3RequestMessage.js","../node_modules/@coinbase/wallet-sdk/dist/relay/Web3Response.js","../node_modules/@coinbase/wallet-sdk/dist/relay/Web3ResponseMessage.js","../node_modules/@coinbase/wallet-sdk/dist/relay/aes256gcm.js","../node_modules/@coinbase/wallet-sdk/dist/types.js","../node_modules/@coinbase/wallet-sdk/dist/util.js","../node_modules/@coinbase/wallet-sdk/dist/vendor-js/eth-eip712-util/abi.js","../node_modules/@coinbase/wallet-sdk/dist/vendor-js/eth-eip712-util/index.js","../node_modules/@coinbase/wallet-sdk/dist/vendor-js/eth-eip712-util/util.js","../node_modules/@coinbase/wallet-sdk/dist/vendor-js/qrcode-svg/index.js","../node_modules/@coinbase/wallet-sdk/dist/version.js","../index.ts","../node_modules/async-mutex/lib/Mutex.js","../node_modules/async-mutex/lib/Semaphore.js","../node_modules/async-mutex/lib/index.js","../node_modules/async-mutex/lib/withTimeout.js","../node_modules/bind-decorator/index.js","../node_modules/buffer/index.js","../node_modules/call-bind/callBound.js","../node_modules/call-bind/index.js","../node_modules/eth-block-tracker/node_modules/pify/index.js","../node_modules/eth-block-tracker/src/base.js","../node_modules/eth-block-tracker/src/polling.js","../node_modules/eth-json-rpc-filters/base-filter-history.js","../node_modules/eth-json-rpc-filters/base-filter.js","../node_modules/eth-json-rpc-filters/block-filter.js","../node_modules/eth-json-rpc-filters/getBlocksForRange.js","../node_modules/eth-json-rpc-filters/hexUtils.js","../node_modules/eth-json-rpc-filters/index.js","../node_modules/eth-json-rpc-filters/log-filter.js","../node_modules/eth-json-rpc-filters/node_modules/pify/index.js","../node_modules/eth-json-rpc-filters/subscriptionManager.js","../node_modules/eth-json-rpc-filters/tx-filter.js","../node_modules/eth-json-rpc-middleware/node_modules/json-rpc-engine/src/createScaffoldMiddleware.js","../node_modules/eth-json-rpc-middleware/scaffold.js","../node_modules/eth-query/index.js","../../src/classes.ts","../../src/error-constants.ts","../../src/errors.ts","../../src/index.ts","../../src/utils.ts","../node_modules/fast-safe-stringify/index.js","../node_modules/for-each/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/get-intrinsic/index.js","../node_modules/has-symbols/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-tostringtag/shams.js","../node_modules/has/src/index.js","../node_modules/is-arguments/index.js","../node_modules/is-callable/index.js","../node_modules/is-generator-function/index.js","../node_modules/is-typed-array/index.js","../../src/JsonRpcEngine.ts","../../src/createAsyncMiddleware.ts","../../src/createScaffoldMiddleware.ts","../../src/getUniqueId.ts","../../src/idRemapMiddleware.ts","../../src/mergeMiddleware.ts","../node_modules/json-rpc-random-id/index.js","../node_modules/keccak/js.js","../node_modules/keccak/lib/api/index.js","../node_modules/keccak/lib/api/keccak.js","../node_modules/keccak/lib/api/shake.js","../node_modules/keccak/lib/keccak-state-unroll.js","../node_modules/keccak/lib/keccak.js","../node_modules/object-inspect/index.js","../node_modules/preact/src/util.js","../node_modules/preact/src/options.js","../node_modules/preact/src/create-element.js","../node_modules/preact/src/component.js","../node_modules/preact/src/create-context.js","../node_modules/preact/src/constants.js","../node_modules/preact/src/diff/children.js","../node_modules/preact/src/diff/props.js","../node_modules/preact/src/diff/index.js","../node_modules/preact/src/render.js","../node_modules/preact/src/clone-element.js","../node_modules/preact/src/diff/catch-error.js","../node_modules/preact/hooks/src/index.js","../node_modules/qs/lib/formats.js","../node_modules/qs/lib/index.js","../node_modules/qs/lib/parse.js","../node_modules/qs/lib/stringify.js","../node_modules/qs/lib/utils.js","../node_modules/readable-stream/errors-browser.js","../node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/readable-stream/lib/_stream_readable.js","../node_modules/readable-stream/lib/_stream_transform.js","../node_modules/readable-stream/lib/_stream_writable.js","../node_modules/readable-stream/lib/internal/streams/async_iterator.js","../node_modules/readable-stream/lib/internal/streams/buffer_list.js","../node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../node_modules/readable-stream/lib/internal/streams/from-browser.js","../node_modules/readable-stream/lib/internal/streams/pipeline.js","../node_modules/readable-stream/lib/internal/streams/state.js","../node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/readable-stream/readable-browser.js","../node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts","../node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts","../node_modules/rxjs/src/internal/scheduler/animationFrame.ts","../node_modules/rxjs/src/internal/scheduler/VirtualTimeScheduler.ts","../node_modules/rxjs/src/internal/util/isObservable.ts","../node_modules/rxjs/src/internal/observable/bindCallback.ts","../node_modules/rxjs/src/internal/observable/bindNodeCallback.ts","../node_modules/rxjs/src/internal/observable/forkJoin.ts","../node_modules/rxjs/src/internal/observable/fromEvent.ts","../node_modules/rxjs/src/internal/observable/fromEventPattern.ts","../node_modules/rxjs/src/internal/observable/generate.ts","../node_modules/rxjs/src/internal/observable/iif.ts","../node_modules/rxjs/src/internal/observable/interval.ts","../node_modules/rxjs/src/internal/observable/never.ts","../node_modules/rxjs/src/internal/observable/onErrorResumeNext.ts","../node_modules/rxjs/src/internal/observable/pairs.ts","../node_modules/rxjs/src/internal/observable/partition.ts","../node_modules/rxjs/src/internal/observable/range.ts","../node_modules/rxjs/src/internal/observable/using.ts","../node_modules/rxjs/src/internal/AsyncSubject.ts","../node_modules/rxjs/src/internal/BehaviorSubject.ts","../node_modules/rxjs/src/internal/Notification.ts","../node_modules/rxjs/src/internal/Observable.ts","../node_modules/rxjs/src/internal/util/toSubscriber.ts","../node_modules/rxjs/src/internal/Observer.ts","../node_modules/rxjs/src/internal/OuterSubscriber.ts","../node_modules/rxjs/src/internal/ReplaySubject.ts","../node_modules/rxjs/src/internal/Scheduler.ts","../node_modules/rxjs/src/internal/Subject.ts","../node_modules/rxjs/src/internal/SubjectSubscription.ts","../node_modules/rxjs/src/internal/Subscriber.ts","../node_modules/rxjs/src/internal/Subscription.ts","../node_modules/rxjs/src/internal/config.ts","../node_modules/rxjs/src/internal/innerSubscribe.ts","../node_modules/rxjs/src/internal/observable/ConnectableObservable.ts","../node_modules/rxjs/src/internal/observable/combineLatest.ts","../node_modules/rxjs/src/internal/observable/concat.ts","../node_modules/rxjs/src/internal/observable/defer.ts","../node_modules/rxjs/src/internal/observable/empty.ts","../node_modules/rxjs/src/internal/observable/from.ts","../node_modules/rxjs/src/internal/observable/fromArray.ts","../node_modules/rxjs/src/internal/observable/merge.ts","../node_modules/rxjs/src/internal/observable/of.ts","../node_modules/rxjs/src/internal/observable/race.ts","../node_modules/rxjs/src/internal/observable/throwError.ts","../node_modules/rxjs/src/internal/observable/timer.ts","../node_modules/rxjs/src/internal/observable/zip.ts","../node_modules/rxjs/src/internal/operators/concatAll.ts","../node_modules/rxjs/src/internal/operators/filter.ts","../node_modules/rxjs/src/internal/operators/groupBy.ts","../node_modules/rxjs/src/internal/operators/map.ts","../node_modules/rxjs/src/internal/operators/mergeAll.ts","../node_modules/rxjs/src/internal/operators/mergeMap.ts","../node_modules/rxjs/src/internal/operators/observeOn.ts","../node_modules/rxjs/src/internal/operators/refCount.ts","../node_modules/rxjs/src/internal/scheduled/scheduleArray.ts","../node_modules/rxjs/src/internal/scheduled/scheduled.ts","../node_modules/rxjs/src/internal/util/isInteropObservable.ts","../node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts","../node_modules/rxjs/src/internal/scheduled/schedulePromise.ts","../node_modules/rxjs/src/internal/util/isIterable.ts","../node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts","../node_modules/rxjs/src/internal/scheduler/AsyncAction.ts","../node_modules/rxjs/src/internal/scheduler/Action.ts","../node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts","../node_modules/rxjs/src/internal/util/Immediate.ts","../node_modules/rxjs/src/internal/scheduler/AsapAction.ts","../node_modules/rxjs/src/internal/scheduler/AsapScheduler.ts","../node_modules/rxjs/src/internal/scheduler/asap.ts","../node_modules/rxjs/src/internal/scheduler/async.ts","../node_modules/rxjs/src/internal/scheduler/QueueAction.ts","../node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts","../node_modules/rxjs/src/internal/scheduler/queue.ts","../node_modules/rxjs/src/internal/symbol/iterator.ts","../node_modules/rxjs/src/internal/symbol/rxSubscriber.ts","../node_modules/rxjs/src/internal/util/ArgumentOutOfRangeError.ts","../node_modules/rxjs/src/internal/util/EmptyError.ts","../node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts","../node_modules/rxjs/src/internal/util/TimeoutError.ts","../node_modules/rxjs/src/internal/util/UnsubscriptionError.ts","../node_modules/rxjs/src/internal/util/canReportError.ts","../node_modules/rxjs/src/internal/util/hostReportError.ts","../node_modules/rxjs/src/internal/util/identity.ts","../node_modules/rxjs/src/internal/util/isFunction.ts","../node_modules/rxjs/src/internal/util/isNumeric.ts","../node_modules/rxjs/src/internal/util/isObject.ts","../node_modules/rxjs/src/internal/util/isPromise.ts","../node_modules/rxjs/src/internal/util/isScheduler.ts","../node_modules/rxjs/src/internal/util/not.ts","../node_modules/rxjs/src/internal/util/pipe.ts","../node_modules/rxjs/src/internal/util/subscribeTo.ts","../node_modules/rxjs/src/internal/util/subscribeToObservable.ts","../node_modules/rxjs/src/internal/util/subscribeToPromise.ts","../node_modules/rxjs/src/internal/util/subscribeToIterable.ts","../node_modules/rxjs/src/internal/util/subscribeToArray.ts","../node_modules/rxjs/src/internal/InnerSubscriber.ts","../node_modules/rxjs/src/internal/util/subscribeToResult.ts","../node_modules/rxjs/src/internal/operators/audit.ts","../node_modules/rxjs/src/internal/operators/auditTime.ts","../node_modules/rxjs/src/internal/operators/buffer.ts","../node_modules/rxjs/src/internal/operators/bufferCount.ts","../node_modules/rxjs/src/internal/operators/bufferTime.ts","../node_modules/rxjs/src/internal/operators/bufferToggle.ts","../node_modules/rxjs/src/internal/operators/bufferWhen.ts","../node_modules/rxjs/src/internal/operators/catchError.ts","../node_modules/rxjs/src/internal/operators/combineAll.ts","../node_modules/rxjs/src/internal/operators/combineLatest.ts","../node_modules/rxjs/src/internal/operators/concat.ts","../node_modules/rxjs/src/internal/operators/concatMap.ts","../node_modules/rxjs/src/internal/operators/concatMapTo.ts","../node_modules/rxjs/src/internal/operators/count.ts","../node_modules/rxjs/src/internal/operators/debounce.ts","../node_modules/rxjs/src/internal/operators/debounceTime.ts","../node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts","../node_modules/rxjs/src/internal/util/isDate.ts","../node_modules/rxjs/src/internal/operators/delay.ts","../node_modules/rxjs/src/internal/operators/delayWhen.ts","../node_modules/rxjs/src/internal/operators/dematerialize.ts","../node_modules/rxjs/src/internal/operators/distinct.ts","../node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts","../node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts","../node_modules/rxjs/src/internal/operators/throwIfEmpty.ts","../node_modules/rxjs/src/internal/operators/take.ts","../node_modules/rxjs/src/internal/operators/elementAt.ts","../node_modules/rxjs/src/internal/operators/endWith.ts","../node_modules/rxjs/src/internal/operators/every.ts","../node_modules/rxjs/src/internal/operators/exhaust.ts","../node_modules/rxjs/src/internal/operators/exhaustMap.ts","../node_modules/rxjs/src/internal/operators/expand.ts","../node_modules/rxjs/src/internal/operators/finalize.ts","../node_modules/rxjs/src/internal/operators/find.ts","../node_modules/rxjs/src/internal/operators/findIndex.ts","../node_modules/rxjs/src/internal/operators/first.ts","../node_modules/rxjs/src/internal/operators/ignoreElements.ts","../node_modules/rxjs/src/internal/operators/isEmpty.ts","../node_modules/rxjs/src/internal/operators/takeLast.ts","../node_modules/rxjs/src/internal/operators/last.ts","../node_modules/rxjs/src/internal/operators/mapTo.ts","../node_modules/rxjs/src/internal/operators/materialize.ts","../node_modules/rxjs/src/internal/operators/scan.ts","../node_modules/rxjs/src/internal/operators/reduce.ts","../node_modules/rxjs/src/internal/operators/max.ts","../node_modules/rxjs/src/internal/operators/merge.ts","../node_modules/rxjs/src/internal/operators/mergeMapTo.ts","../node_modules/rxjs/src/internal/operators/mergeScan.ts","../node_modules/rxjs/src/internal/operators/min.ts","../node_modules/rxjs/src/internal/operators/multicast.ts","../node_modules/rxjs/src/internal/operators/onErrorResumeNext.ts","../node_modules/rxjs/src/internal/operators/pairwise.ts","../node_modules/rxjs/src/internal/operators/partition.ts","../node_modules/rxjs/src/internal/operators/pluck.ts","../node_modules/rxjs/src/internal/operators/publish.ts","../node_modules/rxjs/src/internal/operators/publishBehavior.ts","../node_modules/rxjs/src/internal/operators/publishLast.ts","../node_modules/rxjs/src/internal/operators/publishReplay.ts","../node_modules/rxjs/src/internal/operators/race.ts","../node_modules/rxjs/src/internal/operators/repeat.ts","../node_modules/rxjs/src/internal/operators/repeatWhen.ts","../node_modules/rxjs/src/internal/operators/retry.ts","../node_modules/rxjs/src/internal/operators/retryWhen.ts","../node_modules/rxjs/src/internal/operators/sample.ts","../node_modules/rxjs/src/internal/operators/sampleTime.ts","../node_modules/rxjs/src/internal/operators/sequenceEqual.ts","../node_modules/rxjs/src/internal/operators/share.ts","../node_modules/rxjs/src/internal/operators/shareReplay.ts","../node_modules/rxjs/src/internal/operators/single.ts","../node_modules/rxjs/src/internal/operators/skip.ts","../node_modules/rxjs/src/internal/operators/skipLast.ts","../node_modules/rxjs/src/internal/operators/skipUntil.ts","../node_modules/rxjs/src/internal/operators/skipWhile.ts","../node_modules/rxjs/src/internal/operators/startWith.ts","../node_modules/rxjs/src/internal/observable/SubscribeOnObservable.ts","../node_modules/rxjs/src/internal/operators/subscribeOn.ts","../node_modules/rxjs/src/internal/operators/switchMap.ts","../node_modules/rxjs/src/internal/operators/switchAll.ts","../node_modules/rxjs/src/internal/operators/switchMapTo.ts","../node_modules/rxjs/src/internal/operators/takeUntil.ts","../node_modules/rxjs/src/internal/operators/takeWhile.ts","../node_modules/rxjs/src/internal/operators/tap.ts","../node_modules/rxjs/src/internal/operators/throttle.ts","../node_modules/rxjs/src/internal/operators/throttleTime.ts","../node_modules/rxjs/src/internal/operators/timeInterval.ts","../node_modules/rxjs/src/internal/operators/timeoutWith.ts","../node_modules/rxjs/src/internal/operators/timeout.ts","../node_modules/rxjs/src/internal/operators/timestamp.ts","../node_modules/rxjs/src/internal/operators/toArray.ts","../node_modules/rxjs/src/internal/operators/window.ts","../node_modules/rxjs/src/internal/operators/windowCount.ts","../node_modules/rxjs/src/internal/operators/windowTime.ts","../node_modules/rxjs/src/internal/operators/windowToggle.ts","../node_modules/rxjs/src/internal/operators/windowWhen.ts","../node_modules/rxjs/src/internal/operators/withLatestFrom.ts","../node_modules/rxjs/src/internal/operators/zip.ts","../node_modules/rxjs/src/internal/operators/zipAll.ts","../node_modules/rxjs/node_modules/tslib/tslib.es6.js","../node_modules/safe-buffer/index.js","../node_modules/safe-event-emitter/index.js","../node_modules/sha.js/hash.js","../node_modules/sha.js/index.js","../node_modules/sha.js/sha.js","../node_modules/sha.js/sha1.js","../node_modules/sha.js/sha224.js","../node_modules/sha.js/sha256.js","../node_modules/sha.js/sha384.js","../node_modules/sha.js/sha512.js","../node_modules/side-channel/index.js","../node_modules/string_decoder/lib/string_decoder.js","../node_modules/string_decoder/node_modules/safe-buffer/index.js","../node_modules/util-deprecate/browser.js","../node_modules/util/support/isBufferBrowser.js","../node_modules/util/support/types.js","../node_modules/util/util.js","../node_modules/which-typed-array/index.js","../node_modules/xtend/immutable.js","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/construct.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/get.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/isNativeFunction.js","../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/objectSpread2.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/superPropBase.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/wrapNativeSuper.js","../node_modules/available-typed-arrays/index.js","../node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js"],"sourcesContent":["\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoinbaseWalletSDK = void 0;\nconst wallet_logo_1 = require(\"./assets/wallet-logo\");\nconst ScopedLocalStorage_1 = require(\"./lib/ScopedLocalStorage\");\nconst CoinbaseWalletProvider_1 = require(\"./provider/CoinbaseWalletProvider\");\nconst WalletSDKUI_1 = require(\"./provider/WalletSDKUI\");\nconst WalletSDKRelay_1 = require(\"./relay/WalletSDKRelay\");\nconst WalletSDKRelayEventManager_1 = require(\"./relay/WalletSDKRelayEventManager\");\nconst util_1 = require(\"./util\");\nconst LINK_API_URL = process.env.LINK_API_URL || \"https://www.walletlink.org\";\nconst SDK_VERSION = process.env.SDK_VERSION || require(\"../package.json\").version || \"unknown\";\nclass CoinbaseWalletSDK {\n /**\n * Constructor\n * @param options Coinbase Wallet SDK constructor options\n */\n constructor(options) {\n var _a, _b, _c;\n this._appName = \"\";\n this._appLogoUrl = null;\n this._relay = null;\n this._relayEventManager = null;\n const linkAPIUrl = options.linkAPIUrl || LINK_API_URL;\n let uiConstructor;\n if (!options.uiConstructor) {\n uiConstructor = opts => new WalletSDKUI_1.WalletSDKUI(opts);\n }\n else {\n uiConstructor = options.uiConstructor;\n }\n if (typeof options.overrideIsMetaMask === \"undefined\") {\n this._overrideIsMetaMask = false;\n }\n else {\n this._overrideIsMetaMask = options.overrideIsMetaMask;\n }\n this._overrideIsCoinbaseWallet = (_a = options.overrideIsCoinbaseWallet) !== null && _a !== void 0 ? _a : true;\n this._overrideIsCoinbaseBrowser =\n (_b = options.overrideIsCoinbaseBrowser) !== null && _b !== void 0 ? _b : false;\n if (options.diagnosticLogger && options.eventListener) {\n throw new Error(\"Can't have both eventListener and diagnosticLogger options, use only diagnosticLogger\");\n }\n if (options.eventListener) {\n this._diagnosticLogger = {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n log: options.eventListener.onEvent,\n };\n }\n else {\n this._diagnosticLogger = options.diagnosticLogger;\n }\n this._reloadOnDisconnect = (_c = options.reloadOnDisconnect) !== null && _c !== void 0 ? _c : true;\n const u = new URL(linkAPIUrl);\n const origin = `${u.protocol}//${u.host}`;\n this._storage = new ScopedLocalStorage_1.ScopedLocalStorage(`-walletlink:${origin}`); // needs migration to preserve local states\n this._storage.setItem(\"version\", CoinbaseWalletSDK.VERSION);\n if (this.walletExtension || this.coinbaseBrowser) {\n return;\n }\n this._relayEventManager = new WalletSDKRelayEventManager_1.WalletSDKRelayEventManager();\n this._relay = new WalletSDKRelay_1.WalletSDKRelay({\n linkAPIUrl,\n version: SDK_VERSION,\n darkMode: !!options.darkMode,\n uiConstructor,\n storage: this._storage,\n relayEventManager: this._relayEventManager,\n diagnosticLogger: this._diagnosticLogger,\n });\n this.setAppInfo(options.appName, options.appLogoUrl);\n if (!!options.headlessMode)\n return;\n this._relay.attachUI();\n }\n /**\n * Create a Web3 Provider object\n * @param jsonRpcUrl Ethereum JSON RPC URL (Default: \"\")\n * @param chainId Ethereum Chain ID (Default: 1)\n * @returns A Web3 Provider\n */\n makeWeb3Provider(jsonRpcUrl = \"\", chainId = 1) {\n const extension = this.walletExtension;\n if (extension) {\n if (!this.isCipherProvider(extension)) {\n extension.setProviderInfo(jsonRpcUrl, chainId);\n }\n if (this._reloadOnDisconnect === false &&\n typeof extension.disableReloadOnDisconnect === \"function\")\n extension.disableReloadOnDisconnect();\n return extension;\n }\n const dappBrowser = this.coinbaseBrowser;\n if (dappBrowser) {\n return dappBrowser;\n }\n const relay = this._relay;\n if (!relay || !this._relayEventManager || !this._storage) {\n throw new Error(\"Relay not initialized, should never happen\");\n }\n if (!jsonRpcUrl)\n relay.setConnectDisabled(true);\n return new CoinbaseWalletProvider_1.CoinbaseWalletProvider({\n relayProvider: () => Promise.resolve(relay),\n relayEventManager: this._relayEventManager,\n storage: this._storage,\n jsonRpcUrl,\n chainId,\n qrUrl: this.getQrUrl(),\n diagnosticLogger: this._diagnosticLogger,\n overrideIsMetaMask: this._overrideIsMetaMask,\n overrideIsCoinbaseWallet: this._overrideIsCoinbaseWallet,\n overrideIsCoinbaseBrowser: this._overrideIsCoinbaseBrowser,\n });\n }\n /**\n * Set application information\n * @param appName Application name\n * @param appLogoUrl Application logo image URL\n */\n setAppInfo(appName, appLogoUrl) {\n var _a;\n this._appName = appName || \"DApp\";\n this._appLogoUrl = appLogoUrl || (0, util_1.getFavicon)();\n const extension = this.walletExtension;\n if (extension) {\n if (!this.isCipherProvider(extension)) {\n extension.setAppInfo(this._appName, this._appLogoUrl);\n }\n }\n else {\n (_a = this._relay) === null || _a === void 0 ? void 0 : _a.setAppInfo(this._appName, this._appLogoUrl);\n }\n }\n /**\n * Disconnect. After disconnecting, this will reload the web page to ensure\n * all potential stale state is cleared.\n */\n disconnect() {\n var _a;\n const extension = this.walletExtension;\n if (extension) {\n void extension.close();\n }\n else {\n (_a = this._relay) === null || _a === void 0 ? void 0 : _a.resetAndReload();\n }\n }\n /**\n * Return QR URL for mobile wallet connection, will return null if extension is installed\n */\n getQrUrl() {\n var _a, _b;\n return (_b = (_a = this._relay) === null || _a === void 0 ? void 0 : _a.getQRCodeUrl()) !== null && _b !== void 0 ? _b : null;\n }\n /**\n * Official Coinbase Wallet logo for developers to use on their frontend\n * @param type Type of wallet logo: \"standard\" | \"circle\" | \"text\" | \"textWithLogo\" | \"textLight\" | \"textWithLogoLight\"\n * @param width Width of the logo (Optional)\n * @returns SVG Data URI\n */\n getCoinbaseWalletLogo(type, width = 240) {\n return (0, wallet_logo_1.walletLogo)(type, width);\n }\n get walletExtension() {\n var _a;\n return (_a = window.coinbaseWalletExtension) !== null && _a !== void 0 ? _a : window.walletLinkExtension;\n }\n get coinbaseBrowser() {\n var _a, _b;\n try {\n // Coinbase DApp browser does not inject into iframes so grab provider from top frame if it exists\n const ethereum = ((_a = window.ethereum) !== null && _a !== void 0 ? _a : (_b = window.top) === null || _b === void 0 ? void 0 : _b.ethereum);\n if (!ethereum) {\n return undefined;\n }\n if (\"isCoinbaseBrowser\" in ethereum && ethereum.isCoinbaseBrowser) {\n return ethereum;\n }\n else {\n return undefined;\n }\n }\n catch (e) {\n return undefined;\n }\n }\n isCipherProvider(provider) {\n // @ts-expect-error isCipher walletlink property\n return typeof provider.isCipher === \"boolean\" && provider.isCipher;\n }\n}\nexports.CoinbaseWalletSDK = CoinbaseWalletSDK;\nCoinbaseWalletSDK.VERSION = SDK_VERSION;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.walletLogo = void 0;\nconst walletLogo = (type, width) => {\n let height;\n switch (type) {\n case \"standard\":\n height = width;\n return `data:image/svg+xml,%3Csvg width='${width}' height='${height}' viewBox='0 0 1024 1024' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Crect width='1024' height='1024' fill='%230052FF'/%3E %3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z' fill='white'/%3E %3C/svg%3E `;\n case \"circle\":\n height = width;\n return `data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${width}' height='${height}' viewBox='0 0 999.81 999.81'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052fe;%7D.cls-2%7Bfill:%23fefefe;%7D.cls-3%7Bfill:%230152fe;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M655-115.9h56c.83,1.59,2.36.88,3.56,1a478,478,0,0,1,75.06,10.42C891.4-81.76,978.33-32.58,1049.19,44q116.7,126,131.94,297.61c.38,4.14-.34,8.53,1.78,12.45v59c-1.58.84-.91,2.35-1,3.56a482.05,482.05,0,0,1-10.38,74.05c-24,106.72-76.64,196.76-158.83,268.93s-178.18,112.82-287.2,122.6c-4.83.43-9.86-.25-14.51,1.77H654c-1-1.68-2.69-.91-4.06-1a496.89,496.89,0,0,1-105.9-18.59c-93.54-27.42-172.78-77.59-236.91-150.94Q199.34,590.1,184.87,426.58c-.47-5.19.25-10.56-1.77-15.59V355c1.68-1,.91-2.7,1-4.06a498.12,498.12,0,0,1,18.58-105.9c26-88.75,72.64-164.9,140.6-227.57q126-116.27,297.21-131.61C645.32-114.57,650.35-113.88,655-115.9Zm377.92,500c0-192.44-156.31-349.49-347.56-350.15-194.13-.68-350.94,155.13-352.29,347.42-1.37,194.55,155.51,352.1,348.56,352.47C876.15,734.23,1032.93,577.84,1032.93,384.11Z' transform='translate(-183.1 115.9)'/%3E%3Cpath class='cls-2' d='M1032.93,384.11c0,193.73-156.78,350.12-351.29,349.74-193-.37-349.93-157.92-348.56-352.47C334.43,189.09,491.24,33.28,685.37,34,876.62,34.62,1032.94,191.67,1032.93,384.11ZM683,496.81q43.74,0,87.48,0c15.55,0,25.32-9.72,25.33-25.21q0-87.48,0-175c0-15.83-9.68-25.46-25.59-25.46H595.77c-15.88,0-25.57,9.64-25.58,25.46q0,87.23,0,174.45c0,16.18,9.59,25.7,25.84,25.71Z' transform='translate(-183.1 115.9)'/%3E%3Cpath class='cls-3' d='M683,496.81H596c-16.25,0-25.84-9.53-25.84-25.71q0-87.23,0-174.45c0-15.82,9.7-25.46,25.58-25.46H770.22c15.91,0,25.59,9.63,25.59,25.46q0,87.47,0,175c0,15.49-9.78,25.2-25.33,25.21Q726.74,496.84,683,496.81Z' transform='translate(-183.1 115.9)'/%3E%3C/svg%3E`;\n case \"text\":\n height = (0.1 * width).toFixed(2);\n return `data:image/svg+xml,%3Csvg width='${width}' height='${height}' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 528.15 53.64'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052ff;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3ECoinbase_Wordmark_SubBrands_ALL%3C/title%3E%3Cpath class='cls-1' d='M164.45,15a15,15,0,0,0-11.74,5.4V0h-8.64V52.92h8.5V48a15,15,0,0,0,11.88,5.62c10.37,0,18.21-8.21,18.21-19.3S174.67,15,164.45,15Zm-1.3,30.67c-6.19,0-10.73-4.83-10.73-11.31S157,23,163.22,23s10.66,4.82,10.66,11.37S169.34,45.65,163.15,45.65Zm83.31-14.91-6.34-.93c-3-.43-5.18-1.44-5.18-3.82,0-2.59,2.8-3.89,6.62-3.89,4.18,0,6.84,1.8,7.42,4.76h8.35c-.94-7.49-6.7-11.88-15.55-11.88-9.15,0-15.2,4.68-15.2,11.3,0,6.34,4,10,12,11.16l6.33.94c3.1.43,4.83,1.65,4.83,4,0,2.95-3,4.17-7.2,4.17-5.12,0-8-2.09-8.43-5.25h-8.49c.79,7.27,6.48,12.38,16.84,12.38,9.44,0,15.7-4.32,15.7-11.74C258.12,35.28,253.58,31.82,246.46,30.74Zm-27.65-2.3c0-8.06-4.9-13.46-15.27-13.46-9.79,0-15.26,5-16.34,12.6h8.57c.43-3,2.73-5.4,7.63-5.4,4.39,0,6.55,1.94,6.55,4.32,0,3.09-4,3.88-8.85,4.39-6.63.72-14.84,3-14.84,11.66,0,6.7,5,11,12.89,11,6.19,0,10.08-2.59,12-6.7.28,3.67,3,6.05,6.84,6.05h5v-7.7h-4.25Zm-8.5,9.36c0,5-4.32,8.64-9.57,8.64-3.24,0-6-1.37-6-4.25,0-3.67,4.39-4.68,8.42-5.11s6-1.22,7.13-2.88ZM281.09,15c-11.09,0-19.23,8.35-19.23,19.36,0,11.6,8.72,19.3,19.37,19.3,9,0,16.06-5.33,17.86-12.89h-9c-1.3,3.31-4.47,5.19-8.71,5.19-5.55,0-9.72-3.46-10.66-9.51H299.3V33.12C299.3,22.46,291.53,15,281.09,15Zm-9.87,15.26c1.37-5.18,5.26-7.7,9.72-7.7,4.9,0,8.64,2.8,9.51,7.7ZM19.3,23a9.84,9.84,0,0,1,9.5,7h9.14c-1.65-8.93-9-15-18.57-15A19,19,0,0,0,0,34.34c0,11.09,8.28,19.3,19.37,19.3,9.36,0,16.85-6,18.5-15H28.8a9.75,9.75,0,0,1-9.43,7.06c-6.27,0-10.66-4.83-10.66-11.31S13,23,19.3,23Zm41.11-8A19,19,0,0,0,41,34.34c0,11.09,8.28,19.3,19.37,19.3A19,19,0,0,0,79.92,34.27C79.92,23.33,71.64,15,60.41,15Zm.07,30.67c-6.19,0-10.73-4.83-10.73-11.31S54.22,23,60.41,23s10.8,4.89,10.8,11.37S66.67,45.65,60.48,45.65ZM123.41,15c-5.62,0-9.29,2.3-11.45,5.54V15.7h-8.57V52.92H112V32.69C112,27,115.63,23,121,23c5,0,8.06,3.53,8.06,8.64V52.92h8.64V31C137.66,21.6,132.84,15,123.41,15ZM92,.36a5.36,5.36,0,0,0-5.55,5.47,5.55,5.55,0,0,0,11.09,0A5.35,5.35,0,0,0,92,.36Zm-9.72,23h5.4V52.92h8.64V15.7h-14Zm298.17-7.7L366.2,52.92H372L375.29,44H392l3.33,8.88h6L386.87,15.7ZM377,39.23l6.45-17.56h.1l6.56,17.56ZM362.66,15.7l-7.88,29h-.11l-8.14-29H341l-8,28.93h-.1l-8-28.87H319L329.82,53h5.45l8.19-29.24h.11L352,53h5.66L368.1,15.7Zm135.25,0v4.86h12.32V52.92h5.6V20.56h12.32V15.7ZM467.82,52.92h25.54V48.06H473.43v-12h18.35V31.35H473.43V20.56h19.93V15.7H467.82ZM443,15.7h-5.6V52.92h24.32V48.06H443Zm-30.45,0h-5.61V52.92h24.32V48.06H412.52Z'/%3E%3C/svg%3E`;\n case \"textWithLogo\":\n height = (0.25 * width).toFixed(2);\n return `data:image/svg+xml,%3Csvg width='${width}' height='${height}' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 308.44 77.61'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%230052ff;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M142.94,20.2l-7.88,29H135l-8.15-29h-5.55l-8,28.93h-.11l-8-28.87H99.27l10.84,37.27h5.44l8.2-29.24h.1l8.41,29.24h5.66L148.39,20.2Zm17.82,0L146.48,57.42h5.82l3.28-8.88h16.65l3.34,8.88h6L167.16,20.2Zm-3.44,23.52,6.45-17.55h.11l6.56,17.55ZM278.2,20.2v4.86h12.32V57.42h5.6V25.06h12.32V20.2ZM248.11,57.42h25.54V52.55H253.71V40.61h18.35V35.85H253.71V25.06h19.94V20.2H248.11ZM223.26,20.2h-5.61V57.42H242V52.55H223.26Zm-30.46,0h-5.6V57.42h24.32V52.55H192.8Zm-154,38A19.41,19.41,0,1,1,57.92,35.57H77.47a38.81,38.81,0,1,0,0,6.47H57.92A19.39,19.39,0,0,1,38.81,58.21Z'/%3E%3C/svg%3E`;\n case \"textLight\":\n height = (0.1 * width).toFixed(2);\n return `data:image/svg+xml,%3Csvg width='${width}' height='${height}' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 528.15 53.64'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fefefe;%7D%3C/style%3E%3C/defs%3E%3Ctitle%3ECoinbase_Wordmark_SubBrands_ALL%3C/title%3E%3Cpath class='cls-1' d='M164.45,15a15,15,0,0,0-11.74,5.4V0h-8.64V52.92h8.5V48a15,15,0,0,0,11.88,5.62c10.37,0,18.21-8.21,18.21-19.3S174.67,15,164.45,15Zm-1.3,30.67c-6.19,0-10.73-4.83-10.73-11.31S157,23,163.22,23s10.66,4.82,10.66,11.37S169.34,45.65,163.15,45.65Zm83.31-14.91-6.34-.93c-3-.43-5.18-1.44-5.18-3.82,0-2.59,2.8-3.89,6.62-3.89,4.18,0,6.84,1.8,7.42,4.76h8.35c-.94-7.49-6.7-11.88-15.55-11.88-9.15,0-15.2,4.68-15.2,11.3,0,6.34,4,10,12,11.16l6.33.94c3.1.43,4.83,1.65,4.83,4,0,2.95-3,4.17-7.2,4.17-5.12,0-8-2.09-8.43-5.25h-8.49c.79,7.27,6.48,12.38,16.84,12.38,9.44,0,15.7-4.32,15.7-11.74C258.12,35.28,253.58,31.82,246.46,30.74Zm-27.65-2.3c0-8.06-4.9-13.46-15.27-13.46-9.79,0-15.26,5-16.34,12.6h8.57c.43-3,2.73-5.4,7.63-5.4,4.39,0,6.55,1.94,6.55,4.32,0,3.09-4,3.88-8.85,4.39-6.63.72-14.84,3-14.84,11.66,0,6.7,5,11,12.89,11,6.19,0,10.08-2.59,12-6.7.28,3.67,3,6.05,6.84,6.05h5v-7.7h-4.25Zm-8.5,9.36c0,5-4.32,8.64-9.57,8.64-3.24,0-6-1.37-6-4.25,0-3.67,4.39-4.68,8.42-5.11s6-1.22,7.13-2.88ZM281.09,15c-11.09,0-19.23,8.35-19.23,19.36,0,11.6,8.72,19.3,19.37,19.3,9,0,16.06-5.33,17.86-12.89h-9c-1.3,3.31-4.47,5.19-8.71,5.19-5.55,0-9.72-3.46-10.66-9.51H299.3V33.12C299.3,22.46,291.53,15,281.09,15Zm-9.87,15.26c1.37-5.18,5.26-7.7,9.72-7.7,4.9,0,8.64,2.8,9.51,7.7ZM19.3,23a9.84,9.84,0,0,1,9.5,7h9.14c-1.65-8.93-9-15-18.57-15A19,19,0,0,0,0,34.34c0,11.09,8.28,19.3,19.37,19.3,9.36,0,16.85-6,18.5-15H28.8a9.75,9.75,0,0,1-9.43,7.06c-6.27,0-10.66-4.83-10.66-11.31S13,23,19.3,23Zm41.11-8A19,19,0,0,0,41,34.34c0,11.09,8.28,19.3,19.37,19.3A19,19,0,0,0,79.92,34.27C79.92,23.33,71.64,15,60.41,15Zm.07,30.67c-6.19,0-10.73-4.83-10.73-11.31S54.22,23,60.41,23s10.8,4.89,10.8,11.37S66.67,45.65,60.48,45.65ZM123.41,15c-5.62,0-9.29,2.3-11.45,5.54V15.7h-8.57V52.92H112V32.69C112,27,115.63,23,121,23c5,0,8.06,3.53,8.06,8.64V52.92h8.64V31C137.66,21.6,132.84,15,123.41,15ZM92,.36a5.36,5.36,0,0,0-5.55,5.47,5.55,5.55,0,0,0,11.09,0A5.35,5.35,0,0,0,92,.36Zm-9.72,23h5.4V52.92h8.64V15.7h-14Zm298.17-7.7L366.2,52.92H372L375.29,44H392l3.33,8.88h6L386.87,15.7ZM377,39.23l6.45-17.56h.1l6.56,17.56ZM362.66,15.7l-7.88,29h-.11l-8.14-29H341l-8,28.93h-.1l-8-28.87H319L329.82,53h5.45l8.19-29.24h.11L352,53h5.66L368.1,15.7Zm135.25,0v4.86h12.32V52.92h5.6V20.56h12.32V15.7ZM467.82,52.92h25.54V48.06H473.43v-12h18.35V31.35H473.43V20.56h19.93V15.7H467.82ZM443,15.7h-5.6V52.92h24.32V48.06H443Zm-30.45,0h-5.61V52.92h24.32V48.06H412.52Z'/%3E%3C/svg%3E`;\n case \"textWithLogoLight\":\n height = (0.25 * width).toFixed(2);\n return `data:image/svg+xml,%3Csvg width='${width}' height='${height}' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 308.44 77.61'%3E%3Cdefs%3E%3Cstyle%3E.cls-1%7Bfill:%23fefefe;%7D%3C/style%3E%3C/defs%3E%3Cpath class='cls-1' d='M142.94,20.2l-7.88,29H135l-8.15-29h-5.55l-8,28.93h-.11l-8-28.87H99.27l10.84,37.27h5.44l8.2-29.24h.1l8.41,29.24h5.66L148.39,20.2Zm17.82,0L146.48,57.42h5.82l3.28-8.88h16.65l3.34,8.88h6L167.16,20.2Zm-3.44,23.52,6.45-17.55h.11l6.56,17.55ZM278.2,20.2v4.86h12.32V57.42h5.6V25.06h12.32V20.2ZM248.11,57.42h25.54V52.55H253.71V40.61h18.35V35.85H253.71V25.06h19.94V20.2H248.11ZM223.26,20.2h-5.61V57.42H242V52.55H223.26Zm-30.46,0h-5.6V57.42h24.32V52.55H192.8Zm-154,38A19.41,19.41,0,1,1,57.92,35.57H77.47a38.81,38.81,0,1,0,0,6.47H57.92A19.39,19.39,0,0,1,38.81,58.21Z'/%3E%3C/svg%3E`;\n default:\n height = width;\n return `data:image/svg+xml,%3Csvg width='${width}' height='${height}' viewBox='0 0 1024 1024' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Crect width='1024' height='1024' fill='%230052FF'/%3E %3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z' fill='white'/%3E %3C/svg%3E `;\n }\n};\nexports.walletLogo = walletLogo;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinkFlow = void 0;\nconst preact_1 = require(\"preact\");\nconst rxjs_1 = require(\"rxjs\");\nconst TryExtensionLinkDialog_1 = require(\"./TryExtensionLinkDialog\");\nclass LinkFlow {\n constructor(options) {\n this.extensionUI$ = new rxjs_1.BehaviorSubject({});\n this.subscriptions = new rxjs_1.Subscription();\n this.isConnected = false;\n this.chainId = 1;\n this.isOpen = false;\n this.onCancel = null;\n this.root = null;\n // if true, hide QR code in LinkFlow (which happens if no jsonRpcUrl is provided)\n this.connectDisabled = false;\n this.darkMode = options.darkMode;\n this.version = options.version;\n this.sessionId = options.sessionId;\n this.sessionSecret = options.sessionSecret;\n this.linkAPIUrl = options.linkAPIUrl;\n this.isParentConnection = options.isParentConnection;\n this.connected$ = options.connected$;\n this.chainId$ = options.chainId$;\n }\n attach(el) {\n this.root = document.createElement(\"div\");\n this.root.className = \"-cbwsdk-link-flow-root\";\n el.appendChild(this.root);\n this.render();\n this.subscriptions.add(this.connected$.subscribe(v => {\n if (this.isConnected !== v) {\n this.isConnected = v;\n this.render();\n }\n }));\n this.subscriptions.add(this.chainId$.subscribe(chainId => {\n if (this.chainId !== chainId) {\n this.chainId = chainId;\n this.render();\n }\n }));\n }\n detach() {\n var _a;\n if (!this.root) {\n return;\n }\n this.subscriptions.unsubscribe();\n (0, preact_1.render)(null, this.root);\n (_a = this.root.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(this.root);\n }\n setConnectDisabled(connectDisabled) {\n this.connectDisabled = connectDisabled;\n }\n open(options) {\n this.isOpen = true;\n this.onCancel = options.onCancel;\n this.render();\n }\n close() {\n this.isOpen = false;\n this.onCancel = null;\n this.render();\n }\n render() {\n if (!this.root) {\n return;\n }\n const subscription = this.extensionUI$.subscribe(() => {\n if (!this.root) {\n return;\n }\n (0, preact_1.render)((0, preact_1.h)(TryExtensionLinkDialog_1.TryExtensionLinkDialog, { darkMode: this.darkMode, version: this.version, sessionId: this.sessionId, sessionSecret: this.sessionSecret, linkAPIUrl: this.linkAPIUrl, isOpen: this.isOpen, isConnected: this.isConnected, isParentConnection: this.isParentConnection, chainId: this.chainId, onCancel: this.onCancel, connectDisabled: this.connectDisabled }), this.root);\n });\n this.subscriptions.add(subscription);\n }\n}\nexports.LinkFlow = LinkFlow;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QRCode = void 0;\nconst preact_1 = require(\"preact\");\nconst hooks_1 = require(\"preact/hooks\");\nconst qrcode_svg_1 = __importDefault(require(\"../vendor-js/qrcode-svg\"));\nconst QRCode = props => {\n const [svg, setSvg] = (0, hooks_1.useState)(\"\");\n (0, hooks_1.useEffect)(() => {\n var _a, _b;\n const qrcode = new qrcode_svg_1.default({\n content: props.content,\n background: props.bgColor || \"#ffffff\",\n color: props.fgColor || \"#000000\",\n container: \"svg\",\n ecl: \"M\",\n width: (_a = props.width) !== null && _a !== void 0 ? _a : 256,\n height: (_b = props.height) !== null && _b !== void 0 ? _b : 256,\n padding: 0,\n image: props.image,\n });\n const base64 = Buffer.from(qrcode.svg(), \"utf8\").toString(\"base64\");\n setSvg(`data:image/svg+xml;base64,${base64}`);\n });\n return svg ? (0, preact_1.h)(\"img\", { src: svg, alt: \"QR Code\" }) : null;\n};\nexports.QRCode = QRCode;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `.-cbwsdk-css-reset .-gear-container{margin-left:16px !important;margin-right:9px !important;display:flex;align-items:center;justify-content:center;width:24px;height:24px;transition:opacity .25s}.-cbwsdk-css-reset .-gear-container *{user-select:none}.-cbwsdk-css-reset .-gear-container svg{opacity:0;position:absolute}.-cbwsdk-css-reset .-gear-icon{height:12px;width:12px;z-index:10000}.-cbwsdk-css-reset .-cbwsdk-snackbar{align-items:flex-end;display:flex;flex-direction:column;position:fixed;right:0;top:0;z-index:2147483647}.-cbwsdk-css-reset .-cbwsdk-snackbar *{user-select:none}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance{display:flex;flex-direction:column;margin:8px 16px 0 16px;overflow:visible;text-align:left;transform:translateX(0);transition:opacity .25s,transform .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header:hover .-gear-container svg{opacity:1}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header{display:flex;align-items:center;background:#fff;overflow:hidden;border:1px solid #e7ebee;box-sizing:border-box;border-radius:8px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header-cblogo{margin:8px 8px 8px 8px}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header *{cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-header-message{color:#000;font-size:13px;line-height:1.5;user-select:none}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu{background:#fff;transition:opacity .25s ease-in-out,transform .25s linear,visibility 0s;visibility:hidden;border:1px solid #e7ebee;box-sizing:border-box;border-radius:8px;opacity:0;flex-direction:column;padding-left:8px;padding-right:8px}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:last-child{margin-bottom:8px !important}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover{background:#f5f7f8;border-radius:6px;transition:background .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover span{color:#050f19;transition:color .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item:hover svg path{fill:#000;transition:fill .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item{visibility:inherit;height:35px;margin-top:8px;margin-bottom:0;display:flex;flex-direction:row;align-items:center;padding:8px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item *{visibility:inherit;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover{background:rgba(223,95,103,.2);transition:background .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover *{cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover svg path{fill:#df5f67;transition:fill .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-is-red:hover span{color:#df5f67;transition:color .25s}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-menu-item-info{color:#aaa;font-size:13px;margin:0 8px 0 32px;position:absolute}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-hidden{opacity:0;text-align:left;transform:translateX(25%);transition:opacity .5s linear}.-cbwsdk-css-reset .-cbwsdk-snackbar-instance-expanded .-cbwsdk-snackbar-instance-menu{opacity:1;display:flex;transform:translateY(8px);visibility:visible}`;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SnackbarInstance = exports.SnackbarContainer = exports.Snackbar = void 0;\nconst clsx_1 = __importDefault(require(\"clsx\"));\nconst preact_1 = require(\"preact\");\nconst hooks_1 = require(\"preact/hooks\");\nconst Snackbar_css_1 = __importDefault(require(\"./Snackbar-css\"));\nconst cblogo = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEuNDkyIDEwLjQxOWE4LjkzIDguOTMgMCAwMTguOTMtOC45M2gxMS4xNjNhOC45MyA4LjkzIDAgMDE4LjkzIDguOTN2MTEuMTYzYTguOTMgOC45MyAwIDAxLTguOTMgOC45M0gxMC40MjJhOC45MyA4LjkzIDAgMDEtOC45My04LjkzVjEwLjQxOXoiIGZpbGw9IiMxNjUyRjAiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwLjQxOSAwSDIxLjU4QzI3LjMzNSAwIDMyIDQuNjY1IDMyIDEwLjQxOVYyMS41OEMzMiAyNy4zMzUgMjcuMzM1IDMyIDIxLjU4MSAzMkgxMC40MkM0LjY2NSAzMiAwIDI3LjMzNSAwIDIxLjU4MVYxMC40MkMwIDQuNjY1IDQuNjY1IDAgMTAuNDE5IDB6bTAgMS40ODhhOC45MyA4LjkzIDAgMDAtOC45MyA4LjkzdjExLjE2M2E4LjkzIDguOTMgMCAwMDguOTMgOC45M0gyMS41OGE4LjkzIDguOTMgMCAwMDguOTMtOC45M1YxMC40MmE4LjkzIDguOTMgMCAwMC04LjkzLTguOTNIMTAuNDJ6IiBmaWxsPSIjZmZmIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNS45OTggMjYuMDQ5Yy01LjU0OSAwLTEwLjA0Ny00LjQ5OC0xMC4wNDctMTAuMDQ3IDAtNS41NDggNC40OTgtMTAuMDQ2IDEwLjA0Ny0xMC4wNDYgNS41NDggMCAxMC4wNDYgNC40OTggMTAuMDQ2IDEwLjA0NiAwIDUuNTQ5LTQuNDk4IDEwLjA0Ny0xMC4wNDYgMTAuMDQ3eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xMi43NjIgMTQuMjU0YzAtLjgyMi42NjctMS40ODkgMS40ODktMS40ODloMy40OTdjLjgyMiAwIDEuNDg4LjY2NiAxLjQ4OCAxLjQ4OXYzLjQ5N2MwIC44MjItLjY2NiAxLjQ4OC0xLjQ4OCAxLjQ4OGgtMy40OTdhMS40ODggMS40ODggMCAwMS0xLjQ4OS0xLjQ4OHYtMy40OTh6IiBmaWxsPSIjMTY1MkYwIi8+PC9zdmc+`;\nconst gearIcon = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDYuNzV2LTEuNWwtMS43Mi0uNTdjLS4wOC0uMjctLjE5LS41Mi0uMzItLjc3bC44MS0xLjYyLTEuMDYtMS4wNi0xLjYyLjgxYy0uMjQtLjEzLS41LS4yNC0uNzctLjMyTDYuNzUgMGgtMS41bC0uNTcgMS43MmMtLjI3LjA4LS41My4xOS0uNzcuMzJsLTEuNjItLjgxLTEuMDYgMS4wNi44MSAxLjYyYy0uMTMuMjQtLjI0LjUtLjMyLjc3TDAgNS4yNXYxLjVsMS43Mi41N2MuMDguMjcuMTkuNTMuMzIuNzdsLS44MSAxLjYyIDEuMDYgMS4wNiAxLjYyLS44MWMuMjQuMTMuNS4yMy43Ny4zMkw1LjI1IDEyaDEuNWwuNTctMS43MmMuMjctLjA4LjUyLS4xOS43Ny0uMzJsMS42Mi44MSAxLjA2LTEuMDYtLjgxLTEuNjJjLjEzLS4yNC4yMy0uNS4zMi0uNzdMMTIgNi43NXpNNiA4LjVhMi41IDIuNSAwIDAxMC01IDIuNSAyLjUgMCAwMTAgNXoiIGZpbGw9IiMwNTBGMTkiLz48L3N2Zz4=`;\nclass Snackbar {\n constructor(options) {\n this.items = new Map();\n this.nextItemKey = 0;\n this.root = null;\n this.darkMode = options.darkMode;\n }\n attach(el) {\n this.root = document.createElement(\"div\");\n this.root.className = \"-cbwsdk-snackbar-root\";\n el.appendChild(this.root);\n this.render();\n }\n presentItem(itemProps) {\n const key = this.nextItemKey++;\n this.items.set(key, itemProps);\n this.render();\n return () => {\n this.items.delete(key);\n this.render();\n };\n }\n clear() {\n this.items.clear();\n this.render();\n }\n render() {\n if (!this.root) {\n return;\n }\n (0, preact_1.render)((0, preact_1.h)(\"div\", null,\n (0, preact_1.h)(exports.SnackbarContainer, { darkMode: this.darkMode }, Array.from(this.items.entries()).map(([key, itemProps]) => ((0, preact_1.h)(exports.SnackbarInstance, Object.assign({}, itemProps, { key: key })))))), this.root);\n }\n}\nexports.Snackbar = Snackbar;\nconst SnackbarContainer = props => ((0, preact_1.h)(\"div\", { class: (0, clsx_1.default)(\"-cbwsdk-snackbar-container\") },\n (0, preact_1.h)(\"style\", null, Snackbar_css_1.default),\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-snackbar\" }, props.children)));\nexports.SnackbarContainer = SnackbarContainer;\nconst SnackbarInstance = ({ autoExpand, message, menuItems, }) => {\n const [hidden, setHidden] = (0, hooks_1.useState)(true);\n const [expanded, setExpanded] = (0, hooks_1.useState)(autoExpand !== null && autoExpand !== void 0 ? autoExpand : false);\n (0, hooks_1.useEffect)(() => {\n const timers = [\n window.setTimeout(() => {\n setHidden(false);\n }, 1),\n window.setTimeout(() => {\n setExpanded(true);\n }, 10000),\n ];\n return () => {\n timers.forEach(window.clearTimeout);\n };\n });\n const toggleExpanded = () => {\n setExpanded(!expanded);\n };\n return ((0, preact_1.h)(\"div\", { class: (0, clsx_1.default)(\"-cbwsdk-snackbar-instance\", hidden && \"-cbwsdk-snackbar-instance-hidden\", expanded && \"-cbwsdk-snackbar-instance-expanded\") },\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-snackbar-instance-header\", onClick: toggleExpanded },\n (0, preact_1.h)(\"img\", { src: cblogo, class: \"-cbwsdk-snackbar-instance-header-cblogo\" }),\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-snackbar-instance-header-message\" }, message),\n (0, preact_1.h)(\"div\", { class: \"-gear-container\" },\n !expanded && ((0, preact_1.h)(\"svg\", { width: \"24\", height: \"24\", viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"circle\", { cx: \"12\", cy: \"12\", r: \"12\", fill: \"#F5F7F8\" }))),\n (0, preact_1.h)(\"img\", { src: gearIcon, class: \"-gear-icon\", title: \"Expand\" }))),\n menuItems && menuItems.length > 0 && ((0, preact_1.h)(\"div\", { class: \"-cbwsdk-snackbar-instance-menu\" }, menuItems.map((action, i) => ((0, preact_1.h)(\"div\", { class: (0, clsx_1.default)(\"-cbwsdk-snackbar-instance-menu-item\", action.isRed && \"-cbwsdk-snackbar-instance-menu-item-is-red\"), onClick: action.onClick, key: i },\n (0, preact_1.h)(\"svg\", { width: action.svgWidth, height: action.svgHeight, viewBox: \"0 0 10 11\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" },\n (0, preact_1.h)(\"path\", { \"fill-rule\": action.defaultFillRule, \"clip-rule\": action.defaultClipRule, d: action.path, fill: \"#AAAAAA\" })),\n (0, preact_1.h)(\"span\", { class: (0, clsx_1.default)(\"-cbwsdk-snackbar-instance-menu-item-info\", action.isRed &&\n \"-cbwsdk-snackbar-instance-menu-item-info-is-red\") }, action.info))))))));\n};\nexports.SnackbarInstance = SnackbarInstance;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `.-cbwsdk-css-reset .-cbwsdk-spinner{display:inline-block}.-cbwsdk-css-reset .-cbwsdk-spinner svg{display:inline-block;animation:2s linear infinite -cbwsdk-spinner-svg}.-cbwsdk-css-reset .-cbwsdk-spinner svg circle{animation:1.9s ease-in-out infinite both -cbwsdk-spinner-circle;display:block;fill:rgba(0,0,0,0);stroke-dasharray:283;stroke-dashoffset:280;stroke-linecap:round;stroke-width:10px;transform-origin:50% 50%}@keyframes -cbwsdk-spinner-svg{0%{transform:rotateZ(0deg)}100%{transform:rotateZ(360deg)}}@keyframes -cbwsdk-spinner-circle{0%,25%{stroke-dashoffset:280;transform:rotate(0)}50%,75%{stroke-dashoffset:75;transform:rotate(45deg)}100%{stroke-dashoffset:280;transform:rotate(360deg)}}`;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Spinner = void 0;\nconst preact_1 = require(\"preact\");\nconst Spinner_css_1 = __importDefault(require(\"./Spinner-css\"));\nconst Spinner = props => {\n var _a;\n const size = (_a = props.size) !== null && _a !== void 0 ? _a : 64;\n const color = props.color || \"#000\";\n return ((0, preact_1.h)(\"div\", { class: \"-cbwsdk-spinner\" },\n (0, preact_1.h)(\"style\", null, Spinner_css_1.default),\n (0, preact_1.h)(\"svg\", { viewBox: \"0 0 100 100\", xmlns: \"http://www.w3.org/2000/svg\", style: { width: size, height: size } },\n (0, preact_1.h)(\"circle\", { style: { cx: 50, cy: 50, r: 45, stroke: color } }))));\n};\nexports.Spinner = Spinner;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `.-cbwsdk-css-reset .-cbwsdk-extension-dialog{z-index:2147483647;position:fixed;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-backdrop{z-index:2147483647;position:fixed;top:0;left:0;right:0;bottom:0;transition:opacity .25s}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-backdrop.light{background-color:rgba(0,0,0,.5)}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-backdrop.dark{background-color:rgba(50,53,61,.4)}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-backdrop-hidden{opacity:0}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box{display:flex;position:relative;max-width:500px;flex-direction:column;transform:scale(1);transition:opacity .25s,transform .25s}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-hidden{opacity:0;transform:scale(0.85)}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top{display:flex;flex-direction:row;border-radius:8px;overflow:hidden;min-height:300px}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top.dark{color:#fff;background-color:#000;box-shadow:0 4px 16px rgba(255,255,255,.05)}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top.light{background-color:#fff}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-subtext{margin-top:15px;font-size:12px;line-height:1.5}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-install-region{display:flex;flex-basis:50%;flex-direction:column;justify-content:center;padding:32px}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-install-region button{display:block;border-radius:8px;background-color:#1652f0;color:#fff;width:90%;min-width:fit-content;height:44px;margin-top:16px;font-size:16px;padding-left:16px;padding-right:16px;cursor:pointer;font-weight:500;text-align:center}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-install-region button.dark{background-color:#3773f5}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-info-region{display:flex;flex-basis:50%;flex-direction:column;justify-content:center}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-info-region.light{background-color:#fafbfc}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-info-region.dark{background-color:#141519}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-description{display:flex;flex-direction:row;align-items:center;padding-top:14px;padding-bottom:14px;padding-left:24px;padding-right:32px}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-description-icon-wrapper{display:block;position:relative;width:40px;height:40px;flex-shrink:0;flex-grow:0;border-radius:20px;background-color:#fff;box-shadow:0px 0px 8px rgba(0,0,0,.04),0px 16px 24px rgba(0,0,0,.06)}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-description-icon-wrapper img{position:absolute;top:0;bottom:0;left:0;right:0;margin:auto}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-description-text{margin-left:16px;flex-grow:1;font-size:13px;line-height:19px;align-self:center}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-description-text.light{color:#000}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-top-description-text.dark{color:#fff}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom{display:flex;flex-direction:row;overflow:hidden;border-radius:8px;margin-top:8px}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom.light{background-color:#fff}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom.dark{background-color:#000;box-shadow:0 4px 16px rgba(255,255,255,.05)}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-description-region{display:flex;flex-direction:column;justify-content:center;padding:32px;flex-grow:1}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-description{font-size:13px;line-height:19px;margin-top:12px;color:#aaa}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-description.dark{color:#fff}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-description.dark a{color:#3773f5}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-description a{font-size:inherit;line-height:inherit;color:#1652f0;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-qr-region{position:relative;flex-shrink:0;display:flex;flex-direction:column;justify-content:center;padding-left:24px;padding-right:24px;padding-top:16px;padding-bottom:16px}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-qr-wrapper{position:relative;display:block;padding:8px;border-radius:8px;box-shadow:0px 4px 12px rgba(0,0,0,.1);background-color:#fff}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-qr-wrapper img{display:block}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-qr-connecting{position:absolute;top:0;bottom:0;left:0;right:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-qr-connecting.light{background-color:rgba(255,255,255,.95)}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-qr-connecting.light>p{color:#000}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-qr-connecting.dark{background-color:rgba(20,21,25,.9)}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-qr-connecting.dark>p{color:#fff}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-bottom-qr-connecting>p{font-size:12px;font-weight:bold;margin-top:16px}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel{position:absolute;-webkit-appearance:none;display:flex;align-items:center;justify-content:center;top:16px;right:16px;width:24px;height:24px;border-radius:12px;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel.light{background-color:#fafbfc}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel.dark{background-color:#141519}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel-x{position:relative;display:block;cursor:pointer}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel-x.light::before,.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel-x.light::after{background-color:#000}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel-x.dark::before,.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel-x.dark::after{background-color:#fff}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel-x::before,.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel-x::after{content:\"\";position:absolute;display:block;top:-1px;left:-7px;width:14px;height:1px;transition:background-color .2s}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel-x::before{transform:rotate(45deg)}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel-x::after{transform:rotate(135deg)}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel:hover .-cbwsdk-link-dialog-box-cancel-x-a,.-cbwsdk-css-reset .-cbwsdk-extension-dialog-box-cancel:hover .-cbwsdk-link-dialog-box-cancel-x-b{background-color:#000}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-container{display:block}.-cbwsdk-css-reset .-cbwsdk-extension-dialog-container-hidden{display:none}.-cbwsdk-css-reset .-cbwsdk-extension-dialog h2{display:block;text-align:left;font-size:22px;font-weight:600;line-height:28px}.-cbwsdk-css-reset .-cbwsdk-extension-dialog h2.light{color:#000}.-cbwsdk-css-reset .-cbwsdk-extension-dialog h2.dark{color:#fff}`;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TryExtensionLinkDialog = void 0;\nconst clsx_1 = __importDefault(require(\"clsx\"));\nconst preact_1 = require(\"preact\");\nconst hooks_1 = require(\"preact/hooks\");\nconst util_1 = require(\"../util\");\nconst version_1 = require(\"../version\");\nconst globe_icon_svg_1 = __importDefault(require(\"./icons/globe-icon-svg\"));\nconst link_icon_svg_1 = __importDefault(require(\"./icons/link-icon-svg\"));\nconst lock_icon_svg_1 = __importDefault(require(\"./icons/lock-icon-svg\"));\nconst QRLogo_1 = __importDefault(require(\"./icons/QRLogo\"));\nconst QRCode_1 = require(\"./QRCode\");\nconst Spinner_1 = require(\"./Spinner\");\nconst TryExtensionLinkDialog_css_1 = __importDefault(require(\"./TryExtensionLinkDialog-css\"));\nconst TryExtensionLinkDialog = props => {\n const { isOpen, darkMode } = props;\n const [isContainerHidden, setContainerHidden] = (0, hooks_1.useState)(!isOpen);\n const [isDialogHidden, setDialogHidden] = (0, hooks_1.useState)(!isOpen);\n (0, hooks_1.useEffect)(() => {\n const timers = [\n window.setTimeout(() => {\n setDialogHidden(!isOpen);\n }, 10),\n ];\n if (isOpen) {\n setContainerHidden(false);\n }\n else {\n timers.push(window.setTimeout(() => {\n setContainerHidden(true);\n }, 360));\n }\n return () => {\n timers.forEach(window.clearTimeout);\n };\n }, [props.isOpen]);\n const theme = darkMode ? \"dark\" : \"light\";\n return ((0, preact_1.h)(\"div\", { class: (0, clsx_1.default)(\"-cbwsdk-extension-dialog-container\", isContainerHidden && \"-cbwsdk-extension-dialog-container-hidden\") },\n (0, preact_1.h)(\"style\", null, TryExtensionLinkDialog_css_1.default),\n (0, preact_1.h)(\"div\", { class: (0, clsx_1.default)(\"-cbwsdk-extension-dialog-backdrop\", theme, isDialogHidden && \"-cbwsdk-extension-dialog-backdrop-hidden\") }),\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-extension-dialog\" },\n (0, preact_1.h)(\"div\", { class: (0, clsx_1.default)(\"-cbwsdk-extension-dialog-box\", isDialogHidden && \"-cbwsdk-extension-dialog-box-hidden\") },\n (0, preact_1.h)(TryExtensionBox, { darkMode: darkMode, onInstallClick: () => {\n window.open(\"https://api.wallet.coinbase.com/rpc/v2/desktop/chrome\", \"_blank\");\n } }),\n !props.connectDisabled ? ((0, preact_1.h)(ScanQRBox, { darkMode: darkMode, version: props.version, sessionId: props.sessionId, sessionSecret: props.sessionSecret, linkAPIUrl: props.linkAPIUrl, isConnected: props.isConnected, isParentConnection: props.isParentConnection, chainId: props.chainId })) : null,\n props.onCancel && ((0, preact_1.h)(CancelButton, { darkMode: darkMode, onClick: props.onCancel }))))));\n};\nexports.TryExtensionLinkDialog = TryExtensionLinkDialog;\nconst TryExtensionBox = ({ darkMode, onInstallClick }) => {\n const [isClicked, setIsClicked] = (0, hooks_1.useState)(false);\n const clickHandler = (0, hooks_1.useCallback)(() => {\n if (isClicked) {\n window.location.reload();\n }\n else {\n onInstallClick();\n setIsClicked(true);\n }\n }, [onInstallClick, isClicked]);\n const theme = darkMode ? \"dark\" : \"light\";\n return ((0, preact_1.h)(\"div\", { class: (0, clsx_1.default)(\"-cbwsdk-extension-dialog-box-top\", theme) },\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-extension-dialog-box-top-install-region\" },\n (0, preact_1.h)(\"h2\", { class: theme }, \"Try the Coinbase Wallet extension\"),\n isClicked && ((0, preact_1.h)(\"div\", { class: \"-cbwsdk-extension-dialog-box-top-subtext\" }, \"After installing Coinbase Wallet, refresh the page and connect again.\")),\n (0, preact_1.h)(\"button\", { type: \"button\", onClick: clickHandler }, isClicked ? \"Refresh\" : \"Install\")),\n (0, preact_1.h)(\"div\", { class: (0, clsx_1.default)(\"-cbwsdk-extension-dialog-box-top-info-region\", theme) },\n (0, preact_1.h)(DescriptionItem, { darkMode: darkMode, icon: link_icon_svg_1.default, text: \"Connect to crypto apps with one click\" }),\n (0, preact_1.h)(DescriptionItem, { darkMode: darkMode, icon: lock_icon_svg_1.default, text: \"Your private key is stored securely\" }),\n (0, preact_1.h)(DescriptionItem, { darkMode: darkMode, icon: globe_icon_svg_1.default, text: \"Works with Ethereum, Polygon, and more\" }))));\n};\nconst ScanQRBox = props => {\n const qrUrl = (0, util_1.createQrUrl)(props.sessionId, props.sessionSecret, props.linkAPIUrl, props.isParentConnection, props.version, props.chainId);\n const theme = props.darkMode ? \"dark\" : \"light\";\n return ((0, preact_1.h)(\"div\", { \"data-testid\": \"scan-qr-box\", class: (0, clsx_1.default)(`-cbwsdk-extension-dialog-box-bottom`, theme) },\n (0, preact_1.h)(\"div\", { class: `-cbwsdk-extension-dialog-box-bottom-description-region` },\n (0, preact_1.h)(\"h2\", { class: theme }, \"Or scan to connect\"),\n (0, preact_1.h)(\"body\", { class: (0, clsx_1.default)(`-cbwsdk-extension-dialog-box-bottom-description`, theme) },\n \"Open\",\n \" \",\n (0, preact_1.h)(\"a\", { href: \"https://wallet.coinbase.com/\", target: \"_blank\", rel: \"noopener noreferrer\" }, \"Coinbase Wallet\"),\n \" \",\n \"on your mobile phone and scan\")),\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-extension-dialog-box-bottom-qr-region\" },\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-extension-dialog-box-bottom-qr-wrapper\" },\n (0, preact_1.h)(QRCode_1.QRCode, { content: qrUrl, width: 150, height: 150, fgColor: \"#000\", bgColor: \"transparent\", image: {\n svg: QRLogo_1.default,\n width: 34,\n height: 34,\n } })),\n (0, preact_1.h)(\"input\", { type: \"hidden\", name: \"cbwsdk-version\", value: version_1.LIB_VERSION }),\n (0, preact_1.h)(\"input\", { type: \"hidden\", value: qrUrl }),\n !props.isConnected && ((0, preact_1.h)(\"div\", { \"data-testid\": \"connecting-spinner\", class: (0, clsx_1.default)(\"-cbwsdk-extension-dialog-box-bottom-qr-connecting\", theme) },\n (0, preact_1.h)(Spinner_1.Spinner, { size: 36, color: props.darkMode ? \"#FFF\" : \"#000\" }),\n (0, preact_1.h)(\"p\", null, \"Connecting...\"))))));\n};\nconst DescriptionItem = props => {\n const theme = props.darkMode ? \"dark\" : \"light\";\n return ((0, preact_1.h)(\"div\", { class: \"-cbwsdk-extension-dialog-box-top-description\" },\n (0, preact_1.h)(\"div\", { class: \"-cbwsdk-extension-dialog-box-top-description-icon-wrapper\" },\n (0, preact_1.h)(\"img\", { src: props.icon })),\n (0, preact_1.h)(\"body\", { class: (0, clsx_1.default)(\"-cbwsdk-extension-dialog-box-top-description-text\", theme) }, props.text)));\n};\nconst CancelButton = props => {\n const theme = props.darkMode ? \"dark\" : \"light\";\n return ((0, preact_1.h)(\"button\", { type: \"button\", class: (0, clsx_1.default)(\"-cbwsdk-extension-dialog-box-cancel\", theme), onClick: props.onClick },\n (0, preact_1.h)(\"div\", { class: (0, clsx_1.default)(\"-cbwsdk-extension-dialog-box-cancel-x\", theme) })));\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `\n\n\n\n\n\n\n`;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTggMEMzLjU4IDAgMCAzLjU4IDAgOHMzLjU4IDggOCA4IDgtMy41OCA4LTgtMy41OC04LTgtOFptNS45MSA3aC0xLjk0Yy0uMS0xLjU3LS40Mi0zLS45MS00LjE1IDEuNDguODggMi41NSAyLjM4IDIuODUgNC4xNVpNOCAxNGMtLjQ1IDAtMS43Mi0xLjc3LTEuOTUtNWgzLjljLS4yMyAzLjIzLTEuNSA1LTEuOTUgNVpNNi4wNSA3QzYuMjggMy43NyA3LjU1IDIgOCAyYy40NSAwIDEuNzIgMS43NyAxLjk1IDVoLTMuOVpNNC45NCAyLjg1QzQuNDYgNCA0LjEzIDUuNDMgNC4wMyA3SDIuMDljLjMtMS43NyAxLjM3LTMuMjcgMi44NS00LjE1Wk0yLjA5IDloMS45NGMuMSAxLjU3LjQyIDMgLjkxIDQuMTVBNS45OTggNS45OTggMCAwIDEgMi4wOSA5Wm04Ljk3IDQuMTVjLjQ4LTEuMTUuODEtMi41OC45MS00LjE1aDEuOTRhNS45OTggNS45OTggMCAwIDEtMi44NSA0LjE1WiIgZmlsbD0iIzE2NTJGMCIvPjwvc3ZnPg==`;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTciIGhlaWdodD0iMTciIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjYzNSAyLjExN2EzLjg4OSAzLjg4OSAwIDAgMC01LjUyMSAwTDYuODkgNS4zMzVBMy44OTQgMy44OTQgMCAwIDAgNS44IDguNzM5Yy4wODMuNTA2LjI2OCAxLjAxMS41NTMgMS40NjYuMTUxLjI1My4zMzYuNDcyLjUzNy42OTFsLjYyMS42MjQgMS4xNDEtMS4xNDYtLjYyLS42MjRhMi4xMDUgMi4xMDUgMCAwIDEtLjQ4Ny0uNzQxIDIuMzQgMi4zNCAwIDAgMSAuNTAzLTIuNTFsMy4yMDYtMy4yMmEyLjI5MyAyLjI5MyAwIDAgMSAzLjIzOSAwYy44OS44OTQuODkgMi4zNDMgMCAzLjI1M2wtMS41MjcgMS41MzNjLjIzNC42NC4zMzUgMS4zMzEuMzAyIDIuMDA1bDIuMzgzLTIuMzkyYzEuNTEtMS41MzQgMS40OTMtNC4wMjgtLjAxNy01LjU2MVoiIGZpbGw9IiMxNjUyRjAiLz48cGF0aCBkPSJNMTEuMjcxIDcuNzQ1YTMuMTMgMy4xMyAwIDAgMC0uNTU0LS42OWwtLjYyLS42MjQtMS4xNDIgMS4xNDYuNjIxLjYyM2MuMjE4LjIyLjM4Ni40ODkuNDg3Ljc1OC4zMzUuODI2LjE2NyAxLjgyLS41MDQgMi40OTRsLTMuMjA1IDMuMjE5YTIuMjkzIDIuMjkzIDAgMCAxLTMuMjQgMCAyLjMxNiAyLjMxNiAwIDAgMSAwLTMuMjUybDEuNTI4LTEuNTM0YTQuODE1IDQuODE1IDAgMCAxLS4yODUtMi4wMDVsLTIuMzgzIDIuMzkzYTMuOTI3IDMuOTI3IDAgMCAwIDAgNS41NDQgMy45MDkgMy45MDkgMCAwIDAgNS41MzggMGwzLjIwNS0zLjIxOWEzLjk1OCAzLjk1OCAwIDAgMCAxLjA5MS0zLjQwNCA0LjIxMSA0LjIxMSAwIDAgMC0uNTM3LTEuNDQ5WiIgZmlsbD0iIzE2NTJGMCIvPjwvc3ZnPg==`;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEgN3Y5aDE0VjdIMVptNy41IDQuMzlWMTRoLTF2LTIuNjFjLS40NC0uMTktLjc1LS42My0uNzUtMS4xNGExLjI1IDEuMjUgMCAwIDEgMi41IDBjMCAuNTEtLjMxLjk1LS43NSAxLjE0Wk01LjY3IDZWNC4zM0M1LjY3IDMuMDUgNi43MSAyIDggMnMyLjMzIDEuMDUgMi4zMyAyLjMzVjZoMlY0LjMzQzEyLjMzIDEuOTQgMTAuMzkgMCA4IDBTMy42NyAxLjk0IDMuNjcgNC4zM1Y2aDJaIiBmaWxsPSIjMTY1MkYwIi8+PC9zdmc+`;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClientMessagePublishEvent = exports.ClientMessageSetSessionConfig = exports.ClientMessageGetSessionConfig = exports.ClientMessageIsLinked = exports.ClientMessageHostSession = void 0;\nfunction ClientMessageHostSession(params) {\n return Object.assign({ type: \"HostSession\" }, params);\n}\nexports.ClientMessageHostSession = ClientMessageHostSession;\nfunction ClientMessageIsLinked(params) {\n return Object.assign({ type: \"IsLinked\" }, params);\n}\nexports.ClientMessageIsLinked = ClientMessageIsLinked;\nfunction ClientMessageGetSessionConfig(params) {\n return Object.assign({ type: \"GetSessionConfig\" }, params);\n}\nexports.ClientMessageGetSessionConfig = ClientMessageGetSessionConfig;\nfunction ClientMessageSetSessionConfig(params) {\n return Object.assign({ type: \"SetSessionConfig\" }, params);\n}\nexports.ClientMessageSetSessionConfig = ClientMessageSetSessionConfig;\nfunction ClientMessagePublishEvent(params) {\n return Object.assign({ type: \"PublishEvent\" }, params);\n}\nexports.ClientMessagePublishEvent = ClientMessagePublishEvent;\n","\"use strict\";\n// DiagnosticLogger for debugging purposes only\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EVENTS = void 0;\nexports.EVENTS = {\n STARTED_CONNECTING: \"walletlink_sdk.started.connecting\",\n CONNECTED_STATE_CHANGE: \"walletlink_sdk.connected\",\n DISCONNECTED: \"walletlink_sdk.disconnected\",\n METADATA_DESTROYED: \"walletlink_sdk_metadata_destroyed\",\n LINKED: \"walletlink_sdk.linked\",\n FAILURE: \"walletlink_sdk.generic_failure\",\n SESSION_CONFIG_RECEIVED: \"walletlink_sdk.session_config_event_received\",\n ETH_ACCOUNTS_STATE: \"walletlink_sdk.eth_accounts_state\",\n SESSION_STATE_CHANGE: \"walletlink_sdk.session_state_change\",\n UNLINKED_ERROR_STATE: \"walletlink_sdk.unlinked_error_state\",\n SKIPPED_CLEARING_SESSION: \"walletlink_sdk.skipped_clearing_session\",\n GENERAL_ERROR: \"walletlink_sdk.general_error\",\n WEB3_REQUEST: \"walletlink_sdk.web3.request\",\n WEB3_REQUEST_PUBLISHED: \"walletlink_sdk.web3.request_published\",\n WEB3_RESPONSE: \"walletlink_sdk.web3.response\",\n UNKNOWN_ADDRESS_ENCOUNTERED: \"walletlink_sdk.unknown_address_encountered\",\n};\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RxWebSocket = exports.ConnectionState = void 0;\nconst rxjs_1 = require(\"rxjs\");\nconst operators_1 = require(\"rxjs/operators\");\nvar ConnectionState;\n(function (ConnectionState) {\n ConnectionState[ConnectionState[\"DISCONNECTED\"] = 0] = \"DISCONNECTED\";\n ConnectionState[ConnectionState[\"CONNECTING\"] = 1] = \"CONNECTING\";\n ConnectionState[ConnectionState[\"CONNECTED\"] = 2] = \"CONNECTED\";\n})(ConnectionState = exports.ConnectionState || (exports.ConnectionState = {}));\n/**\n * Rx-ified WebSocket\n */\nclass RxWebSocket {\n /**\n * Constructor\n * @param url WebSocket server URL\n * @param [WebSocketClass] Custom WebSocket implementation\n */\n constructor(url, WebSocketClass = WebSocket) {\n this.WebSocketClass = WebSocketClass;\n this.webSocket = null;\n this.connectionStateSubject = new rxjs_1.BehaviorSubject(ConnectionState.DISCONNECTED);\n this.incomingDataSubject = new rxjs_1.Subject();\n this.url = url.replace(/^http/, \"ws\");\n }\n /**\n * Make a websocket connection\n * @returns an Observable that completes when connected\n */\n connect() {\n if (this.webSocket) {\n return (0, rxjs_1.throwError)(new Error(\"webSocket object is not null\"));\n }\n return new rxjs_1.Observable(obs => {\n let webSocket;\n try {\n this.webSocket = webSocket = new this.WebSocketClass(this.url);\n }\n catch (err) {\n obs.error(err);\n return;\n }\n this.connectionStateSubject.next(ConnectionState.CONNECTING);\n webSocket.onclose = evt => {\n this.clearWebSocket();\n obs.error(new Error(`websocket error ${evt.code}: ${evt.reason}`));\n this.connectionStateSubject.next(ConnectionState.DISCONNECTED);\n };\n webSocket.onopen = _ => {\n obs.next();\n obs.complete();\n this.connectionStateSubject.next(ConnectionState.CONNECTED);\n };\n webSocket.onmessage = evt => {\n this.incomingDataSubject.next(evt.data);\n };\n }).pipe((0, operators_1.take)(1));\n }\n /**\n * Disconnect from server\n */\n disconnect() {\n const { webSocket } = this;\n if (!webSocket) {\n return;\n }\n this.clearWebSocket();\n this.connectionStateSubject.next(ConnectionState.DISCONNECTED);\n try {\n webSocket.close();\n }\n catch (_a) { }\n }\n /**\n * Emit current connection state and subsequent changes\n * @returns an Observable for the connection state\n */\n get connectionState$() {\n return this.connectionStateSubject.asObservable();\n }\n /**\n * Emit incoming data from server\n * @returns an Observable for the data received\n */\n get incomingData$() {\n return this.incomingDataSubject.asObservable();\n }\n /**\n * Emit incoming JSON data from server. non-JSON data are ignored\n * @returns an Observable for parsed JSON data\n */\n get incomingJSONData$() {\n return this.incomingData$.pipe((0, operators_1.flatMap)(m => {\n let j;\n try {\n j = JSON.parse(m);\n }\n catch (err) {\n return (0, rxjs_1.empty)();\n }\n return (0, rxjs_1.of)(j);\n }));\n }\n /**\n * Send data to server\n * @param data text to send\n */\n sendData(data) {\n const { webSocket } = this;\n if (!webSocket) {\n throw new Error(\"websocket is not connected\");\n }\n webSocket.send(data);\n }\n clearWebSocket() {\n const { webSocket } = this;\n if (!webSocket) {\n return;\n }\n this.webSocket = null;\n webSocket.onclose = null;\n webSocket.onerror = null;\n webSocket.onmessage = null;\n webSocket.onopen = null;\n }\n}\nexports.RxWebSocket = RxWebSocket;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isServerMessageFail = void 0;\nfunction isServerMessageFail(msg) {\n return (msg &&\n msg.type === \"Fail\" &&\n typeof msg.id === \"number\" &&\n typeof msg.sessionId === \"string\" &&\n typeof msg.error === \"string\");\n}\nexports.isServerMessageFail = isServerMessageFail;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletSDKConnection = void 0;\nconst rxjs_1 = require(\"rxjs\");\nconst operators_1 = require(\"rxjs/operators\");\nconst Session_1 = require(\"../relay/Session\");\nconst types_1 = require(\"../types\");\nconst ClientMessage_1 = require(\"./ClientMessage\");\nconst DiagnosticLogger_1 = require(\"./DiagnosticLogger\");\nconst RxWebSocket_1 = require(\"./RxWebSocket\");\nconst ServerMessage_1 = require(\"./ServerMessage\");\nconst HEARTBEAT_INTERVAL = 10000;\nconst REQUEST_TIMEOUT = 60000;\n/**\n * Coinbase Wallet Connection\n */\nclass WalletSDKConnection {\n /**\n * Constructor\n * @param sessionId Session ID\n * @param sessionKey Session Key\n * @param linkAPIUrl Coinbase Wallet link server URL\n * @param [WebSocketClass] Custom WebSocket implementation\n */\n constructor(sessionId, sessionKey, linkAPIUrl, diagnostic, WebSocketClass = WebSocket) {\n this.sessionId = sessionId;\n this.sessionKey = sessionKey;\n this.diagnostic = diagnostic;\n this.subscriptions = new rxjs_1.Subscription();\n this.destroyed = false;\n this.lastHeartbeatResponse = 0;\n this.nextReqId = (0, types_1.IntNumber)(1);\n this.connectedSubject = new rxjs_1.BehaviorSubject(false);\n this.linkedSubject = new rxjs_1.BehaviorSubject(false);\n this.sessionConfigSubject = new rxjs_1.ReplaySubject(1);\n const ws = new RxWebSocket_1.RxWebSocket(linkAPIUrl + \"/rpc\", WebSocketClass);\n this.ws = ws;\n // attempt to reconnect every 5 seconds when disconnected\n this.subscriptions.add(ws.connectionState$\n .pipe((0, operators_1.tap)(state => {\n var _a;\n return (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.CONNECTED_STATE_CHANGE, {\n state,\n sessionIdHash: Session_1.Session.hash(sessionId),\n });\n }), \n // ignore initial DISCONNECTED state\n (0, operators_1.skip)(1), \n // if DISCONNECTED and not destroyed\n (0, operators_1.filter)(cs => cs === RxWebSocket_1.ConnectionState.DISCONNECTED && !this.destroyed), \n // wait 5 seconds\n (0, operators_1.delay)(5000), \n // check whether it's destroyed again\n (0, operators_1.filter)(_ => !this.destroyed), \n // reconnect\n (0, operators_1.flatMap)(_ => ws.connect()), (0, operators_1.retry)())\n .subscribe());\n // perform authentication upon connection\n this.subscriptions.add(ws.connectionState$\n .pipe(\n // ignore initial DISCONNECTED and CONNECTING states\n (0, operators_1.skip)(2), (0, operators_1.switchMap)(cs => (0, rxjs_1.iif)(() => cs === RxWebSocket_1.ConnectionState.CONNECTED, \n // if CONNECTED, authenticate, and then check link status\n this.authenticate().pipe((0, operators_1.tap)(_ => this.sendIsLinked()), (0, operators_1.tap)(_ => this.sendGetSessionConfig()), (0, operators_1.map)(_ => true)), \n // if not CONNECTED, emit false immediately\n (0, rxjs_1.of)(false))), (0, operators_1.distinctUntilChanged)(), (0, operators_1.catchError)(_ => (0, rxjs_1.of)(false)))\n .subscribe(connected => this.connectedSubject.next(connected)));\n // send heartbeat every n seconds while connected\n this.subscriptions.add(ws.connectionState$\n .pipe(\n // ignore initial DISCONNECTED state\n (0, operators_1.skip)(1), (0, operators_1.switchMap)(cs => (0, rxjs_1.iif)(() => cs === RxWebSocket_1.ConnectionState.CONNECTED, \n // if CONNECTED, start the heartbeat timer\n (0, rxjs_1.timer)(0, HEARTBEAT_INTERVAL))))\n .subscribe(i => \n // first timer event updates lastHeartbeat timestamp\n // subsequent calls send heartbeat message\n i === 0 ? this.updateLastHeartbeat() : this.heartbeat()));\n // handle server's heartbeat responses\n this.subscriptions.add(ws.incomingData$\n .pipe((0, operators_1.filter)(m => m === \"h\"))\n .subscribe(_ => this.updateLastHeartbeat()));\n // handle link status updates\n this.subscriptions.add(ws.incomingJSONData$\n .pipe((0, operators_1.filter)(m => [\"IsLinkedOK\", \"Linked\"].includes(m.type)))\n .subscribe(m => {\n var _a;\n const msg = m;\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.LINKED, {\n sessionIdHash: Session_1.Session.hash(sessionId),\n linked: msg.linked,\n type: m.type,\n onlineGuests: msg.onlineGuests,\n });\n this.linkedSubject.next(msg.linked || msg.onlineGuests > 0);\n }));\n // handle session config updates\n this.subscriptions.add(ws.incomingJSONData$\n .pipe((0, operators_1.filter)(m => [\"GetSessionConfigOK\", \"SessionConfigUpdated\"].includes(m.type)))\n .subscribe(m => {\n var _a;\n const msg = m;\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.SESSION_CONFIG_RECEIVED, {\n sessionIdHash: Session_1.Session.hash(sessionId),\n metadata_keys: msg && msg.metadata ? Object.keys(msg.metadata) : undefined,\n });\n this.sessionConfigSubject.next({\n webhookId: msg.webhookId,\n webhookUrl: msg.webhookUrl,\n metadata: msg.metadata,\n });\n }));\n }\n /**\n * Make a connection to the server\n */\n connect() {\n var _a;\n if (this.destroyed) {\n throw new Error(\"instance is destroyed\");\n }\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.STARTED_CONNECTING, {\n sessionIdHash: Session_1.Session.hash(this.sessionId),\n });\n this.ws.connect().subscribe();\n }\n /**\n * Terminate connection, and mark as destroyed. To reconnect, create a new\n * instance of WalletSDKConnection\n */\n destroy() {\n var _a;\n this.subscriptions.unsubscribe();\n this.ws.disconnect();\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.DISCONNECTED, {\n sessionIdHash: Session_1.Session.hash(this.sessionId),\n });\n this.destroyed = true;\n }\n get isDestroyed() {\n return this.destroyed;\n }\n /**\n * Emit true if connected and authenticated, else false\n * @returns an Observable\n */\n get connected$() {\n return this.connectedSubject.asObservable();\n }\n /**\n * Emit once connected\n * @returns an Observable\n */\n get onceConnected$() {\n return this.connected$.pipe((0, operators_1.filter)(v => v), (0, operators_1.take)(1), (0, operators_1.map)(() => void 0));\n }\n /**\n * Emit true if linked (a guest has joined before)\n * @returns an Observable\n */\n get linked$() {\n return this.linkedSubject.asObservable();\n }\n /**\n * Emit once when linked\n * @returns an Observable\n */\n get onceLinked$() {\n return this.linked$.pipe((0, operators_1.filter)(v => v), (0, operators_1.take)(1), (0, operators_1.map)(() => void 0));\n }\n /**\n * Emit current session config if available, and subsequent updates\n * @returns an Observable for the session config\n */\n get sessionConfig$() {\n return this.sessionConfigSubject.asObservable();\n }\n /**\n * Emit incoming Event messages\n * @returns an Observable for the messages\n */\n get incomingEvent$() {\n return this.ws.incomingJSONData$.pipe((0, operators_1.filter)(m => {\n if (m.type !== \"Event\") {\n return false;\n }\n const sme = m;\n return (typeof sme.sessionId === \"string\" &&\n typeof sme.eventId === \"string\" &&\n typeof sme.event === \"string\" &&\n typeof sme.data === \"string\");\n }), (0, operators_1.map)(m => m));\n }\n /**\n * Set session metadata in SessionConfig object\n * @param key\n * @param value\n * @returns an Observable that completes when successful\n */\n setSessionMetadata(key, value) {\n const message = (0, ClientMessage_1.ClientMessageSetSessionConfig)({\n id: (0, types_1.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId,\n metadata: { [key]: value },\n });\n return this.onceConnected$.pipe((0, operators_1.flatMap)(_ => this.makeRequest(message)), (0, operators_1.map)(res => {\n if ((0, ServerMessage_1.isServerMessageFail)(res)) {\n throw new Error(res.error || \"failed to set session metadata\");\n }\n }));\n }\n /**\n * Publish an event and emit event ID when successful\n * @param event event name\n * @param data event data\n * @param callWebhook whether the webhook should be invoked\n * @returns an Observable that emits event ID when successful\n */\n publishEvent(event, data, callWebhook = false) {\n const message = (0, ClientMessage_1.ClientMessagePublishEvent)({\n id: (0, types_1.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId,\n event,\n data,\n callWebhook,\n });\n return this.onceLinked$.pipe((0, operators_1.flatMap)(_ => this.makeRequest(message)), (0, operators_1.map)(res => {\n if ((0, ServerMessage_1.isServerMessageFail)(res)) {\n throw new Error(res.error || \"failed to publish event\");\n }\n return res.eventId;\n }));\n }\n sendData(message) {\n this.ws.sendData(JSON.stringify(message));\n }\n updateLastHeartbeat() {\n this.lastHeartbeatResponse = Date.now();\n }\n heartbeat() {\n if (Date.now() - this.lastHeartbeatResponse > HEARTBEAT_INTERVAL * 2) {\n this.ws.disconnect();\n return;\n }\n try {\n this.ws.sendData(\"h\");\n }\n catch (_a) { }\n }\n makeRequest(message, timeout = REQUEST_TIMEOUT) {\n const reqId = message.id;\n try {\n this.sendData(message);\n }\n catch (err) {\n return (0, rxjs_1.throwError)(err);\n }\n // await server message with corresponding id\n return this.ws.incomingJSONData$.pipe((0, operators_1.timeoutWith)(timeout, (0, rxjs_1.throwError)(new Error(`request ${reqId} timed out`))), (0, operators_1.filter)(m => m.id === reqId), (0, operators_1.take)(1));\n }\n authenticate() {\n const msg = (0, ClientMessage_1.ClientMessageHostSession)({\n id: (0, types_1.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId,\n sessionKey: this.sessionKey,\n });\n return this.makeRequest(msg).pipe((0, operators_1.map)(res => {\n if ((0, ServerMessage_1.isServerMessageFail)(res)) {\n throw new Error(res.error || \"failed to authentcate\");\n }\n }));\n }\n sendIsLinked() {\n const msg = (0, ClientMessage_1.ClientMessageIsLinked)({\n id: (0, types_1.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId,\n });\n this.sendData(msg);\n }\n sendGetSessionConfig() {\n const msg = (0, ClientMessage_1.ClientMessageGetSessionConfig)({\n id: (0, types_1.IntNumber)(this.nextReqId++),\n sessionId: this.sessionId,\n });\n this.sendData(msg);\n }\n}\nexports.WalletSDKConnection = WalletSDKConnection;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoinbaseWalletProvider = exports.CoinbaseWalletSDK = void 0;\nconst CoinbaseWalletSDK_1 = require(\"./CoinbaseWalletSDK\");\nconst CoinbaseWalletProvider_1 = require(\"./provider/CoinbaseWalletProvider\");\nvar CoinbaseWalletSDK_2 = require(\"./CoinbaseWalletSDK\");\nObject.defineProperty(exports, \"CoinbaseWalletSDK\", { enumerable: true, get: function () { return CoinbaseWalletSDK_2.CoinbaseWalletSDK; } });\nvar CoinbaseWalletProvider_2 = require(\"./provider/CoinbaseWalletProvider\");\nObject.defineProperty(exports, \"CoinbaseWalletProvider\", { enumerable: true, get: function () { return CoinbaseWalletProvider_2.CoinbaseWalletProvider; } });\nexports.default = CoinbaseWalletSDK_1.CoinbaseWalletSDK;\nif (typeof window !== \"undefined\") {\n window.CoinbaseWalletSDK = CoinbaseWalletSDK_1.CoinbaseWalletSDK;\n window.CoinbaseWalletProvider = CoinbaseWalletProvider_1.CoinbaseWalletProvider;\n /**\n * @deprecated Use `window.CoinbaseWalletSDK`\n */\n window.WalletLink = CoinbaseWalletSDK_1.CoinbaseWalletSDK;\n /**\n * @deprecated Use `window.CoinbaseWalletProvider`\n */\n window.WalletLinkProvider = CoinbaseWalletProvider_1.CoinbaseWalletProvider;\n}\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScopedLocalStorage = void 0;\nclass ScopedLocalStorage {\n constructor(scope) {\n this.scope = scope;\n }\n setItem(key, value) {\n localStorage.setItem(this.scopedKey(key), value);\n }\n getItem(key) {\n return localStorage.getItem(this.scopedKey(key));\n }\n removeItem(key) {\n localStorage.removeItem(this.scopedKey(key));\n }\n clear() {\n const prefix = this.scopedKey(\"\");\n const keysToRemove = [];\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (typeof key === \"string\" && key.startsWith(prefix)) {\n keysToRemove.push(key);\n }\n }\n keysToRemove.forEach(key => localStorage.removeItem(key));\n }\n scopedKey(key) {\n return `${this.scope}:${key}`;\n }\n}\nexports.ScopedLocalStorage = ScopedLocalStorage;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = `@namespace svg \"http://www.w3.org/2000/svg\";.-cbwsdk-css-reset,.-cbwsdk-css-reset *{animation:none;animation-delay:0;animation-direction:normal;animation-duration:0;animation-fill-mode:none;animation-iteration-count:1;animation-name:none;animation-play-state:running;animation-timing-function:ease;backface-visibility:visible;background:0;background-attachment:scroll;background-clip:border-box;background-color:rgba(0,0,0,0);background-image:none;background-origin:padding-box;background-position:0 0;background-position-x:0;background-position-y:0;background-repeat:repeat;background-size:auto auto;border:0;border-style:none;border-width:medium;border-color:inherit;border-bottom:0;border-bottom-color:inherit;border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-style:none;border-bottom-width:medium;border-collapse:separate;border-image:none;border-left:0;border-left-color:inherit;border-left-style:none;border-left-width:medium;border-radius:0;border-right:0;border-right-color:inherit;border-right-style:none;border-right-width:medium;border-spacing:0;border-top:0;border-top-color:inherit;border-top-left-radius:0;border-top-right-radius:0;border-top-style:none;border-top-width:medium;bottom:auto;box-shadow:none;box-sizing:border-box;caption-side:top;clear:none;clip:auto;color:inherit;columns:auto;column-count:auto;column-fill:balance;column-gap:normal;column-rule:medium none currentColor;column-rule-color:currentColor;column-rule-style:none;column-rule-width:none;column-span:1;column-width:auto;content:normal;counter-increment:none;counter-reset:none;cursor:auto;direction:ltr;display:block;empty-cells:show;float:none;font:normal;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;height:auto;hyphens:none;left:auto;letter-spacing:normal;line-height:normal;list-style:none;list-style-image:none;list-style-position:outside;list-style-type:disc;margin:0;margin-bottom:0;margin-left:0;margin-right:0;margin-top:0;max-height:none;max-width:none;min-height:0;min-width:0;opacity:1;orphans:0;outline:0;outline-color:invert;outline-style:none;outline-width:medium;overflow:visible;overflow-x:visible;overflow-y:visible;padding:0;padding-bottom:0;padding-left:0;padding-right:0;padding-top:0;page-break-after:auto;page-break-before:auto;page-break-inside:auto;perspective:none;perspective-origin:50% 50%;pointer-events:auto;position:static;quotes:\"\\\\201C\" \"\\\\201D\" \"\\\\2018\" \"\\\\2019\";right:auto;tab-size:8;table-layout:auto;text-align:inherit;text-align-last:auto;text-decoration:none;text-decoration-color:inherit;text-decoration-line:none;text-decoration-style:solid;text-indent:0;text-shadow:none;text-transform:none;top:auto;transform:none;transform-style:flat;transition:none;transition-delay:0s;transition-duration:0s;transition-property:none;transition-timing-function:ease;unicode-bidi:normal;vertical-align:baseline;visibility:visible;white-space:normal;widows:0;width:auto;word-spacing:normal;z-index:auto}.-cbwsdk-css-reset *{box-sizing:border-box;display:initial;font-family:-apple-system,BlinkMacSystemFont,\"Segoe UI\",\"Helvetica Neue\",Arial,sans-serif;line-height:1}.-cbwsdk-css-reset [class*=container]{margin:0;padding:0}.-cbwsdk-css-reset style{display:none}`;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.injectCssReset = void 0;\nconst cssReset_css_1 = __importDefault(require(\"./cssReset-css\"));\nfunction injectCssReset() {\n const styleEl = document.createElement(\"style\");\n styleEl.type = \"text/css\";\n styleEl.appendChild(document.createTextNode(cssReset_css_1.default));\n document.documentElement.appendChild(styleEl);\n}\nexports.injectCssReset = injectCssReset;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CoinbaseWalletProvider = void 0;\nconst safe_event_emitter_1 = __importDefault(require(\"@metamask/safe-event-emitter\"));\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst eth_rpc_errors_1 = require(\"eth-rpc-errors\");\nconst DiagnosticLogger_1 = require(\"../connection/DiagnosticLogger\");\nconst Session_1 = require(\"../relay/Session\");\nconst WalletSDKRelayAbstract_1 = require(\"../relay/WalletSDKRelayAbstract\");\nconst util_1 = require(\"../util\");\nconst eth_eip712_util_1 = __importDefault(require(\"../vendor-js/eth-eip712-util\"));\nconst FilterPolyfill_1 = require(\"./FilterPolyfill\");\nconst JSONRPC_1 = require(\"./JSONRPC\");\nconst SubscriptionManager_1 = require(\"./SubscriptionManager\");\nconst DEFAULT_CHAIN_ID_KEY = \"DefaultChainId\";\nconst DEFAULT_JSON_RPC_URL = \"DefaultJsonRpcUrl\";\nconst WHITELISTED_NETWORK_CHAIN_ID = [\n 1, 10, 137, 61, 56, 250, 42161, 100, 43114, 3, 4, 5, 42, 69, 80001, 97, 4002,\n 421611, 43113,\n];\nclass CoinbaseWalletProvider extends safe_event_emitter_1.default {\n constructor(options) {\n var _a, _b;\n super();\n this._filterPolyfill = new FilterPolyfill_1.FilterPolyfill(this);\n this._subscriptionManager = new SubscriptionManager_1.SubscriptionManager(this);\n this._relay = null;\n this._addresses = [];\n this.hasMadeFirstChainChangedEmission = false;\n this._send = this.send.bind(this);\n this._sendAsync = this.sendAsync.bind(this);\n this.setProviderInfo = this.setProviderInfo.bind(this);\n this.updateProviderInfo = this.updateProviderInfo.bind(this);\n this.getChainId = this.getChainId.bind(this);\n this.setAppInfo = this.setAppInfo.bind(this);\n this.enable = this.enable.bind(this);\n this.close = this.close.bind(this);\n this.send = this.send.bind(this);\n this.sendAsync = this.sendAsync.bind(this);\n this.request = this.request.bind(this);\n this._setAddresses = this._setAddresses.bind(this);\n this.scanQRCode = this.scanQRCode.bind(this);\n this.genericRequest = this.genericRequest.bind(this);\n this._chainIdFromOpts = options.chainId;\n this._jsonRpcUrlFromOpts = options.jsonRpcUrl;\n this._overrideIsMetaMask = options.overrideIsMetaMask;\n this._relayProvider = options.relayProvider;\n this._storage = options.storage;\n this._relayEventManager = options.relayEventManager;\n this.diagnostic = options.diagnosticLogger;\n this.reloadOnDisconnect = true;\n this.isCoinbaseWallet = (_a = options.overrideIsCoinbaseWallet) !== null && _a !== void 0 ? _a : true;\n this.isCoinbaseBrowser = (_b = options.overrideIsCoinbaseBrowser) !== null && _b !== void 0 ? _b : false;\n this.qrUrl = options.qrUrl;\n this.supportsAddressSwitching = options.supportsAddressSwitching;\n this.isLedger = options.isLedger;\n const chainId = this.getChainId();\n const chainIdStr = (0, util_1.prepend0x)(chainId.toString(16));\n // indicate that we've connected, for EIP-1193 compliance\n this.emit(\"connect\", { chainIdStr });\n const cachedAddresses = this._storage.getItem(WalletSDKRelayAbstract_1.LOCAL_STORAGE_ADDRESSES_KEY);\n if (cachedAddresses) {\n const addresses = cachedAddresses.split(\" \");\n if (addresses[0] !== \"\") {\n this._addresses = addresses.map(address => (0, util_1.ensureAddressString)(address));\n this.emit(\"accountsChanged\", addresses);\n }\n }\n this._subscriptionManager.events.on(\"notification\", (notification) => {\n this.emit(\"message\", {\n type: notification.method,\n data: notification.params,\n });\n });\n if (this._addresses.length > 0) {\n void this.initializeRelay();\n }\n window.addEventListener(\"message\", event => {\n var _a;\n if (event.data.type !== \"walletLinkMessage\")\n return; // compatibility with CBW extension\n if (event.data.data.action === \"defaultChainChanged\" ||\n event.data.data.action === \"dappChainSwitched\") {\n const _chainId = event.data.data.chainId;\n const jsonRpcUrl = (_a = event.data.data.jsonRpcUrl) !== null && _a !== void 0 ? _a : this.jsonRpcUrl;\n this.updateProviderInfo(jsonRpcUrl, Number(_chainId));\n }\n if (event.data.data.action === \"addressChanged\") {\n this._setAddresses([event.data.data.address]);\n }\n });\n }\n get selectedAddress() {\n return this._addresses[0] || undefined;\n }\n get networkVersion() {\n return this.getChainId().toString(10);\n }\n get chainId() {\n return (0, util_1.prepend0x)(this.getChainId().toString(16));\n }\n get isWalletLink() {\n // backward compatibility\n return true;\n }\n /**\n * Some DApps (i.e. Alpha Homora) seem to require the window.ethereum object return\n * true for this method.\n */\n get isMetaMask() {\n return this._overrideIsMetaMask;\n }\n get host() {\n return this.jsonRpcUrl;\n }\n get connected() {\n return true;\n }\n isConnected() {\n return true;\n }\n get jsonRpcUrl() {\n var _a;\n return ((_a = this._storage.getItem(DEFAULT_JSON_RPC_URL)) !== null && _a !== void 0 ? _a : this._jsonRpcUrlFromOpts);\n }\n set jsonRpcUrl(value) {\n this._storage.setItem(DEFAULT_JSON_RPC_URL, value);\n }\n disableReloadOnDisconnect() {\n this.reloadOnDisconnect = false;\n }\n /**\n * this function is called when coinbase provider is being injected to a dapp\n * standalone + walletlinked extension, ledger, in-app browser using cipher-web-view\n */\n setProviderInfo(jsonRpcUrl, chainId) {\n // extension tend to use the chianId from the dapp, while in-app browser and ledger overrides the default network\n if (!(this.isLedger || this.isCoinbaseBrowser)) {\n this._chainIdFromOpts = chainId;\n this._jsonRpcUrlFromOpts = jsonRpcUrl;\n }\n this.updateProviderInfo(this._jsonRpcUrlFromOpts, this._chainIdFromOpts);\n }\n updateProviderInfo(jsonRpcUrl, chainId) {\n this.jsonRpcUrl = jsonRpcUrl;\n // emit chainChanged event if necessary\n const originalChainId = this.getChainId();\n this._storage.setItem(DEFAULT_CHAIN_ID_KEY, chainId.toString(10));\n const chainChanged = (0, util_1.ensureIntNumber)(chainId) !== originalChainId;\n if (chainChanged || !this.hasMadeFirstChainChangedEmission) {\n this.emit(\"chainChanged\", this.getChainId());\n this.hasMadeFirstChainChangedEmission = true;\n }\n }\n async watchAsset(type, address, symbol, decimals, image, chainId) {\n const relay = await this.initializeRelay();\n const result = await relay.watchAsset(type, address, symbol, decimals, image, chainId === null || chainId === void 0 ? void 0 : chainId.toString()).promise;\n return !!result.result;\n }\n async addEthereumChain(chainId, rpcUrls, blockExplorerUrls, chainName, iconUrls, nativeCurrency) {\n var _a, _b;\n if ((0, util_1.ensureIntNumber)(chainId) === this.getChainId()) {\n return false;\n }\n const relay = await this.initializeRelay();\n const isWhitelistedNetworkOrStandalone = relay.inlineAddEthereumChain(chainId.toString());\n if (!this._isAuthorized() && !isWhitelistedNetworkOrStandalone) {\n await relay.requestEthereumAccounts().promise;\n }\n const res = await relay.addEthereumChain(chainId.toString(), rpcUrls, iconUrls, blockExplorerUrls, chainName, nativeCurrency).promise;\n if (((_a = res.result) === null || _a === void 0 ? void 0 : _a.isApproved) === true) {\n this.updateProviderInfo(rpcUrls[0], chainId);\n }\n return ((_b = res.result) === null || _b === void 0 ? void 0 : _b.isApproved) === true;\n }\n async switchEthereumChain(chainId) {\n if (WHITELISTED_NETWORK_CHAIN_ID.includes(chainId)) {\n // for whitelisted network that we know we can switch to, switch it right away\n this.updateProviderInfo(this.jsonRpcUrl, chainId);\n }\n const relay = await this.initializeRelay();\n const res = await relay.switchEthereumChain(chainId.toString(10), this.selectedAddress || undefined).promise;\n if (res.errorCode) {\n throw eth_rpc_errors_1.ethErrors.provider.custom({\n code: res.errorCode,\n });\n }\n const switchResponse = res.result;\n if (switchResponse.isApproved && switchResponse.rpcUrl.length > 0) {\n this.updateProviderInfo(switchResponse.rpcUrl, chainId);\n }\n }\n setAppInfo(appName, appLogoUrl) {\n void this.initializeRelay().then(relay => relay.setAppInfo(appName, appLogoUrl));\n }\n async enable() {\n var _a;\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.ETH_ACCOUNTS_STATE, {\n method: \"provider::enable\",\n addresses_length: this._addresses.length,\n sessionIdHash: this._relay\n ? Session_1.Session.hash(this._relay.session.id)\n : undefined,\n });\n if (this._addresses.length > 0) {\n return [...this._addresses];\n }\n return await this._send(JSONRPC_1.JSONRPCMethod.eth_requestAccounts);\n }\n async close() {\n const relay = await this.initializeRelay();\n relay.resetAndReload();\n }\n send(requestOrMethod, callbackOrParams) {\n // send(method, params): Promise\n if (typeof requestOrMethod === \"string\") {\n const method = requestOrMethod;\n const params = Array.isArray(callbackOrParams)\n ? callbackOrParams\n : callbackOrParams !== undefined\n ? [callbackOrParams]\n : [];\n const request = {\n jsonrpc: \"2.0\",\n id: 0,\n method,\n params,\n };\n return this._sendRequestAsync(request).then(res => res.result);\n }\n // send(JSONRPCRequest | JSONRPCRequest[], callback): void\n if (typeof callbackOrParams === \"function\") {\n const request = requestOrMethod;\n const callback = callbackOrParams;\n return this._sendAsync(request, callback);\n }\n // send(JSONRPCRequest[]): JSONRPCResponse[]\n if (Array.isArray(requestOrMethod)) {\n const requests = requestOrMethod;\n return requests.map(r => this._sendRequest(r));\n }\n // send(JSONRPCRequest): JSONRPCResponse\n const req = requestOrMethod;\n return this._sendRequest(req);\n }\n async sendAsync(request, callback) {\n if (typeof callback !== \"function\") {\n throw new Error(\"callback is required\");\n }\n // send(JSONRPCRequest[], callback): void\n if (Array.isArray(request)) {\n const arrayCb = callback;\n this._sendMultipleRequestsAsync(request)\n .then(responses => arrayCb(null, responses))\n .catch(err => arrayCb(err, null));\n return;\n }\n // send(JSONRPCRequest, callback): void\n const cb = callback;\n return this._sendRequestAsync(request)\n .then(response => cb(null, response))\n .catch(err => cb(err, null));\n }\n async request(args) {\n if (!args || typeof args !== \"object\" || Array.isArray(args)) {\n throw eth_rpc_errors_1.ethErrors.rpc.invalidRequest({\n message: \"Expected a single, non-array, object argument.\",\n data: args,\n });\n }\n const { method, params } = args;\n if (typeof method !== \"string\" || method.length === 0) {\n throw eth_rpc_errors_1.ethErrors.rpc.invalidRequest({\n message: \"'args.method' must be a non-empty string.\",\n data: args,\n });\n }\n if (params !== undefined &&\n !Array.isArray(params) &&\n (typeof params !== \"object\" || params === null)) {\n throw eth_rpc_errors_1.ethErrors.rpc.invalidRequest({\n message: \"'args.params' must be an object or array if provided.\",\n data: args,\n });\n }\n const newParams = params === undefined ? [] : params;\n // Coinbase Wallet Requests\n const id = this._relayEventManager.makeRequestId();\n const result = await this._sendRequestAsync({\n method,\n params: newParams,\n jsonrpc: \"2.0\",\n id,\n });\n return result.result;\n }\n async scanQRCode(match) {\n const relay = await this.initializeRelay();\n const res = await relay.scanQRCode((0, util_1.ensureRegExpString)(match)).promise;\n if (typeof res.result !== \"string\") {\n throw new Error(\"result was not a string\");\n }\n return res.result;\n }\n async genericRequest(data, action) {\n const relay = await this.initializeRelay();\n const res = await relay.genericRequest(data, action).promise;\n if (typeof res.result !== \"string\") {\n throw new Error(\"result was not a string\");\n }\n return res.result;\n }\n async selectProvider(providerOptions) {\n const relay = await this.initializeRelay();\n const res = await relay.selectProvider(providerOptions).promise;\n if (typeof res.result !== \"string\") {\n throw new Error(\"result was not a string\");\n }\n return res.result;\n }\n supportsSubscriptions() {\n return false;\n }\n subscribe() {\n throw new Error(\"Subscriptions are not supported\");\n }\n unsubscribe() {\n throw new Error(\"Subscriptions are not supported\");\n }\n disconnect() {\n return true;\n }\n _sendRequest(request) {\n const response = {\n jsonrpc: \"2.0\",\n id: request.id,\n };\n const { method } = request;\n response.result = this._handleSynchronousMethods(request);\n if (response.result === undefined) {\n throw new Error(`Coinbase Wallet does not support calling ${method} synchronously without ` +\n `a callback. Please provide a callback parameter to call ${method} ` +\n `asynchronously.`);\n }\n return response;\n }\n _setAddresses(addresses, isDisconnect) {\n if (!Array.isArray(addresses)) {\n throw new Error(\"addresses is not an array\");\n }\n const newAddresses = addresses.map(address => (0, util_1.ensureAddressString)(address));\n if (JSON.stringify(newAddresses) === JSON.stringify(this._addresses)) {\n return;\n }\n if (this._addresses.length > 0 &&\n this.supportsAddressSwitching === false &&\n !isDisconnect) {\n /**\n * The extension currently doesn't support switching selected wallet index\n * make sure walletlink doesn't update it's address in this case\n */\n return;\n }\n this._addresses = newAddresses;\n this.emit(\"accountsChanged\", this._addresses);\n this._storage.setItem(WalletSDKRelayAbstract_1.LOCAL_STORAGE_ADDRESSES_KEY, newAddresses.join(\" \"));\n }\n _sendRequestAsync(request) {\n return new Promise((resolve, reject) => {\n try {\n const syncResult = this._handleSynchronousMethods(request);\n if (syncResult !== undefined) {\n return resolve({\n jsonrpc: \"2.0\",\n id: request.id,\n result: syncResult,\n });\n }\n const filterPromise = this._handleAsynchronousFilterMethods(request);\n if (filterPromise !== undefined) {\n filterPromise\n .then(res => resolve(Object.assign(Object.assign({}, res), { id: request.id })))\n .catch(err => reject(err));\n return;\n }\n const subscriptionPromise = this._handleSubscriptionMethods(request);\n if (subscriptionPromise !== undefined) {\n subscriptionPromise\n .then(res => resolve({\n jsonrpc: \"2.0\",\n id: request.id,\n result: res.result,\n }))\n .catch(err => reject(err));\n return;\n }\n }\n catch (err) {\n return reject(err);\n }\n this._handleAsynchronousMethods(request)\n .then(res => res && resolve(Object.assign(Object.assign({}, res), { id: request.id })))\n .catch(err => reject(err));\n });\n }\n _sendMultipleRequestsAsync(requests) {\n return Promise.all(requests.map(r => this._sendRequestAsync(r)));\n }\n _handleSynchronousMethods(request) {\n const { method } = request;\n const params = request.params || [];\n switch (method) {\n case JSONRPC_1.JSONRPCMethod.eth_accounts:\n return this._eth_accounts();\n case JSONRPC_1.JSONRPCMethod.eth_coinbase:\n return this._eth_coinbase();\n case JSONRPC_1.JSONRPCMethod.eth_uninstallFilter:\n return this._eth_uninstallFilter(params);\n case JSONRPC_1.JSONRPCMethod.net_version:\n return this._net_version();\n case JSONRPC_1.JSONRPCMethod.eth_chainId:\n return this._eth_chainId();\n default:\n return undefined;\n }\n }\n async _handleAsynchronousMethods(request) {\n const { method } = request;\n const params = request.params || [];\n switch (method) {\n case JSONRPC_1.JSONRPCMethod.eth_requestAccounts:\n return this._eth_requestAccounts();\n case JSONRPC_1.JSONRPCMethod.eth_sign:\n return this._eth_sign(params);\n case JSONRPC_1.JSONRPCMethod.eth_ecRecover:\n return this._eth_ecRecover(params);\n case JSONRPC_1.JSONRPCMethod.personal_sign:\n return this._personal_sign(params);\n case JSONRPC_1.JSONRPCMethod.personal_ecRecover:\n return this._personal_ecRecover(params);\n case JSONRPC_1.JSONRPCMethod.eth_signTransaction:\n return this._eth_signTransaction(params);\n case JSONRPC_1.JSONRPCMethod.eth_sendRawTransaction:\n return this._eth_sendRawTransaction(params);\n case JSONRPC_1.JSONRPCMethod.eth_sendTransaction:\n return this._eth_sendTransaction(params);\n case JSONRPC_1.JSONRPCMethod.eth_signTypedData_v1:\n return this._eth_signTypedData_v1(params);\n case JSONRPC_1.JSONRPCMethod.eth_signTypedData_v2:\n return this._throwUnsupportedMethodError();\n case JSONRPC_1.JSONRPCMethod.eth_signTypedData_v3:\n return this._eth_signTypedData_v3(params);\n case JSONRPC_1.JSONRPCMethod.eth_signTypedData_v4:\n case JSONRPC_1.JSONRPCMethod.eth_signTypedData:\n return this._eth_signTypedData_v4(params);\n case JSONRPC_1.JSONRPCMethod.cbWallet_arbitrary:\n return this._cbwallet_arbitrary(params);\n case JSONRPC_1.JSONRPCMethod.wallet_addEthereumChain:\n return this._wallet_addEthereumChain(params);\n case JSONRPC_1.JSONRPCMethod.wallet_switchEthereumChain:\n return this._wallet_switchEthereumChain(params);\n case JSONRPC_1.JSONRPCMethod.wallet_watchAsset:\n return this._wallet_watchAsset(params);\n }\n const relay = await this.initializeRelay();\n return relay.makeEthereumJSONRPCRequest(request, this.jsonRpcUrl);\n }\n _handleAsynchronousFilterMethods(request) {\n const { method } = request;\n const params = request.params || [];\n switch (method) {\n case JSONRPC_1.JSONRPCMethod.eth_newFilter:\n return this._eth_newFilter(params);\n case JSONRPC_1.JSONRPCMethod.eth_newBlockFilter:\n return this._eth_newBlockFilter();\n case JSONRPC_1.JSONRPCMethod.eth_newPendingTransactionFilter:\n return this._eth_newPendingTransactionFilter();\n case JSONRPC_1.JSONRPCMethod.eth_getFilterChanges:\n return this._eth_getFilterChanges(params);\n case JSONRPC_1.JSONRPCMethod.eth_getFilterLogs:\n return this._eth_getFilterLogs(params);\n }\n return undefined;\n }\n _handleSubscriptionMethods(request) {\n switch (request.method) {\n case JSONRPC_1.JSONRPCMethod.eth_subscribe:\n case JSONRPC_1.JSONRPCMethod.eth_unsubscribe:\n return this._subscriptionManager.handleRequest(request);\n }\n return undefined;\n }\n _isKnownAddress(addressString) {\n try {\n const addressStr = (0, util_1.ensureAddressString)(addressString);\n const lowercaseAddresses = this._addresses.map(address => (0, util_1.ensureAddressString)(address));\n return lowercaseAddresses.includes(addressStr);\n }\n catch (_a) { }\n return false;\n }\n _ensureKnownAddress(addressString) {\n var _a;\n if (!this._isKnownAddress(addressString)) {\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.UNKNOWN_ADDRESS_ENCOUNTERED);\n throw new Error(\"Unknown Ethereum address\");\n }\n }\n _prepareTransactionParams(tx) {\n const fromAddress = tx.from\n ? (0, util_1.ensureAddressString)(tx.from)\n : this.selectedAddress;\n if (!fromAddress) {\n throw new Error(\"Ethereum address is unavailable\");\n }\n this._ensureKnownAddress(fromAddress);\n const toAddress = tx.to ? (0, util_1.ensureAddressString)(tx.to) : null;\n const weiValue = tx.value != null ? (0, util_1.ensureBN)(tx.value) : new bn_js_1.default(0);\n const data = tx.data ? (0, util_1.ensureBuffer)(tx.data) : Buffer.alloc(0);\n const nonce = tx.nonce != null ? (0, util_1.ensureIntNumber)(tx.nonce) : null;\n const gasPriceInWei = tx.gasPrice != null ? (0, util_1.ensureBN)(tx.gasPrice) : null;\n const maxFeePerGas = tx.maxFeePerGas != null ? (0, util_1.ensureBN)(tx.maxFeePerGas) : null;\n const maxPriorityFeePerGas = tx.maxPriorityFeePerGas != null\n ? (0, util_1.ensureBN)(tx.maxPriorityFeePerGas)\n : null;\n const gasLimit = tx.gas != null ? (0, util_1.ensureBN)(tx.gas) : null;\n const chainId = this.getChainId();\n return {\n fromAddress,\n toAddress,\n weiValue,\n data,\n nonce,\n gasPriceInWei,\n maxFeePerGas,\n maxPriorityFeePerGas,\n gasLimit,\n chainId,\n };\n }\n _isAuthorized() {\n return this._addresses.length > 0;\n }\n _requireAuthorization() {\n if (!this._isAuthorized()) {\n throw eth_rpc_errors_1.ethErrors.provider.unauthorized({});\n }\n }\n _throwUnsupportedMethodError() {\n throw eth_rpc_errors_1.ethErrors.provider.unsupportedMethod({});\n }\n async _signEthereumMessage(message, address, addPrefix, typedDataJson) {\n this._ensureKnownAddress(address);\n try {\n const relay = await this.initializeRelay();\n const res = await relay.signEthereumMessage(message, address, addPrefix, typedDataJson).promise;\n return { jsonrpc: \"2.0\", id: 0, result: res.result };\n }\n catch (err) {\n if (typeof err.message === \"string\" &&\n err.message.match(/(denied|rejected)/i)) {\n throw eth_rpc_errors_1.ethErrors.provider.userRejectedRequest(\"User denied message signature\");\n }\n throw err;\n }\n }\n async _ethereumAddressFromSignedMessage(message, signature, addPrefix) {\n const relay = await this.initializeRelay();\n const res = await relay.ethereumAddressFromSignedMessage(message, signature, addPrefix).promise;\n return { jsonrpc: \"2.0\", id: 0, result: res.result };\n }\n _eth_accounts() {\n return [...this._addresses];\n }\n _eth_coinbase() {\n return this.selectedAddress || null;\n }\n _net_version() {\n return this.getChainId().toString(10);\n }\n _eth_chainId() {\n return (0, util_1.hexStringFromIntNumber)(this.getChainId());\n }\n getChainId() {\n const chainIdStr = this._storage.getItem(DEFAULT_CHAIN_ID_KEY);\n if (!chainIdStr) {\n return (0, util_1.ensureIntNumber)(this._chainIdFromOpts);\n }\n const chainId = parseInt(chainIdStr, 10);\n return (0, util_1.ensureIntNumber)(chainId);\n }\n async _eth_requestAccounts() {\n var _a;\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.ETH_ACCOUNTS_STATE, {\n method: \"provider::_eth_requestAccounts\",\n addresses_length: this._addresses.length,\n sessionIdHash: this._relay\n ? Session_1.Session.hash(this._relay.session.id)\n : undefined,\n });\n if (this._addresses.length > 0) {\n return Promise.resolve({\n jsonrpc: \"2.0\",\n id: 0,\n result: this._addresses,\n });\n }\n let res;\n try {\n const relay = await this.initializeRelay();\n res = await relay.requestEthereumAccounts().promise;\n }\n catch (err) {\n if (typeof err.message === \"string\" &&\n err.message.match(/(denied|rejected)/i)) {\n throw eth_rpc_errors_1.ethErrors.provider.userRejectedRequest(\"User denied account authorization\");\n }\n throw err;\n }\n if (!res.result) {\n throw new Error(\"accounts received is empty\");\n }\n this._setAddresses(res.result);\n if (!(this.isLedger || this.isCoinbaseBrowser)) {\n await this.switchEthereumChain(this.getChainId());\n }\n return { jsonrpc: \"2.0\", id: 0, result: this._addresses };\n }\n _eth_sign(params) {\n this._requireAuthorization();\n const address = (0, util_1.ensureAddressString)(params[0]);\n const message = (0, util_1.ensureBuffer)(params[1]);\n return this._signEthereumMessage(message, address, false);\n }\n _eth_ecRecover(params) {\n const message = (0, util_1.ensureBuffer)(params[0]);\n const signature = (0, util_1.ensureBuffer)(params[1]);\n return this._ethereumAddressFromSignedMessage(message, signature, false);\n }\n _personal_sign(params) {\n this._requireAuthorization();\n const message = (0, util_1.ensureBuffer)(params[0]);\n const address = (0, util_1.ensureAddressString)(params[1]);\n return this._signEthereumMessage(message, address, true);\n }\n _personal_ecRecover(params) {\n const message = (0, util_1.ensureBuffer)(params[0]);\n const signature = (0, util_1.ensureBuffer)(params[1]);\n return this._ethereumAddressFromSignedMessage(message, signature, true);\n }\n async _eth_signTransaction(params) {\n this._requireAuthorization();\n const tx = this._prepareTransactionParams(params[0] || {});\n try {\n const relay = await this.initializeRelay();\n const res = await relay.signEthereumTransaction(tx).promise;\n return { jsonrpc: \"2.0\", id: 0, result: res.result };\n }\n catch (err) {\n if (typeof err.message === \"string\" &&\n err.message.match(/(denied|rejected)/i)) {\n throw eth_rpc_errors_1.ethErrors.provider.userRejectedRequest(\"User denied transaction signature\");\n }\n throw err;\n }\n }\n async _eth_sendRawTransaction(params) {\n const signedTransaction = (0, util_1.ensureBuffer)(params[0]);\n const relay = await this.initializeRelay();\n const res = await relay.submitEthereumTransaction(signedTransaction, this.getChainId()).promise;\n return { jsonrpc: \"2.0\", id: 0, result: res.result };\n }\n async _eth_sendTransaction(params) {\n this._requireAuthorization();\n const tx = this._prepareTransactionParams(params[0] || {});\n try {\n const relay = await this.initializeRelay();\n const res = await relay.signAndSubmitEthereumTransaction(tx).promise;\n return { jsonrpc: \"2.0\", id: 0, result: res.result };\n }\n catch (err) {\n if (typeof err.message === \"string\" &&\n err.message.match(/(denied|rejected)/i)) {\n throw eth_rpc_errors_1.ethErrors.provider.userRejectedRequest(\"User denied transaction signature\");\n }\n throw err;\n }\n }\n async _eth_signTypedData_v1(params) {\n this._requireAuthorization();\n const typedData = (0, util_1.ensureParsedJSONObject)(params[0]);\n const address = (0, util_1.ensureAddressString)(params[1]);\n this._ensureKnownAddress(address);\n const message = eth_eip712_util_1.default.hashForSignTypedDataLegacy({ data: typedData });\n const typedDataJSON = JSON.stringify(typedData, null, 2);\n return this._signEthereumMessage(message, address, false, typedDataJSON);\n }\n async _eth_signTypedData_v3(params) {\n this._requireAuthorization();\n const address = (0, util_1.ensureAddressString)(params[0]);\n const typedData = (0, util_1.ensureParsedJSONObject)(params[1]);\n this._ensureKnownAddress(address);\n const message = eth_eip712_util_1.default.hashForSignTypedData_v3({ data: typedData });\n const typedDataJSON = JSON.stringify(typedData, null, 2);\n return this._signEthereumMessage(message, address, false, typedDataJSON);\n }\n async _eth_signTypedData_v4(params) {\n this._requireAuthorization();\n const address = (0, util_1.ensureAddressString)(params[0]);\n const typedData = (0, util_1.ensureParsedJSONObject)(params[1]);\n this._ensureKnownAddress(address);\n const message = eth_eip712_util_1.default.hashForSignTypedData_v4({ data: typedData });\n const typedDataJSON = JSON.stringify(typedData, null, 2);\n return this._signEthereumMessage(message, address, false, typedDataJSON);\n }\n /** @deprecated */\n async _cbwallet_arbitrary(params) {\n const action = params[0];\n const data = params[1];\n if (typeof data !== \"string\") {\n throw new Error(\"parameter must be a string\");\n }\n if (typeof action !== \"object\" || action === null) {\n throw new Error(\"parameter must be an object\");\n }\n const result = await this.genericRequest(action, data);\n return { jsonrpc: \"2.0\", id: 0, result };\n }\n async _wallet_addEthereumChain(params) {\n var _a, _b, _c, _d;\n const request = params[0];\n if (((_a = request.rpcUrls) === null || _a === void 0 ? void 0 : _a.length) === 0) {\n return {\n jsonrpc: \"2.0\",\n id: 0,\n error: { code: 2, message: `please pass in at least 1 rpcUrl` },\n };\n }\n if (!request.chainName || request.chainName.trim() === \"\") {\n throw eth_rpc_errors_1.ethErrors.provider.custom({\n code: 0,\n message: \"chainName is a required field\",\n });\n }\n if (!request.nativeCurrency) {\n throw eth_rpc_errors_1.ethErrors.provider.custom({\n code: 0,\n message: \"nativeCurrency is a required field\",\n });\n }\n const chainIdNumber = parseInt(request.chainId, 16);\n const success = await this.addEthereumChain(chainIdNumber, (_b = request.rpcUrls) !== null && _b !== void 0 ? _b : [], (_c = request.blockExplorerUrls) !== null && _c !== void 0 ? _c : [], request.chainName, (_d = request.iconUrls) !== null && _d !== void 0 ? _d : [], request.nativeCurrency);\n if (success) {\n return { jsonrpc: \"2.0\", id: 0, result: null };\n }\n else {\n return {\n jsonrpc: \"2.0\",\n id: 0,\n error: { code: 2, message: `unable to add ethereum chain` },\n };\n }\n }\n async _wallet_switchEthereumChain(params) {\n const request = params[0];\n await this.switchEthereumChain(parseInt(request.chainId, 16));\n return { jsonrpc: \"2.0\", id: 0, result: null };\n }\n async _wallet_watchAsset(params) {\n const request = (Array.isArray(params) ? params[0] : params);\n if (!request.type) {\n throw eth_rpc_errors_1.ethErrors.rpc.invalidParams({\n message: \"Type is required\",\n });\n }\n if ((request === null || request === void 0 ? void 0 : request.type) !== \"ERC20\") {\n throw eth_rpc_errors_1.ethErrors.rpc.invalidParams({\n message: `Asset of type '${request.type}' is not supported`,\n });\n }\n if (!(request === null || request === void 0 ? void 0 : request.options)) {\n throw eth_rpc_errors_1.ethErrors.rpc.invalidParams({\n message: \"Options are required\",\n });\n }\n if (!(request === null || request === void 0 ? void 0 : request.options.address)) {\n throw eth_rpc_errors_1.ethErrors.rpc.invalidParams({\n message: \"Address is required\",\n });\n }\n const chainId = this.getChainId();\n const { address, symbol, image, decimals } = request.options;\n const res = await this.watchAsset(request.type, address, symbol, decimals, image, chainId);\n return { jsonrpc: \"2.0\", id: 0, result: res };\n }\n _eth_uninstallFilter(params) {\n const filterId = (0, util_1.ensureHexString)(params[0]);\n return this._filterPolyfill.uninstallFilter(filterId);\n }\n async _eth_newFilter(params) {\n const param = params[0];\n const filterId = await this._filterPolyfill.newFilter(param);\n return { jsonrpc: \"2.0\", id: 0, result: filterId };\n }\n async _eth_newBlockFilter() {\n const filterId = await this._filterPolyfill.newBlockFilter();\n return { jsonrpc: \"2.0\", id: 0, result: filterId };\n }\n async _eth_newPendingTransactionFilter() {\n const filterId = await this._filterPolyfill.newPendingTransactionFilter();\n return { jsonrpc: \"2.0\", id: 0, result: filterId };\n }\n _eth_getFilterChanges(params) {\n const filterId = (0, util_1.ensureHexString)(params[0]);\n return this._filterPolyfill.getFilterChanges(filterId);\n }\n _eth_getFilterLogs(params) {\n const filterId = (0, util_1.ensureHexString)(params[0]);\n return this._filterPolyfill.getFilterLogs(filterId);\n }\n initializeRelay() {\n if (this._relay) {\n return Promise.resolve(this._relay);\n }\n return this._relayProvider().then(relay => {\n relay.setAccountsCallback((accounts, isDisconnect) => this._setAddresses(accounts, isDisconnect));\n relay.setChainCallback((chainId, jsonRpcUrl) => {\n this.updateProviderInfo(jsonRpcUrl, parseInt(chainId, 10));\n });\n relay.setDappDefaultChainCallback(this._chainIdFromOpts);\n this._relay = relay;\n return relay;\n });\n }\n}\nexports.CoinbaseWalletProvider = CoinbaseWalletProvider;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.filterFromParam = exports.FilterPolyfill = void 0;\nconst types_1 = require(\"../types\");\nconst util_1 = require(\"../util\");\nconst TIMEOUT = 5 * 60 * 1000; // 5 minutes\nconst JSONRPC_TEMPLATE = {\n jsonrpc: \"2.0\",\n id: 0,\n};\nclass FilterPolyfill {\n constructor(provider) {\n this.logFilters = new Map(); // \n this.blockFilters = new Set(); // \n this.pendingTransactionFilters = new Set(); // \n this.cursors = new Map(); // \n this.timeouts = new Map(); // \n this.nextFilterId = (0, types_1.IntNumber)(1);\n this.provider = provider;\n }\n async newFilter(param) {\n const filter = filterFromParam(param);\n const id = this.makeFilterId();\n const cursor = await this.setInitialCursorPosition(id, filter.fromBlock);\n console.log(`Installing new log filter(${id}):`, filter, \"initial cursor position:\", cursor);\n this.logFilters.set(id, filter);\n this.setFilterTimeout(id);\n return (0, util_1.hexStringFromIntNumber)(id);\n }\n async newBlockFilter() {\n const id = this.makeFilterId();\n const cursor = await this.setInitialCursorPosition(id, \"latest\");\n console.log(`Installing new block filter (${id}) with initial cursor position:`, cursor);\n this.blockFilters.add(id);\n this.setFilterTimeout(id);\n return (0, util_1.hexStringFromIntNumber)(id);\n }\n async newPendingTransactionFilter() {\n const id = this.makeFilterId();\n const cursor = await this.setInitialCursorPosition(id, \"latest\");\n console.log(`Installing new block filter (${id}) with initial cursor position:`, cursor);\n this.pendingTransactionFilters.add(id);\n this.setFilterTimeout(id);\n return (0, util_1.hexStringFromIntNumber)(id);\n }\n uninstallFilter(filterId) {\n const id = (0, util_1.intNumberFromHexString)(filterId);\n console.log(`Uninstalling filter (${id})`);\n this.deleteFilter(id);\n return true;\n }\n getFilterChanges(filterId) {\n const id = (0, util_1.intNumberFromHexString)(filterId);\n if (this.timeouts.has(id)) {\n // extend timeout\n this.setFilterTimeout(id);\n }\n if (this.logFilters.has(id)) {\n return this.getLogFilterChanges(id);\n }\n else if (this.blockFilters.has(id)) {\n return this.getBlockFilterChanges(id);\n }\n else if (this.pendingTransactionFilters.has(id)) {\n return this.getPendingTransactionFilterChanges(id);\n }\n return Promise.resolve(filterNotFoundError());\n }\n async getFilterLogs(filterId) {\n const id = (0, util_1.intNumberFromHexString)(filterId);\n const filter = this.logFilters.get(id);\n if (!filter) {\n return filterNotFoundError();\n }\n return this.sendAsyncPromise(Object.assign(Object.assign({}, JSONRPC_TEMPLATE), { method: \"eth_getLogs\", params: [paramFromFilter(filter)] }));\n }\n makeFilterId() {\n return (0, types_1.IntNumber)(++this.nextFilterId);\n }\n sendAsyncPromise(request) {\n return new Promise((resolve, reject) => {\n this.provider.sendAsync(request, (err, response) => {\n if (err) {\n return reject(err);\n }\n if (Array.isArray(response) || response == null) {\n return reject(new Error(`unexpected response received: ${JSON.stringify(response)}`));\n }\n resolve(response);\n });\n });\n }\n deleteFilter(id) {\n console.log(`Deleting filter (${id})`);\n this.logFilters.delete(id);\n this.blockFilters.delete(id);\n this.pendingTransactionFilters.delete(id);\n this.cursors.delete(id);\n this.timeouts.delete(id);\n }\n async getLogFilterChanges(id) {\n const filter = this.logFilters.get(id);\n const cursorPosition = this.cursors.get(id);\n if (!cursorPosition || !filter) {\n return filterNotFoundError();\n }\n const currentBlockHeight = await this.getCurrentBlockHeight();\n const toBlock = filter.toBlock === \"latest\" ? currentBlockHeight : filter.toBlock;\n if (cursorPosition > currentBlockHeight) {\n return emptyResult();\n }\n if (cursorPosition > filter.toBlock) {\n return emptyResult();\n }\n console.log(`Fetching logs from ${cursorPosition} to ${toBlock} for filter ${id}`);\n const response = await this.sendAsyncPromise(Object.assign(Object.assign({}, JSONRPC_TEMPLATE), { method: \"eth_getLogs\", params: [\n paramFromFilter(Object.assign(Object.assign({}, filter), { fromBlock: cursorPosition, toBlock })),\n ] }));\n if (Array.isArray(response.result)) {\n const blocks = response.result.map(log => (0, util_1.intNumberFromHexString)(log.blockNumber || \"0x0\"));\n const highestBlock = Math.max(...blocks);\n if (highestBlock && highestBlock > cursorPosition) {\n const newCursorPosition = (0, types_1.IntNumber)(highestBlock + 1);\n console.log(`Moving cursor position for filter (${id}) from ${cursorPosition} to ${newCursorPosition}`);\n this.cursors.set(id, newCursorPosition);\n }\n }\n return response;\n }\n async getBlockFilterChanges(id) {\n const cursorPosition = this.cursors.get(id);\n if (!cursorPosition) {\n return filterNotFoundError();\n }\n const currentBlockHeight = await this.getCurrentBlockHeight();\n if (cursorPosition > currentBlockHeight) {\n return emptyResult();\n }\n console.log(`Fetching blocks from ${cursorPosition} to ${currentBlockHeight} for filter (${id})`);\n const blocks = (await Promise.all(\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n (0, util_1.range)(cursorPosition, currentBlockHeight + 1).map(i => this.getBlockHashByNumber((0, types_1.IntNumber)(i))))).filter(hash => !!hash);\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n const newCursorPosition = (0, types_1.IntNumber)(cursorPosition + blocks.length);\n console.log(`Moving cursor position for filter (${id}) from ${cursorPosition} to ${newCursorPosition}`);\n this.cursors.set(id, newCursorPosition);\n return Object.assign(Object.assign({}, JSONRPC_TEMPLATE), { result: blocks });\n }\n async getPendingTransactionFilterChanges(_id) {\n // pending transaction filters are not supported\n return Promise.resolve(emptyResult());\n }\n async setInitialCursorPosition(id, startBlock) {\n const currentBlockHeight = await this.getCurrentBlockHeight();\n const initialCursorPosition = typeof startBlock === \"number\" && startBlock > currentBlockHeight\n ? startBlock\n : currentBlockHeight;\n this.cursors.set(id, initialCursorPosition);\n return initialCursorPosition;\n }\n setFilterTimeout(id) {\n const existing = this.timeouts.get(id);\n if (existing) {\n window.clearTimeout(existing);\n }\n const timeout = window.setTimeout(() => {\n console.log(`Filter (${id}) timed out`);\n this.deleteFilter(id);\n }, TIMEOUT);\n this.timeouts.set(id, timeout);\n }\n async getCurrentBlockHeight() {\n const { result } = await this.sendAsyncPromise(Object.assign(Object.assign({}, JSONRPC_TEMPLATE), { method: \"eth_blockNumber\", params: [] }));\n return (0, util_1.intNumberFromHexString)((0, util_1.ensureHexString)(result));\n }\n async getBlockHashByNumber(blockNumber) {\n const response = await this.sendAsyncPromise(Object.assign(Object.assign({}, JSONRPC_TEMPLATE), { method: \"eth_getBlockByNumber\", params: [(0, util_1.hexStringFromIntNumber)(blockNumber), false] }));\n if (response.result && typeof response.result.hash === \"string\") {\n return (0, util_1.ensureHexString)(response.result.hash);\n }\n return null;\n }\n}\nexports.FilterPolyfill = FilterPolyfill;\nfunction filterFromParam(param) {\n return {\n fromBlock: intBlockHeightFromHexBlockHeight(param.fromBlock),\n toBlock: intBlockHeightFromHexBlockHeight(param.toBlock),\n addresses: param.address === undefined\n ? null\n : Array.isArray(param.address)\n ? param.address\n : [param.address],\n topics: param.topics || [],\n };\n}\nexports.filterFromParam = filterFromParam;\nfunction paramFromFilter(filter) {\n const param = {\n fromBlock: hexBlockHeightFromIntBlockHeight(filter.fromBlock),\n toBlock: hexBlockHeightFromIntBlockHeight(filter.toBlock),\n topics: filter.topics,\n };\n if (filter.addresses !== null) {\n param.address = filter.addresses;\n }\n return param;\n}\nfunction intBlockHeightFromHexBlockHeight(value) {\n if (value === undefined || value === \"latest\" || value === \"pending\") {\n return \"latest\";\n }\n else if (value === \"earliest\") {\n return (0, types_1.IntNumber)(0);\n }\n else if ((0, util_1.isHexString)(value)) {\n return (0, util_1.intNumberFromHexString)(value);\n }\n throw new Error(`Invalid block option: ${String(value)}`);\n}\nfunction hexBlockHeightFromIntBlockHeight(value) {\n if (value === \"latest\") {\n return value;\n }\n return (0, util_1.hexStringFromIntNumber)(value);\n}\nfunction filterNotFoundError() {\n return Object.assign(Object.assign({}, JSONRPC_TEMPLATE), { error: { code: -32000, message: \"filter not found\" } });\n}\nfunction emptyResult() {\n return Object.assign(Object.assign({}, JSONRPC_TEMPLATE), { result: [] });\n}\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.JSONRPCMethod = void 0;\nvar JSONRPCMethod;\n(function (JSONRPCMethod) {\n // synchronous or asynchronous\n JSONRPCMethod[\"eth_accounts\"] = \"eth_accounts\";\n JSONRPCMethod[\"eth_coinbase\"] = \"eth_coinbase\";\n JSONRPCMethod[\"net_version\"] = \"net_version\";\n JSONRPCMethod[\"eth_chainId\"] = \"eth_chainId\";\n JSONRPCMethod[\"eth_uninstallFilter\"] = \"eth_uninstallFilter\";\n // asynchronous only\n JSONRPCMethod[\"eth_requestAccounts\"] = \"eth_requestAccounts\";\n JSONRPCMethod[\"eth_sign\"] = \"eth_sign\";\n JSONRPCMethod[\"eth_ecRecover\"] = \"eth_ecRecover\";\n JSONRPCMethod[\"personal_sign\"] = \"personal_sign\";\n JSONRPCMethod[\"personal_ecRecover\"] = \"personal_ecRecover\";\n JSONRPCMethod[\"eth_signTransaction\"] = \"eth_signTransaction\";\n JSONRPCMethod[\"eth_sendRawTransaction\"] = \"eth_sendRawTransaction\";\n JSONRPCMethod[\"eth_sendTransaction\"] = \"eth_sendTransaction\";\n JSONRPCMethod[\"eth_signTypedData_v1\"] = \"eth_signTypedData_v1\";\n JSONRPCMethod[\"eth_signTypedData_v2\"] = \"eth_signTypedData_v2\";\n JSONRPCMethod[\"eth_signTypedData_v3\"] = \"eth_signTypedData_v3\";\n JSONRPCMethod[\"eth_signTypedData_v4\"] = \"eth_signTypedData_v4\";\n JSONRPCMethod[\"eth_signTypedData\"] = \"eth_signTypedData\";\n JSONRPCMethod[\"cbWallet_arbitrary\"] = \"walletlink_arbitrary\";\n JSONRPCMethod[\"wallet_addEthereumChain\"] = \"wallet_addEthereumChain\";\n JSONRPCMethod[\"wallet_switchEthereumChain\"] = \"wallet_switchEthereumChain\";\n JSONRPCMethod[\"wallet_watchAsset\"] = \"wallet_watchAsset\";\n // asynchronous pub/sub\n JSONRPCMethod[\"eth_subscribe\"] = \"eth_subscribe\";\n JSONRPCMethod[\"eth_unsubscribe\"] = \"eth_unsubscribe\";\n // asynchronous filter methods\n JSONRPCMethod[\"eth_newFilter\"] = \"eth_newFilter\";\n JSONRPCMethod[\"eth_newBlockFilter\"] = \"eth_newBlockFilter\";\n JSONRPCMethod[\"eth_newPendingTransactionFilter\"] = \"eth_newPendingTransactionFilter\";\n JSONRPCMethod[\"eth_getFilterChanges\"] = \"eth_getFilterChanges\";\n JSONRPCMethod[\"eth_getFilterLogs\"] = \"eth_getFilterLogs\";\n})(JSONRPCMethod = exports.JSONRPCMethod || (exports.JSONRPCMethod = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SubscriptionManager = void 0;\nconst PollingBlockTracker = require(\"eth-block-tracker\");\nconst createSubscriptionManager = require(\"eth-json-rpc-filters/subscriptionManager\");\nconst noop = () => { };\nclass SubscriptionManager {\n constructor(provider) {\n const blockTracker = new PollingBlockTracker({\n provider,\n pollingInterval: 15 * 1000,\n setSkipCacheFlag: true,\n });\n const { events, middleware } = createSubscriptionManager({\n blockTracker,\n provider,\n });\n this.events = events;\n this.subscriptionMiddleware = middleware;\n }\n async handleRequest(request) {\n const result = {};\n await this.subscriptionMiddleware(request, result, noop, noop);\n return result;\n }\n destroy() {\n this.subscriptionMiddleware.destroy();\n }\n}\nexports.SubscriptionManager = SubscriptionManager;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletSDKUI = void 0;\nconst LinkFlow_1 = require(\"../components/LinkFlow\");\nconst Snackbar_1 = require(\"../components/Snackbar\");\nconst cssReset_1 = require(\"../lib/cssReset\");\nclass WalletSDKUI {\n constructor(options) {\n this.standalone = null;\n this.attached = false;\n this.snackbar = new Snackbar_1.Snackbar({\n darkMode: options.darkMode,\n });\n this.linkFlow = new LinkFlow_1.LinkFlow({\n darkMode: options.darkMode,\n version: options.version,\n sessionId: options.session.id,\n sessionSecret: options.session.secret,\n linkAPIUrl: options.linkAPIUrl,\n connected$: options.connected$,\n chainId$: options.chainId$,\n isParentConnection: false,\n });\n }\n attach() {\n if (this.attached) {\n throw new Error(\"Coinbase Wallet SDK UI is already attached\");\n }\n const el = document.documentElement;\n const container = document.createElement(\"div\");\n container.className = \"-cbwsdk-css-reset\";\n el.appendChild(container);\n this.linkFlow.attach(container);\n this.snackbar.attach(container);\n this.attached = true;\n (0, cssReset_1.injectCssReset)();\n }\n setConnectDisabled(connectDisabled) {\n this.linkFlow.setConnectDisabled(connectDisabled);\n }\n /* istanbul ignore next */\n addEthereumChain(_options) {\n // no-op\n }\n /* istanbul ignore next */\n watchAsset(_options) {\n // no-op\n }\n /* istanbul ignore next */\n switchEthereumChain(_options) {\n // no-op\n }\n requestEthereumAccounts(options) {\n this.linkFlow.open({ onCancel: options.onCancel });\n }\n hideRequestEthereumAccounts() {\n this.linkFlow.close();\n }\n /* istanbul ignore next */\n signEthereumMessage(_) {\n // No-op\n }\n /* istanbul ignore next */\n signEthereumTransaction(_) {\n // No-op\n }\n /* istanbul ignore next */\n submitEthereumTransaction(_) {\n // No-op\n }\n /* istanbul ignore next */\n ethereumAddressFromSignedMessage(_) {\n // No-op\n }\n showConnecting(options) {\n let snackbarProps;\n if (options.isUnlinkedErrorState) {\n snackbarProps = {\n autoExpand: true,\n message: \"Connection lost\",\n menuItems: [\n {\n isRed: false,\n info: \"Reset connection\",\n svgWidth: \"10\",\n svgHeight: \"11\",\n path: \"M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z\",\n defaultFillRule: \"evenodd\",\n defaultClipRule: \"evenodd\",\n onClick: options.onResetConnection,\n },\n ],\n };\n }\n else {\n snackbarProps = {\n message: \"Confirm on phone\",\n menuItems: [\n {\n isRed: true,\n info: \"Cancel transaction\",\n svgWidth: \"11\",\n svgHeight: \"11\",\n path: \"M10.3711 1.52346L9.21775 0.370117L5.37109 4.21022L1.52444 0.370117L0.371094 1.52346L4.2112 5.37012L0.371094 9.21677L1.52444 10.3701L5.37109 6.53001L9.21775 10.3701L10.3711 9.21677L6.53099 5.37012L10.3711 1.52346Z\",\n defaultFillRule: \"inherit\",\n defaultClipRule: \"inherit\",\n onClick: options.onCancel,\n },\n {\n isRed: false,\n info: \"Reset connection\",\n svgWidth: \"10\",\n svgHeight: \"11\",\n path: \"M5.00008 0.96875C6.73133 0.96875 8.23758 1.94375 9.00008 3.375L10.0001 2.375V5.5H9.53133H7.96883H6.87508L7.80633 4.56875C7.41258 3.3875 6.31258 2.53125 5.00008 2.53125C3.76258 2.53125 2.70633 3.2875 2.25633 4.36875L0.812576 3.76875C1.50008 2.125 3.11258 0.96875 5.00008 0.96875ZM2.19375 6.43125C2.5875 7.6125 3.6875 8.46875 5 8.46875C6.2375 8.46875 7.29375 7.7125 7.74375 6.63125L9.1875 7.23125C8.5 8.875 6.8875 10.0312 5 10.0312C3.26875 10.0312 1.7625 9.05625 1 7.625L0 8.625V5.5H0.46875H2.03125H3.125L2.19375 6.43125Z\",\n defaultFillRule: \"evenodd\",\n defaultClipRule: \"evenodd\",\n onClick: options.onResetConnection,\n },\n ],\n };\n }\n return this.snackbar.presentItem(snackbarProps);\n }\n /* istanbul ignore next */\n reloadUI() {\n document.location.reload();\n }\n /* istanbul ignore next */\n inlineAccountsResponse() {\n return false;\n }\n /* istanbul ignore next */\n inlineAddEthereumChain(_chainId) {\n return false;\n }\n /* istanbul ignore next */\n inlineWatchAsset() {\n return false;\n }\n /* istanbul ignore next */\n inlineSwitchEthereumChain() {\n return false;\n }\n /* istanbul ignore next */\n setStandalone(status) {\n this.standalone = status;\n }\n /* istanbul ignore next */\n isStandalone() {\n var _a;\n return (_a = this.standalone) !== null && _a !== void 0 ? _a : false;\n }\n}\nexports.WalletSDKUI = WalletSDKUI;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletUIError = void 0;\nclass WalletUIError extends Error {\n constructor(message, errorCode) {\n super(message);\n this.message = message;\n this.errorCode = errorCode;\n }\n}\nexports.WalletUIError = WalletUIError;\nWalletUIError.UserRejectedRequest = new WalletUIError(\"User rejected request\");\nWalletUIError.SwitchEthereumChainUnsupportedChainId = new WalletUIError(\"Unsupported chainId\", 4902);\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RelayMessageType = void 0;\nvar RelayMessageType;\n(function (RelayMessageType) {\n RelayMessageType[\"SESSION_ID_REQUEST\"] = \"SESSION_ID_REQUEST\";\n RelayMessageType[\"SESSION_ID_RESPONSE\"] = \"SESSION_ID_RESPONSE\";\n RelayMessageType[\"LINKED\"] = \"LINKED\";\n RelayMessageType[\"UNLINKED\"] = \"UNLINKED\";\n RelayMessageType[\"WEB3_REQUEST\"] = \"WEB3_REQUEST\";\n RelayMessageType[\"WEB3_REQUEST_CANCELED\"] = \"WEB3_REQUEST_CANCELED\";\n RelayMessageType[\"WEB3_RESPONSE\"] = \"WEB3_RESPONSE\";\n})(RelayMessageType = exports.RelayMessageType || (exports.RelayMessageType = {}));\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Session = void 0;\nconst rxjs_1 = require(\"rxjs\");\nconst operators_1 = require(\"rxjs/operators\");\nconst sha_js_1 = require(\"sha.js\");\nconst util_1 = require(\"../util\");\nconst STORAGE_KEY_SESSION_ID = \"session:id\";\nconst STORAGE_KEY_SESSION_SECRET = \"session:secret\";\nconst STORAGE_KEY_SESSION_LINKED = \"session:linked\";\nclass Session {\n constructor(storage, id, secret, linked) {\n this._storage = storage;\n this._id = id || (0, util_1.randomBytesHex)(16);\n this._secret = secret || (0, util_1.randomBytesHex)(32);\n this._key = new sha_js_1.sha256()\n .update(`${this._id}, ${this._secret} WalletLink`) // ensure old sessions stay connected\n .digest(\"hex\");\n this._linked = !!linked;\n }\n static load(storage) {\n const id = storage.getItem(STORAGE_KEY_SESSION_ID);\n const linked = storage.getItem(STORAGE_KEY_SESSION_LINKED);\n const secret = storage.getItem(STORAGE_KEY_SESSION_SECRET);\n if (id && secret) {\n return new Session(storage, id, secret, linked === \"1\");\n }\n return null;\n }\n static get persistedSessionIdChange$() {\n return (0, rxjs_1.fromEvent)(window, \"storage\").pipe((0, operators_1.filter)(evt => evt.key === STORAGE_KEY_SESSION_ID), (0, operators_1.map)(evt => ({\n oldValue: evt.oldValue || null,\n newValue: evt.newValue || null,\n })));\n }\n /**\n * Takes in a session ID and returns the sha256 hash of it.\n * @param sessionId session ID\n */\n static hash(sessionId) {\n return new sha_js_1.sha256().update(sessionId).digest(\"hex\");\n }\n get id() {\n return this._id;\n }\n get secret() {\n return this._secret;\n }\n get key() {\n return this._key;\n }\n get linked() {\n return this._linked;\n }\n set linked(val) {\n this._linked = val;\n this.persistLinked();\n }\n save() {\n this._storage.setItem(STORAGE_KEY_SESSION_ID, this._id);\n this._storage.setItem(STORAGE_KEY_SESSION_SECRET, this._secret);\n this.persistLinked();\n return this;\n }\n persistLinked() {\n this._storage.setItem(STORAGE_KEY_SESSION_LINKED, this._linked ? \"1\" : \"0\");\n }\n}\nexports.Session = Session;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletSDKRelay = void 0;\nconst bind_decorator_1 = __importDefault(require(\"bind-decorator\"));\nconst eth_rpc_errors_1 = require(\"eth-rpc-errors\");\nconst rxjs_1 = require(\"rxjs\");\nconst operators_1 = require(\"rxjs/operators\");\nconst DiagnosticLogger_1 = require(\"../connection/DiagnosticLogger\");\nconst WalletSDKConnection_1 = require(\"../connection/WalletSDKConnection\");\nconst WalletUIError_1 = require(\"../provider/WalletUIError\");\nconst types_1 = require(\"../types\");\nconst util_1 = require(\"../util\");\nconst aes256gcm = __importStar(require(\"./aes256gcm\"));\nconst Session_1 = require(\"./Session\");\nconst WalletSDKRelayAbstract_1 = require(\"./WalletSDKRelayAbstract\");\nconst Web3Method_1 = require(\"./Web3Method\");\nconst Web3RequestCanceledMessage_1 = require(\"./Web3RequestCanceledMessage\");\nconst Web3RequestMessage_1 = require(\"./Web3RequestMessage\");\nconst Web3Response_1 = require(\"./Web3Response\");\nconst Web3ResponseMessage_1 = require(\"./Web3ResponseMessage\");\nclass WalletSDKRelay extends WalletSDKRelayAbstract_1.WalletSDKRelayAbstract {\n constructor(options) {\n var _a;\n super();\n this.accountsCallback = null;\n this.chainCallback = null;\n this.dappDefaultChainSubject = new rxjs_1.BehaviorSubject(1);\n this.dappDefaultChain = 1;\n this.appName = \"\";\n this.appLogoUrl = null;\n this.subscriptions = new rxjs_1.Subscription();\n this.linkAPIUrl = options.linkAPIUrl;\n this.storage = options.storage;\n this.options = options;\n const { session, ui, connection } = this.subscribe();\n this._session = session;\n this.connection = connection;\n this.relayEventManager = options.relayEventManager;\n if (options.diagnosticLogger && options.eventListener) {\n throw new Error(\"Can't have both eventListener and diagnosticLogger options, use only diagnosticLogger\");\n }\n if (options.eventListener) {\n this.diagnostic = {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n log: options.eventListener.onEvent,\n };\n }\n else {\n this.diagnostic = options.diagnosticLogger;\n }\n this._reloadOnDisconnect = (_a = options.reloadOnDisconnect) !== null && _a !== void 0 ? _a : true;\n this.ui = ui;\n }\n subscribe() {\n this.subscriptions.add(this.dappDefaultChainSubject.subscribe(chainId => {\n if (this.dappDefaultChain !== chainId) {\n this.dappDefaultChain = chainId;\n }\n }));\n const session = Session_1.Session.load(this.storage) || new Session_1.Session(this.storage).save();\n const connection = new WalletSDKConnection_1.WalletSDKConnection(session.id, session.key, this.linkAPIUrl, this.diagnostic);\n this.subscriptions.add(connection.sessionConfig$.subscribe({\n next: sessionConfig => {\n this.onSessionConfigChanged(sessionConfig);\n },\n error: () => {\n var _a;\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.GENERAL_ERROR, {\n message: \"error while invoking session config callback\",\n });\n },\n }));\n this.subscriptions.add(connection.incomingEvent$\n .pipe((0, operators_1.filter)(m => m.event === \"Web3Response\"))\n .subscribe({ next: this.handleIncomingEvent }));\n this.subscriptions.add(connection.linked$\n .pipe((0, operators_1.skip)(1), (0, operators_1.tap)((linked) => {\n var _a;\n this.isLinked = linked;\n const cachedAddresses = this.storage.getItem(WalletSDKRelayAbstract_1.LOCAL_STORAGE_ADDRESSES_KEY);\n if (linked) {\n // Only set linked session variable one way\n this.session.linked = linked;\n }\n this.isUnlinkedErrorState = false;\n if (cachedAddresses) {\n const addresses = cachedAddresses.split(\" \");\n const wasConnectedViaStandalone = this.storage.getItem(\"IsStandaloneSigning\") === \"true\";\n if (addresses[0] !== \"\" &&\n !linked &&\n this.session.linked &&\n !wasConnectedViaStandalone) {\n this.isUnlinkedErrorState = true;\n const sessionIdHash = this.getSessionIdHash();\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.UNLINKED_ERROR_STATE, {\n sessionIdHash,\n });\n }\n }\n }))\n .subscribe());\n // if session is marked destroyed, reset and reload\n this.subscriptions.add(connection.sessionConfig$\n .pipe((0, operators_1.filter)(c => !!c.metadata && c.metadata.__destroyed === \"1\"))\n .subscribe(() => {\n var _a;\n const alreadyDestroyed = connection.isDestroyed;\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.METADATA_DESTROYED, {\n alreadyDestroyed,\n sessionIdHash: this.getSessionIdHash(),\n });\n return this.resetAndReload();\n }));\n this.subscriptions.add(connection.sessionConfig$\n .pipe((0, operators_1.filter)(c => c.metadata && c.metadata.WalletUsername !== undefined))\n .pipe((0, operators_1.mergeMap)(c => aes256gcm.decrypt(c.metadata.WalletUsername, session.secret)))\n .subscribe({\n next: walletUsername => {\n this.storage.setItem(WalletSDKRelayAbstract_1.WALLET_USER_NAME_KEY, walletUsername);\n },\n error: () => {\n var _a;\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"username\",\n });\n },\n }));\n this.subscriptions.add(connection.sessionConfig$\n .pipe((0, operators_1.filter)(c => c.metadata && c.metadata.AppVersion !== undefined))\n .pipe((0, operators_1.mergeMap)(c => aes256gcm.decrypt(c.metadata.AppVersion, session.secret)))\n .subscribe({\n next: appVersion => {\n this.storage.setItem(WalletSDKRelayAbstract_1.APP_VERSION_KEY, appVersion);\n },\n error: () => {\n var _a;\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"appversion\",\n });\n },\n }));\n this.subscriptions.add(connection.sessionConfig$\n .pipe((0, operators_1.filter)(c => c.metadata &&\n c.metadata.ChainId !== undefined &&\n c.metadata.JsonRpcUrl !== undefined))\n .pipe((0, operators_1.mergeMap)(c => (0, rxjs_1.zip)(aes256gcm.decrypt(c.metadata.ChainId, session.secret), aes256gcm.decrypt(c.metadata.JsonRpcUrl, session.secret))))\n .pipe((0, operators_1.distinctUntilChanged)())\n .subscribe({\n next: ([chainId, jsonRpcUrl]) => {\n if (this.chainCallback) {\n this.chainCallback(chainId, jsonRpcUrl);\n }\n },\n error: () => {\n var _a;\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"chainId|jsonRpcUrl\",\n });\n },\n }));\n this.subscriptions.add(connection.sessionConfig$\n .pipe((0, operators_1.filter)(c => c.metadata && c.metadata.EthereumAddress !== undefined))\n .pipe((0, operators_1.mergeMap)(c => aes256gcm.decrypt(c.metadata.EthereumAddress, session.secret)))\n .subscribe({\n next: selectedAddress => {\n if (this.accountsCallback) {\n this.accountsCallback([selectedAddress]);\n }\n if (WalletSDKRelay.accountRequestCallbackIds.size > 0) {\n // We get the ethereum address from the metadata. If for whatever\n // reason we don't get a response via an explicit web3 message\n // we can still fulfill the eip1102 request.\n Array.from(WalletSDKRelay.accountRequestCallbackIds.values()).forEach(id => {\n const message = (0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.RequestEthereumAccountsResponse)([\n selectedAddress,\n ]),\n });\n this.invokeCallback(Object.assign(Object.assign({}, message), { id }));\n });\n WalletSDKRelay.accountRequestCallbackIds.clear();\n }\n },\n error: () => {\n var _a;\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"selectedAddress\",\n });\n },\n }));\n const ui = this.options.uiConstructor({\n linkAPIUrl: this.options.linkAPIUrl,\n version: this.options.version,\n darkMode: this.options.darkMode,\n session,\n connected$: connection.connected$,\n chainId$: this.dappDefaultChainSubject,\n });\n connection.connect();\n return { session, ui, connection };\n }\n attachUI() {\n this.ui.attach();\n }\n resetAndReload() {\n this.connection\n .setSessionMetadata(\"__destroyed\", \"1\")\n .pipe((0, operators_1.timeout)(1000), (0, operators_1.catchError)(_ => (0, rxjs_1.of)(null)))\n .subscribe(_ => {\n var _a, _b, _c;\n const isStandalone = this.ui.isStandalone();\n try {\n this.subscriptions.unsubscribe();\n }\n catch (err) {\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.GENERAL_ERROR, {\n message: \"Had error unsubscribing\",\n });\n }\n (_b = this.diagnostic) === null || _b === void 0 ? void 0 : _b.log(DiagnosticLogger_1.EVENTS.SESSION_STATE_CHANGE, {\n method: \"relay::resetAndReload\",\n sessionMetadataChange: \"__destroyed, 1\",\n sessionIdHash: this.getSessionIdHash(),\n });\n this.connection.destroy();\n /**\n * Only clear storage if the session id we have in memory matches the one on disk\n * Otherwise, in the case where we have 2 tabs, another tab might have cleared\n * storage already. In that case if we clear storage again, the user will be in\n * a state where the first tab allows the user to connect but the session that\n * was used isn't persisted. This leaves the user in a state where they aren't\n * connected to the mobile app.\n */\n const storedSession = Session_1.Session.load(this.storage);\n if ((storedSession === null || storedSession === void 0 ? void 0 : storedSession.id) === this._session.id) {\n this.storage.clear();\n }\n else if (storedSession) {\n (_c = this.diagnostic) === null || _c === void 0 ? void 0 : _c.log(DiagnosticLogger_1.EVENTS.SKIPPED_CLEARING_SESSION, {\n sessionIdHash: this.getSessionIdHash(),\n storedSessionIdHash: Session_1.Session.hash(storedSession.id),\n });\n }\n if (this._reloadOnDisconnect) {\n this.ui.reloadUI();\n return;\n }\n if (this.accountsCallback) {\n this.accountsCallback([], true);\n }\n const { session, ui, connection } = this.subscribe();\n this._session = session;\n this.connection = connection;\n this.ui = ui;\n if (isStandalone && this.ui.setStandalone)\n this.ui.setStandalone(true);\n this.attachUI();\n }, (err) => {\n var _a;\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.FAILURE, {\n method: \"relay::resetAndReload\",\n message: `failed to reset and reload with ${err}`,\n sessionIdHash: this.getSessionIdHash(),\n });\n });\n }\n setAppInfo(appName, appLogoUrl) {\n this.appName = appName;\n this.appLogoUrl = appLogoUrl;\n }\n getStorageItem(key) {\n return this.storage.getItem(key);\n }\n get session() {\n return this._session;\n }\n setStorageItem(key, value) {\n this.storage.setItem(key, value);\n }\n signEthereumMessage(message, address, addPrefix, typedDataJson) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.signEthereumMessage,\n params: {\n message: (0, util_1.hexStringFromBuffer)(message, true),\n address,\n addPrefix,\n typedDataJson: typedDataJson || null,\n },\n });\n }\n ethereumAddressFromSignedMessage(message, signature, addPrefix) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.ethereumAddressFromSignedMessage,\n params: {\n message: (0, util_1.hexStringFromBuffer)(message, true),\n signature: (0, util_1.hexStringFromBuffer)(signature, true),\n addPrefix,\n },\n });\n }\n signEthereumTransaction(params) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.signEthereumTransaction,\n params: {\n fromAddress: params.fromAddress,\n toAddress: params.toAddress,\n weiValue: (0, util_1.bigIntStringFromBN)(params.weiValue),\n data: (0, util_1.hexStringFromBuffer)(params.data, true),\n nonce: params.nonce,\n gasPriceInWei: params.gasPriceInWei\n ? (0, util_1.bigIntStringFromBN)(params.gasPriceInWei)\n : null,\n maxFeePerGas: params.gasPriceInWei\n ? (0, util_1.bigIntStringFromBN)(params.gasPriceInWei)\n : null,\n maxPriorityFeePerGas: params.gasPriceInWei\n ? (0, util_1.bigIntStringFromBN)(params.gasPriceInWei)\n : null,\n gasLimit: params.gasLimit ? (0, util_1.bigIntStringFromBN)(params.gasLimit) : null,\n chainId: params.chainId,\n shouldSubmit: false,\n },\n });\n }\n signAndSubmitEthereumTransaction(params) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.signEthereumTransaction,\n params: {\n fromAddress: params.fromAddress,\n toAddress: params.toAddress,\n weiValue: (0, util_1.bigIntStringFromBN)(params.weiValue),\n data: (0, util_1.hexStringFromBuffer)(params.data, true),\n nonce: params.nonce,\n gasPriceInWei: params.gasPriceInWei\n ? (0, util_1.bigIntStringFromBN)(params.gasPriceInWei)\n : null,\n maxFeePerGas: params.maxFeePerGas\n ? (0, util_1.bigIntStringFromBN)(params.maxFeePerGas)\n : null,\n maxPriorityFeePerGas: params.maxPriorityFeePerGas\n ? (0, util_1.bigIntStringFromBN)(params.maxPriorityFeePerGas)\n : null,\n gasLimit: params.gasLimit ? (0, util_1.bigIntStringFromBN)(params.gasLimit) : null,\n chainId: params.chainId,\n shouldSubmit: true,\n },\n });\n }\n submitEthereumTransaction(signedTransaction, chainId) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.submitEthereumTransaction,\n params: {\n signedTransaction: (0, util_1.hexStringFromBuffer)(signedTransaction, true),\n chainId,\n },\n });\n }\n scanQRCode(regExp) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.scanQRCode,\n params: { regExp },\n });\n }\n getQRCodeUrl() {\n return (0, util_1.createQrUrl)(this._session.id, this._session.secret, this.linkAPIUrl, false, this.options.version, this.dappDefaultChain);\n }\n genericRequest(data, action) {\n return this.sendRequest({\n method: Web3Method_1.Web3Method.generic,\n params: {\n action,\n data,\n },\n });\n }\n sendGenericMessage(request) {\n return this.sendRequest(request);\n }\n sendRequest(request) {\n let hideSnackbarItem = null;\n const id = (0, util_1.randomBytesHex)(8);\n const cancel = (error) => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleErrorResponse(id, request.method, error);\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n const promise = new Promise((resolve, reject) => {\n if (!this.ui.isStandalone()) {\n hideSnackbarItem = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: cancel,\n onResetConnection: this.resetAndReload, // eslint-disable-line @typescript-eslint/unbound-method\n });\n }\n this.relayEventManager.callbacks.set(id, response => {\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if (response.errorMessage) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n if (this.ui.isStandalone()) {\n this.sendRequestStandalone(id, request);\n }\n else {\n this.publishWeb3RequestEvent(id, request);\n }\n });\n return { promise, cancel };\n }\n setConnectDisabled(disabled) {\n this.ui.setConnectDisabled(disabled);\n }\n setAccountsCallback(accountsCallback) {\n this.accountsCallback = accountsCallback;\n }\n setChainCallback(chainCallback) {\n this.chainCallback = chainCallback;\n }\n setDappDefaultChainCallback(chainId) {\n this.dappDefaultChainSubject.next(chainId);\n }\n publishWeb3RequestEvent(id, request) {\n var _a;\n const message = (0, Web3RequestMessage_1.Web3RequestMessage)({ id, request });\n const storedSession = Session_1.Session.load(this.storage);\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.WEB3_REQUEST, {\n eventId: message.id,\n method: `relay::${message.request.method}`,\n sessionIdHash: this.getSessionIdHash(),\n storedSessionIdHash: storedSession ? Session_1.Session.hash(storedSession.id) : \"\",\n isSessionMismatched: ((storedSession === null || storedSession === void 0 ? void 0 : storedSession.id) !== this._session.id).toString(),\n });\n this.subscriptions.add(this.publishEvent(\"Web3Request\", message, true).subscribe({\n next: _ => {\n var _a;\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.WEB3_REQUEST_PUBLISHED, {\n eventId: message.id,\n method: `relay::${message.request.method}`,\n sessionIdHash: this.getSessionIdHash(),\n storedSessionIdHash: storedSession\n ? Session_1.Session.hash(storedSession.id)\n : \"\",\n isSessionMismatched: ((storedSession === null || storedSession === void 0 ? void 0 : storedSession.id) !== this._session.id).toString(),\n });\n },\n error: err => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id: message.id,\n response: {\n method: message.request.method,\n errorMessage: err.message,\n },\n }));\n },\n }));\n }\n publishWeb3RequestCanceledEvent(id) {\n const message = (0, Web3RequestCanceledMessage_1.Web3RequestCanceledMessage)(id);\n this.subscriptions.add(this.publishEvent(\"Web3RequestCanceled\", message, false).subscribe());\n }\n publishEvent(event, message, callWebhook) {\n const secret = this.session.secret;\n return new rxjs_1.Observable(subscriber => {\n void aes256gcm\n .encrypt(JSON.stringify(Object.assign(Object.assign({}, message), { origin: location.origin })), secret)\n .then((encrypted) => {\n subscriber.next(encrypted);\n subscriber.complete();\n });\n }).pipe((0, operators_1.mergeMap)((encrypted) => {\n return this.connection.publishEvent(event, encrypted, callWebhook);\n }));\n }\n handleIncomingEvent(event) {\n try {\n this.subscriptions.add(aes256gcm\n .decrypt(event.data, this.session.secret)\n .pipe((0, operators_1.map)(c => JSON.parse(c)))\n .subscribe({\n next: json => {\n const message = (0, Web3ResponseMessage_1.isWeb3ResponseMessage)(json) ? json : null;\n if (!message) {\n return;\n }\n this.handleWeb3ResponseMessage(message);\n },\n error: () => {\n var _a;\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.GENERAL_ERROR, {\n message: \"Had error decrypting\",\n value: \"incomingEvent\",\n });\n },\n }));\n }\n catch (_a) {\n return;\n }\n }\n handleWeb3ResponseMessage(message) {\n var _a;\n const { response } = message;\n (_a = this.diagnostic) === null || _a === void 0 ? void 0 : _a.log(DiagnosticLogger_1.EVENTS.WEB3_RESPONSE, {\n eventId: message.id,\n method: `relay::${response.method}`,\n sessionIdHash: this.getSessionIdHash(),\n });\n if ((0, Web3Response_1.isRequestEthereumAccountsResponse)(response)) {\n WalletSDKRelay.accountRequestCallbackIds.forEach(id => this.invokeCallback(Object.assign(Object.assign({}, message), { id })));\n WalletSDKRelay.accountRequestCallbackIds.clear();\n return;\n }\n this.invokeCallback(message);\n }\n handleErrorResponse(id, method, error, errorCode) {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.ErrorResponse)(method, (error !== null && error !== void 0 ? error : WalletUIError_1.WalletUIError.UserRejectedRequest).message, errorCode),\n }));\n }\n invokeCallback(message) {\n const callback = this.relayEventManager.callbacks.get(message.id);\n if (callback) {\n callback(message.response);\n this.relayEventManager.callbacks.delete(message.id);\n }\n }\n requestEthereumAccounts() {\n const request = {\n method: Web3Method_1.Web3Method.requestEthereumAccounts,\n params: {\n appName: this.appName,\n appLogoUrl: this.appLogoUrl || null,\n },\n };\n const hideSnackbarItem = null;\n const id = (0, util_1.randomBytesHex)(8);\n const cancel = (error) => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleErrorResponse(id, request.method, error);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n const promise = new Promise((resolve, reject) => {\n var _a;\n this.relayEventManager.callbacks.set(id, response => {\n this.ui.hideRequestEthereumAccounts();\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if (response.errorMessage) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n const userAgent = ((_a = window === null || window === void 0 ? void 0 : window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) || null;\n if (userAgent &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent)) {\n let location;\n try {\n if ((0, util_1.isInIFrame)() && window.top) {\n location = window.top.location;\n }\n else {\n location = window.location;\n }\n }\n catch (e) {\n location = window.location;\n }\n location.href = `https://go.cb-w.com/xoXnYwQimhb?cb_url=${encodeURIComponent(location.href)}`;\n return;\n }\n if (this.ui.inlineAccountsResponse()) {\n const onAccounts = (accounts) => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.RequestEthereumAccountsResponse)(accounts),\n }));\n };\n this.ui.requestEthereumAccounts({\n onCancel: cancel,\n onAccounts,\n });\n }\n else {\n // Error if user closes TryExtensionLinkDialog without connecting\n const err = eth_rpc_errors_1.ethErrors.provider.userRejectedRequest(\"User denied account authorization\");\n this.ui.requestEthereumAccounts({\n onCancel: () => cancel(err),\n });\n }\n WalletSDKRelay.accountRequestCallbackIds.add(id);\n if (!this.ui.inlineAccountsResponse() && !this.ui.isStandalone()) {\n this.publishWeb3RequestEvent(id, request);\n }\n });\n return { promise, cancel };\n }\n selectProvider(providerOptions) {\n const request = {\n method: Web3Method_1.Web3Method.selectProvider,\n params: {\n providerOptions,\n },\n };\n const id = (0, util_1.randomBytesHex)(8);\n const cancel = (error) => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleErrorResponse(id, request.method, error);\n };\n const promise = new Promise((resolve, reject) => {\n this.relayEventManager.callbacks.set(id, response => {\n if (response.errorMessage) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n const _cancel = (_error) => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.SelectProviderResponse)(types_1.ProviderType.Unselected),\n }));\n };\n const approve = (selectedProviderKey) => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.SelectProviderResponse)(selectedProviderKey),\n }));\n };\n if (this.ui.selectProvider)\n this.ui.selectProvider({\n onApprove: approve,\n onCancel: _cancel,\n providerOptions,\n });\n });\n return { cancel, promise };\n }\n watchAsset(type, address, symbol, decimals, image, chainId) {\n const request = {\n method: Web3Method_1.Web3Method.watchAsset,\n params: {\n type,\n options: {\n address,\n symbol,\n decimals,\n image,\n },\n chainId,\n },\n };\n let hideSnackbarItem = null;\n const id = (0, util_1.randomBytesHex)(8);\n const cancel = (error) => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleErrorResponse(id, request.method, error);\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n if (!this.ui.inlineWatchAsset()) {\n hideSnackbarItem = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: cancel,\n onResetConnection: this.resetAndReload, // eslint-disable-line @typescript-eslint/unbound-method\n });\n }\n const promise = new Promise((resolve, reject) => {\n this.relayEventManager.callbacks.set(id, response => {\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if (response.errorMessage) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n const _cancel = (_error) => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.WatchAssetReponse)(false),\n }));\n };\n const approve = () => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.WatchAssetReponse)(true),\n }));\n };\n if (this.ui.inlineWatchAsset()) {\n this.ui.watchAsset({\n onApprove: approve,\n onCancel: _cancel,\n type,\n address,\n symbol,\n decimals,\n image,\n chainId,\n });\n }\n if (!this.ui.inlineWatchAsset() && !this.ui.isStandalone()) {\n this.publishWeb3RequestEvent(id, request);\n }\n });\n return { cancel, promise };\n }\n addEthereumChain(chainId, rpcUrls, iconUrls, blockExplorerUrls, chainName, nativeCurrency) {\n const request = {\n method: Web3Method_1.Web3Method.addEthereumChain,\n params: {\n chainId,\n rpcUrls,\n blockExplorerUrls,\n chainName,\n iconUrls,\n nativeCurrency,\n },\n };\n let hideSnackbarItem = null;\n const id = (0, util_1.randomBytesHex)(8);\n const cancel = (error) => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleErrorResponse(id, request.method, error);\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n };\n if (!this.ui.inlineAddEthereumChain(chainId)) {\n hideSnackbarItem = this.ui.showConnecting({\n isUnlinkedErrorState: this.isUnlinkedErrorState,\n onCancel: cancel,\n onResetConnection: this.resetAndReload, // eslint-disable-line @typescript-eslint/unbound-method\n });\n }\n const promise = new Promise((resolve, reject) => {\n this.relayEventManager.callbacks.set(id, response => {\n hideSnackbarItem === null || hideSnackbarItem === void 0 ? void 0 : hideSnackbarItem();\n if (response.errorMessage) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n const _cancel = (_error) => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.AddEthereumChainResponse)({\n isApproved: false,\n rpcUrl: \"\",\n }),\n }));\n };\n const approve = (rpcUrl) => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.AddEthereumChainResponse)({ isApproved: true, rpcUrl }),\n }));\n };\n if (this.ui.inlineAddEthereumChain(chainId)) {\n this.ui.addEthereumChain({\n onCancel: _cancel,\n onApprove: approve,\n chainId: request.params.chainId,\n rpcUrls: request.params.rpcUrls,\n blockExplorerUrls: request.params.blockExplorerUrls,\n chainName: request.params.chainName,\n iconUrls: request.params.iconUrls,\n nativeCurrency: request.params.nativeCurrency,\n });\n }\n if (!this.ui.inlineAddEthereumChain(chainId) && !this.ui.isStandalone()) {\n this.publishWeb3RequestEvent(id, request);\n }\n });\n return { promise, cancel };\n }\n switchEthereumChain(chainId, address) {\n const request = {\n method: Web3Method_1.Web3Method.switchEthereumChain,\n params: Object.assign({ chainId }, { address }),\n };\n const id = (0, util_1.randomBytesHex)(8);\n const cancel = (error) => {\n this.publishWeb3RequestCanceledEvent(id);\n this.handleErrorResponse(id, request.method, error);\n };\n const promise = new Promise((resolve, reject) => {\n this.relayEventManager.callbacks.set(id, response => {\n if (response.errorMessage && response.errorCode) {\n return reject(eth_rpc_errors_1.ethErrors.provider.custom({\n code: response.errorCode,\n message: `Unrecognized chain ID. Try adding the chain using addEthereumChain first.`,\n }));\n }\n else if (response.errorMessage) {\n return reject(new Error(response.errorMessage));\n }\n resolve(response);\n });\n const _cancel = (error) => {\n if (typeof error === \"number\") {\n // backward compatibility\n const errorCode = error;\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.ErrorResponse)(Web3Method_1.Web3Method.switchEthereumChain, WalletUIError_1.WalletUIError.SwitchEthereumChainUnsupportedChainId.message, errorCode),\n }));\n }\n else if (error instanceof WalletUIError_1.WalletUIError) {\n this.handleErrorResponse(id, Web3Method_1.Web3Method.switchEthereumChain, error, error.errorCode);\n }\n else {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.SwitchEthereumChainResponse)({\n isApproved: false,\n rpcUrl: \"\",\n }),\n }));\n }\n };\n const approve = (rpcUrl) => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response: (0, Web3Response_1.SwitchEthereumChainResponse)({\n isApproved: true,\n rpcUrl,\n }),\n }));\n };\n this.ui.switchEthereumChain({\n onCancel: _cancel,\n onApprove: approve,\n chainId: request.params.chainId,\n address: request.params.address,\n });\n if (!this.ui.inlineSwitchEthereumChain() && !this.ui.isStandalone()) {\n this.publishWeb3RequestEvent(id, request);\n }\n });\n return { promise, cancel };\n }\n inlineAddEthereumChain(chainId) {\n return this.ui.inlineAddEthereumChain(chainId);\n }\n getSessionIdHash() {\n return Session_1.Session.hash(this._session.id);\n }\n sendRequestStandalone(id, request) {\n const _cancel = (error) => {\n this.handleErrorResponse(id, request.method, error);\n };\n const onSuccess = (response) => {\n this.handleWeb3ResponseMessage((0, Web3ResponseMessage_1.Web3ResponseMessage)({\n id,\n response,\n }));\n };\n switch (request.method) {\n case Web3Method_1.Web3Method.signEthereumMessage:\n this.ui.signEthereumMessage({\n request,\n onSuccess,\n onCancel: _cancel,\n });\n break;\n case Web3Method_1.Web3Method.signEthereumTransaction:\n this.ui.signEthereumTransaction({\n request,\n onSuccess,\n onCancel: _cancel,\n });\n break;\n case Web3Method_1.Web3Method.submitEthereumTransaction:\n this.ui.submitEthereumTransaction({\n request,\n onSuccess,\n onCancel: _cancel,\n });\n break;\n case Web3Method_1.Web3Method.ethereumAddressFromSignedMessage:\n this.ui.ethereumAddressFromSignedMessage({\n request,\n onSuccess,\n });\n break;\n default:\n _cancel();\n break;\n }\n }\n onSessionConfigChanged(_nextSessionConfig) { }\n}\nWalletSDKRelay.accountRequestCallbackIds = new Set();\n__decorate([\n bind_decorator_1.default\n], WalletSDKRelay.prototype, \"resetAndReload\", null);\n__decorate([\n bind_decorator_1.default\n], WalletSDKRelay.prototype, \"handleIncomingEvent\", null);\nexports.WalletSDKRelay = WalletSDKRelay;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletSDKRelayAbstract = exports.APP_VERSION_KEY = exports.LOCAL_STORAGE_ADDRESSES_KEY = exports.WALLET_USER_NAME_KEY = void 0;\nconst eth_rpc_errors_1 = require(\"eth-rpc-errors\");\nexports.WALLET_USER_NAME_KEY = \"walletUsername\";\nexports.LOCAL_STORAGE_ADDRESSES_KEY = \"Addresses\";\nexports.APP_VERSION_KEY = \"AppVersion\";\nclass WalletSDKRelayAbstract {\n async makeEthereumJSONRPCRequest(request, jsonRpcUrl) {\n if (!jsonRpcUrl)\n throw new Error(\"Error: No jsonRpcUrl provided\");\n return window\n .fetch(jsonRpcUrl, {\n method: \"POST\",\n body: JSON.stringify(request),\n mode: \"cors\",\n headers: { \"Content-Type\": \"application/json\" },\n })\n .then(res => res.json())\n .then(json => {\n if (!json) {\n throw eth_rpc_errors_1.ethErrors.rpc.parse({});\n }\n const response = json;\n const { error } = response;\n if (error) {\n throw (0, eth_rpc_errors_1.serializeError)(error);\n }\n return response;\n });\n }\n}\nexports.WalletSDKRelayAbstract = WalletSDKRelayAbstract;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WalletSDKRelayEventManager = void 0;\nconst util_1 = require(\"../util\");\nclass WalletSDKRelayEventManager {\n constructor() {\n this._nextRequestId = 0;\n this.callbacks = new Map();\n }\n makeRequestId() {\n // max nextId == max int32 for compatibility with mobile\n this._nextRequestId = (this._nextRequestId + 1) % 0x7fffffff;\n const id = this._nextRequestId;\n const idStr = (0, util_1.prepend0x)(id.toString(16));\n // unlikely that this will ever be an issue, but just to be safe\n const callback = this.callbacks.get(idStr);\n if (callback) {\n this.callbacks.delete(idStr);\n }\n return id;\n }\n}\nexports.WalletSDKRelayEventManager = WalletSDKRelayEventManager;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Web3Method = void 0;\nvar Web3Method;\n(function (Web3Method) {\n Web3Method[\"requestEthereumAccounts\"] = \"requestEthereumAccounts\";\n Web3Method[\"signEthereumMessage\"] = \"signEthereumMessage\";\n Web3Method[\"signEthereumTransaction\"] = \"signEthereumTransaction\";\n Web3Method[\"submitEthereumTransaction\"] = \"submitEthereumTransaction\";\n Web3Method[\"ethereumAddressFromSignedMessage\"] = \"ethereumAddressFromSignedMessage\";\n Web3Method[\"scanQRCode\"] = \"scanQRCode\";\n Web3Method[\"generic\"] = \"generic\";\n Web3Method[\"childRequestEthereumAccounts\"] = \"childRequestEthereumAccounts\";\n Web3Method[\"addEthereumChain\"] = \"addEthereumChain\";\n Web3Method[\"switchEthereumChain\"] = \"switchEthereumChain\";\n Web3Method[\"makeEthereumJSONRPCRequest\"] = \"makeEthereumJSONRPCRequest\";\n Web3Method[\"watchAsset\"] = \"watchAsset\";\n Web3Method[\"selectProvider\"] = \"selectProvider\";\n})(Web3Method = exports.Web3Method || (exports.Web3Method = {}));\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Web3RequestCanceledMessage = void 0;\nconst RelayMessage_1 = require(\"./RelayMessage\");\nfunction Web3RequestCanceledMessage(id) {\n return { type: RelayMessage_1.RelayMessageType.WEB3_REQUEST_CANCELED, id };\n}\nexports.Web3RequestCanceledMessage = Web3RequestCanceledMessage;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Web3RequestMessage = void 0;\nconst RelayMessage_1 = require(\"./RelayMessage\");\nfunction Web3RequestMessage(params) {\n return Object.assign({ type: RelayMessage_1.RelayMessageType.WEB3_REQUEST }, params);\n}\nexports.Web3RequestMessage = Web3RequestMessage;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EthereumAddressFromSignedMessageResponse = exports.SubmitEthereumTransactionResponse = exports.SignEthereumTransactionResponse = exports.SignEthereumMessageResponse = exports.isRequestEthereumAccountsResponse = exports.SelectProviderResponse = exports.WatchAssetReponse = exports.RequestEthereumAccountsResponse = exports.SwitchEthereumChainResponse = exports.AddEthereumChainResponse = exports.ErrorResponse = void 0;\nconst Web3Method_1 = require(\"./Web3Method\");\nfunction ErrorResponse(method, errorMessage, errorCode) {\n return { method, errorMessage, errorCode };\n}\nexports.ErrorResponse = ErrorResponse;\nfunction AddEthereumChainResponse(addResponse) {\n return {\n method: Web3Method_1.Web3Method.addEthereumChain,\n result: addResponse,\n };\n}\nexports.AddEthereumChainResponse = AddEthereumChainResponse;\nfunction SwitchEthereumChainResponse(switchResponse) {\n return {\n method: Web3Method_1.Web3Method.switchEthereumChain,\n result: switchResponse,\n };\n}\nexports.SwitchEthereumChainResponse = SwitchEthereumChainResponse;\nfunction RequestEthereumAccountsResponse(addresses) {\n return { method: Web3Method_1.Web3Method.requestEthereumAccounts, result: addresses };\n}\nexports.RequestEthereumAccountsResponse = RequestEthereumAccountsResponse;\nfunction WatchAssetReponse(success) {\n return { method: Web3Method_1.Web3Method.watchAsset, result: success };\n}\nexports.WatchAssetReponse = WatchAssetReponse;\nfunction SelectProviderResponse(selectedProviderKey) {\n return { method: Web3Method_1.Web3Method.selectProvider, result: selectedProviderKey };\n}\nexports.SelectProviderResponse = SelectProviderResponse;\nfunction isRequestEthereumAccountsResponse(res) {\n return res && res.method === Web3Method_1.Web3Method.requestEthereumAccounts;\n}\nexports.isRequestEthereumAccountsResponse = isRequestEthereumAccountsResponse;\nfunction SignEthereumMessageResponse(signature) {\n return { method: Web3Method_1.Web3Method.signEthereumMessage, result: signature };\n}\nexports.SignEthereumMessageResponse = SignEthereumMessageResponse;\nfunction SignEthereumTransactionResponse(signedData) {\n return { method: Web3Method_1.Web3Method.signEthereumTransaction, result: signedData };\n}\nexports.SignEthereumTransactionResponse = SignEthereumTransactionResponse;\nfunction SubmitEthereumTransactionResponse(txHash) {\n return { method: Web3Method_1.Web3Method.submitEthereumTransaction, result: txHash };\n}\nexports.SubmitEthereumTransactionResponse = SubmitEthereumTransactionResponse;\nfunction EthereumAddressFromSignedMessageResponse(address) {\n return {\n method: Web3Method_1.Web3Method.ethereumAddressFromSignedMessage,\n result: address,\n };\n}\nexports.EthereumAddressFromSignedMessageResponse = EthereumAddressFromSignedMessageResponse;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isWeb3ResponseMessage = exports.Web3ResponseMessage = void 0;\nconst RelayMessage_1 = require(\"./RelayMessage\");\nfunction Web3ResponseMessage(params) {\n return Object.assign({ type: RelayMessage_1.RelayMessageType.WEB3_RESPONSE }, params);\n}\nexports.Web3ResponseMessage = Web3ResponseMessage;\nfunction isWeb3ResponseMessage(msg) {\n return msg && msg.type === RelayMessage_1.RelayMessageType.WEB3_RESPONSE;\n}\nexports.isWeb3ResponseMessage = isWeb3ResponseMessage;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decrypt = exports.encrypt = void 0;\nconst rxjs_1 = require(\"rxjs\");\nconst util_1 = require(\"../util\");\n/**\n *\n * @param plainText string to be encrypted\n * @param secret hex representation of 32-byte secret\n * returns hex string representation of bytes in the order: initialization vector (iv),\n * auth tag, encrypted plaintext. IV is 12 bytes. Auth tag is 16 bytes. Remaining bytes are the\n * encrypted plainText.\n */\nasync function encrypt(plainText, secret) {\n if (secret.length !== 64)\n throw Error(`secret must be 256 bits`);\n const ivBytes = crypto.getRandomValues(new Uint8Array(12));\n const secretKey = await crypto.subtle.importKey(\"raw\", (0, util_1.hexStringToUint8Array)(secret), { name: \"aes-gcm\" }, false, [\"encrypt\", \"decrypt\"]);\n const enc = new TextEncoder();\n // Will return encrypted plainText with auth tag (ie MAC or checksum) appended at the end\n const encryptedResult = await window.crypto.subtle.encrypt({\n name: \"AES-GCM\",\n iv: ivBytes,\n }, secretKey, enc.encode(plainText));\n const tagLength = 16;\n const authTag = encryptedResult.slice(encryptedResult.byteLength - tagLength);\n const encryptedPlaintext = encryptedResult.slice(0, encryptedResult.byteLength - tagLength);\n const authTagBytes = new Uint8Array(authTag);\n const encryptedPlaintextBytes = new Uint8Array(encryptedPlaintext);\n const concatted = new Uint8Array([\n ...ivBytes,\n ...authTagBytes,\n ...encryptedPlaintextBytes,\n ]);\n return (0, util_1.uint8ArrayToHex)(concatted);\n}\nexports.encrypt = encrypt;\n/**\n *\n * @param cipherText hex string representation of bytes in the order: initialization vector (iv),\n * auth tag, encrypted plaintext. IV is 12 bytes. Auth tag is 16 bytes.\n * @param secret hex string representation of 32-byte secret\n *\n * TODO: Update rxjs for promises\n */\nfunction decrypt(cipherText, secret) {\n if (secret.length !== 64)\n throw Error(`secret must be 256 bits`);\n return new rxjs_1.Observable(subscriber => {\n void (async function () {\n const secretKey = await crypto.subtle.importKey(\"raw\", (0, util_1.hexStringToUint8Array)(secret), { name: \"aes-gcm\" }, false, [\"encrypt\", \"decrypt\"]);\n const encrypted = (0, util_1.hexStringToUint8Array)(cipherText);\n const ivBytes = encrypted.slice(0, 12);\n const authTagBytes = encrypted.slice(12, 28);\n const encryptedPlaintextBytes = encrypted.slice(28);\n const concattedBytes = new Uint8Array([\n ...encryptedPlaintextBytes,\n ...authTagBytes,\n ]);\n const algo = {\n name: \"AES-GCM\",\n iv: new Uint8Array(ivBytes),\n };\n try {\n const decrypted = await window.crypto.subtle.decrypt(algo, secretKey, concattedBytes);\n const decoder = new TextDecoder();\n subscriber.next(decoder.decode(decrypted));\n subscriber.complete();\n }\n catch (err) {\n subscriber.error(err);\n }\n })();\n });\n}\nexports.decrypt = decrypt;\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProviderType = exports.RegExpString = exports.IntNumber = exports.BigIntString = exports.AddressString = exports.HexString = exports.OpaqueType = void 0;\nfunction OpaqueType() {\n return (value) => value;\n}\nexports.OpaqueType = OpaqueType;\nexports.HexString = OpaqueType();\nexports.AddressString = OpaqueType();\nexports.BigIntString = OpaqueType();\nfunction IntNumber(num) {\n return Math.floor(num);\n}\nexports.IntNumber = IntNumber;\nexports.RegExpString = OpaqueType();\nvar ProviderType;\n(function (ProviderType) {\n ProviderType[\"CoinbaseWallet\"] = \"CoinbaseWallet\";\n ProviderType[\"MetaMask\"] = \"MetaMask\";\n ProviderType[\"Unselected\"] = \"\";\n})(ProviderType = exports.ProviderType || (exports.ProviderType = {}));\n","\"use strict\";\n// Copyright (c) 2018-2022 Coinbase, Inc. \n// Licensed under the Apache License, version 2.0\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isInIFrame = exports.createQrUrl = exports.getFavicon = exports.range = exports.isBigNumber = exports.ensureParsedJSONObject = exports.ensureBN = exports.ensureRegExpString = exports.ensureIntNumber = exports.ensureBuffer = exports.ensureAddressString = exports.ensureEvenLengthHexString = exports.ensureHexString = exports.isHexString = exports.prepend0x = exports.strip0x = exports.has0xPrefix = exports.hexStringFromIntNumber = exports.intNumberFromHexString = exports.bigIntStringFromBN = exports.hexStringFromBuffer = exports.hexStringToUint8Array = exports.uint8ArrayToHex = exports.randomBytesHex = void 0;\nconst bn_js_1 = __importDefault(require(\"bn.js\"));\nconst qs_1 = require(\"qs\");\nconst types_1 = require(\"./types\");\nconst INT_STRING_REGEX = /^[0-9]*$/;\nconst HEXADECIMAL_STRING_REGEX = /^[a-f0-9]*$/;\n/**\n * @param length number of bytes\n */\nfunction randomBytesHex(length) {\n return uint8ArrayToHex(crypto.getRandomValues(new Uint8Array(length)));\n}\nexports.randomBytesHex = randomBytesHex;\nfunction uint8ArrayToHex(value) {\n return [...value].map(b => b.toString(16).padStart(2, \"0\")).join(\"\");\n}\nexports.uint8ArrayToHex = uint8ArrayToHex;\nfunction hexStringToUint8Array(hexString) {\n return new Uint8Array(hexString.match(/.{1,2}/g).map(byte => parseInt(byte, 16)));\n}\nexports.hexStringToUint8Array = hexStringToUint8Array;\nfunction hexStringFromBuffer(buf, includePrefix = false) {\n const hex = buf.toString(\"hex\");\n return (0, types_1.HexString)(includePrefix ? \"0x\" + hex : hex);\n}\nexports.hexStringFromBuffer = hexStringFromBuffer;\nfunction bigIntStringFromBN(bn) {\n return (0, types_1.BigIntString)(bn.toString(10));\n}\nexports.bigIntStringFromBN = bigIntStringFromBN;\nfunction intNumberFromHexString(hex) {\n return (0, types_1.IntNumber)(new bn_js_1.default(ensureEvenLengthHexString(hex, false), 16).toNumber());\n}\nexports.intNumberFromHexString = intNumberFromHexString;\nfunction hexStringFromIntNumber(num) {\n return (0, types_1.HexString)(\"0x\" + new bn_js_1.default(num).toString(16));\n}\nexports.hexStringFromIntNumber = hexStringFromIntNumber;\nfunction has0xPrefix(str) {\n return str.startsWith(\"0x\") || str.startsWith(\"0X\");\n}\nexports.has0xPrefix = has0xPrefix;\nfunction strip0x(hex) {\n if (has0xPrefix(hex)) {\n return hex.slice(2);\n }\n return hex;\n}\nexports.strip0x = strip0x;\nfunction prepend0x(hex) {\n if (has0xPrefix(hex)) {\n return \"0x\" + hex.slice(2);\n }\n return \"0x\" + hex;\n}\nexports.prepend0x = prepend0x;\nfunction isHexString(hex) {\n if (typeof hex !== \"string\") {\n return false;\n }\n const s = strip0x(hex).toLowerCase();\n return HEXADECIMAL_STRING_REGEX.test(s);\n}\nexports.isHexString = isHexString;\nfunction ensureHexString(hex, includePrefix = false) {\n if (typeof hex === \"string\") {\n const s = strip0x(hex).toLowerCase();\n if (HEXADECIMAL_STRING_REGEX.test(s)) {\n return (0, types_1.HexString)(includePrefix ? \"0x\" + s : s);\n }\n }\n throw new Error(`\"${String(hex)}\" is not a hexadecimal string`);\n}\nexports.ensureHexString = ensureHexString;\nfunction ensureEvenLengthHexString(hex, includePrefix = false) {\n let h = ensureHexString(hex, false);\n if (h.length % 2 === 1) {\n h = (0, types_1.HexString)(\"0\" + h);\n }\n return includePrefix ? (0, types_1.HexString)(\"0x\" + h) : h;\n}\nexports.ensureEvenLengthHexString = ensureEvenLengthHexString;\nfunction ensureAddressString(str) {\n if (typeof str === \"string\") {\n const s = strip0x(str).toLowerCase();\n if (isHexString(s) && s.length === 40) {\n return (0, types_1.AddressString)(prepend0x(s));\n }\n }\n throw new Error(`Invalid Ethereum address: ${String(str)}`);\n}\nexports.ensureAddressString = ensureAddressString;\nfunction ensureBuffer(str) {\n if (Buffer.isBuffer(str)) {\n return str;\n }\n if (typeof str === \"string\") {\n if (isHexString(str)) {\n const s = ensureEvenLengthHexString(str, false);\n return Buffer.from(s, \"hex\");\n }\n else {\n return Buffer.from(str, \"utf8\");\n }\n }\n throw new Error(`Not binary data: ${String(str)}`);\n}\nexports.ensureBuffer = ensureBuffer;\nfunction ensureIntNumber(num) {\n if (typeof num === \"number\" && Number.isInteger(num)) {\n return (0, types_1.IntNumber)(num);\n }\n if (typeof num === \"string\") {\n if (INT_STRING_REGEX.test(num)) {\n return (0, types_1.IntNumber)(Number(num));\n }\n if (isHexString(num)) {\n return (0, types_1.IntNumber)(new bn_js_1.default(ensureEvenLengthHexString(num, false), 16).toNumber());\n }\n }\n throw new Error(`Not an integer: ${String(num)}`);\n}\nexports.ensureIntNumber = ensureIntNumber;\nfunction ensureRegExpString(regExp) {\n if (regExp instanceof RegExp) {\n return (0, types_1.RegExpString)(regExp.toString());\n }\n throw new Error(`Not a RegExp: ${String(regExp)}`);\n}\nexports.ensureRegExpString = ensureRegExpString;\nfunction ensureBN(val) {\n if (val !== null && (bn_js_1.default.isBN(val) || isBigNumber(val))) {\n return new bn_js_1.default(val.toString(10), 10);\n }\n if (typeof val === \"number\") {\n return new bn_js_1.default(ensureIntNumber(val));\n }\n if (typeof val === \"string\") {\n if (INT_STRING_REGEX.test(val)) {\n return new bn_js_1.default(val, 10);\n }\n if (isHexString(val)) {\n return new bn_js_1.default(ensureEvenLengthHexString(val, false), 16);\n }\n }\n throw new Error(`Not an integer: ${String(val)}`);\n}\nexports.ensureBN = ensureBN;\nfunction ensureParsedJSONObject(val) {\n if (typeof val === \"string\") {\n return JSON.parse(val);\n }\n if (typeof val === \"object\") {\n return val;\n }\n throw new Error(`Not a JSON string or an object: ${String(val)}`);\n}\nexports.ensureParsedJSONObject = ensureParsedJSONObject;\nfunction isBigNumber(val) {\n if (val == null || typeof val.constructor !== \"function\") {\n return false;\n }\n const { constructor } = val;\n return (typeof constructor.config === \"function\" &&\n typeof constructor.EUCLID === \"number\");\n}\nexports.isBigNumber = isBigNumber;\nfunction range(start, stop) {\n return Array.from({ length: stop - start }, (_, i) => start + i);\n}\nexports.range = range;\nfunction getFavicon() {\n const el = document.querySelector('link[sizes=\"192x192\"]') ||\n document.querySelector('link[sizes=\"180x180\"]') ||\n document.querySelector('link[rel=\"icon\"]') ||\n document.querySelector('link[rel=\"shortcut icon\"]');\n const { protocol, host } = document.location;\n const href = el ? el.getAttribute(\"href\") : null;\n if (!href || href.startsWith(\"javascript:\")) {\n return null;\n }\n if (href.startsWith(\"http://\") ||\n href.startsWith(\"https://\") ||\n href.startsWith(\"data:\")) {\n return href;\n }\n if (href.startsWith(\"//\")) {\n return protocol + href;\n }\n return `${protocol}//${host}${href}`;\n}\nexports.getFavicon = getFavicon;\nfunction createQrUrl(sessionId, sessionSecret, serverUrl, isParentConnection, version, chainId) {\n const sessionIdKey = isParentConnection ? \"parent-id\" : \"id\";\n const query = (0, qs_1.stringify)({\n [sessionIdKey]: sessionId,\n secret: sessionSecret,\n server: serverUrl,\n v: version,\n chainId,\n });\n const qrUrl = `${serverUrl}/#/link?${query}`;\n return qrUrl;\n}\nexports.createQrUrl = createQrUrl;\nfunction isInIFrame() {\n try {\n return window.frameElement !== null;\n }\n catch (e) {\n return false;\n }\n}\nexports.isInIFrame = isInIFrame;\n","// Extracted from https://github.com/ethereumjs/ethereumjs-abi and stripped out irrelevant code\n// Original code licensed under the MIT License - Copyright (c) 2015 Alex Beregszaszi\n\nconst util = require('./util')\nconst BN = require('bn.js')\n\n// Convert from short to canonical names\n// FIXME: optimise or make this nicer?\nfunction elementaryName (name) {\n if (name.startsWith('int[')) {\n return 'int256' + name.slice(3)\n } else if (name === 'int') {\n return 'int256'\n } else if (name.startsWith('uint[')) {\n return 'uint256' + name.slice(4)\n } else if (name === 'uint') {\n return 'uint256'\n } else if (name.startsWith('fixed[')) {\n return 'fixed128x128' + name.slice(5)\n } else if (name === 'fixed') {\n return 'fixed128x128'\n } else if (name.startsWith('ufixed[')) {\n return 'ufixed128x128' + name.slice(6)\n } else if (name === 'ufixed') {\n return 'ufixed128x128'\n }\n return name\n}\n\n// Parse N from type\nfunction parseTypeN (type) {\n return parseInt(/^\\D+(\\d+)$/.exec(type)[1], 10)\n}\n\n// Parse N,M from typex\nfunction parseTypeNxM (type) {\n var tmp = /^\\D+(\\d+)x(\\d+)$/.exec(type)\n return [ parseInt(tmp[1], 10), parseInt(tmp[2], 10) ]\n}\n\n// Parse N in type[] where \"type\" can itself be an array type.\nfunction parseTypeArray (type) {\n var tmp = type.match(/(.*)\\[(.*?)\\]$/)\n if (tmp) {\n return tmp[2] === '' ? 'dynamic' : parseInt(tmp[2], 10)\n }\n return null\n}\n\nfunction parseNumber (arg) {\n var type = typeof arg\n if (type === 'string') {\n if (util.isHexString(arg)) {\n return new BN(util.stripHexPrefix(arg), 16)\n } else {\n return new BN(arg, 10)\n }\n } else if (type === 'number') {\n return new BN(arg)\n } else if (arg.toArray) {\n // assume this is a BN for the moment, replace with BN.isBN soon\n return arg\n } else {\n throw new Error('Argument is not a number')\n }\n}\n\n// Encodes a single item (can be dynamic array)\n// @returns: Buffer\nfunction encodeSingle (type, arg) {\n var size, num, ret, i\n\n if (type === 'address') {\n return encodeSingle('uint160', parseNumber(arg))\n } else if (type === 'bool') {\n return encodeSingle('uint8', arg ? 1 : 0)\n } else if (type === 'string') {\n return encodeSingle('bytes', new Buffer(arg, 'utf8'))\n } else if (isArray(type)) {\n // this part handles fixed-length ([2]) and variable length ([]) arrays\n // NOTE: we catch here all calls to arrays, that simplifies the rest\n if (typeof arg.length === 'undefined') {\n throw new Error('Not an array?')\n }\n size = parseTypeArray(type)\n if (size !== 'dynamic' && size !== 0 && arg.length > size) {\n throw new Error('Elements exceed array size: ' + size)\n }\n ret = []\n type = type.slice(0, type.lastIndexOf('['))\n if (typeof arg === 'string') {\n arg = JSON.parse(arg)\n }\n for (i in arg) {\n ret.push(encodeSingle(type, arg[i]))\n }\n if (size === 'dynamic') {\n var length = encodeSingle('uint256', arg.length)\n ret.unshift(length)\n }\n return Buffer.concat(ret)\n } else if (type === 'bytes') {\n arg = new Buffer(arg)\n\n ret = Buffer.concat([ encodeSingle('uint256', arg.length), arg ])\n\n if ((arg.length % 32) !== 0) {\n ret = Buffer.concat([ ret, util.zeros(32 - (arg.length % 32)) ])\n }\n\n return ret\n } else if (type.startsWith('bytes')) {\n size = parseTypeN(type)\n if (size < 1 || size > 32) {\n throw new Error('Invalid bytes width: ' + size)\n }\n\n return util.setLengthRight(arg, 32)\n } else if (type.startsWith('uint')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid uint width: ' + size)\n }\n\n num = parseNumber(arg)\n if (num.bitLength() > size) {\n throw new Error('Supplied uint exceeds width: ' + size + ' vs ' + num.bitLength())\n }\n\n if (num < 0) {\n throw new Error('Supplied uint is negative')\n }\n\n return num.toArrayLike(Buffer, 'be', 32)\n } else if (type.startsWith('int')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid int width: ' + size)\n }\n\n num = parseNumber(arg)\n if (num.bitLength() > size) {\n throw new Error('Supplied int exceeds width: ' + size + ' vs ' + num.bitLength())\n }\n\n return num.toTwos(256).toArrayLike(Buffer, 'be', 32)\n } else if (type.startsWith('ufixed')) {\n size = parseTypeNxM(type)\n\n num = parseNumber(arg)\n\n if (num < 0) {\n throw new Error('Supplied ufixed is negative')\n }\n\n return encodeSingle('uint256', num.mul(new BN(2).pow(new BN(size[1]))))\n } else if (type.startsWith('fixed')) {\n size = parseTypeNxM(type)\n\n return encodeSingle('int256', parseNumber(arg).mul(new BN(2).pow(new BN(size[1]))))\n }\n\n throw new Error('Unsupported or invalid type: ' + type)\n}\n\n// Is a type dynamic?\nfunction isDynamic (type) {\n // FIXME: handle all types? I don't think anything is missing now\n return (type === 'string') || (type === 'bytes') || (parseTypeArray(type) === 'dynamic')\n}\n\n// Is a type an array?\nfunction isArray (type) {\n return type.lastIndexOf(']') === type.length - 1\n}\n\n// Encode a method/event with arguments\n// @types an array of string type names\n// @args an array of the appropriate values\nfunction rawEncode (types, values) {\n var output = []\n var data = []\n\n var headLength = 32 * types.length\n\n for (var i in types) {\n var type = elementaryName(types[i])\n var value = values[i]\n var cur = encodeSingle(type, value)\n\n // Use the head/tail method for storing dynamic data\n if (isDynamic(type)) {\n output.push(encodeSingle('uint256', headLength))\n data.push(cur)\n headLength += cur.length\n } else {\n output.push(cur)\n }\n }\n\n return Buffer.concat(output.concat(data))\n}\n\nfunction solidityPack (types, values) {\n if (types.length !== values.length) {\n throw new Error('Number of types are not matching the values')\n }\n\n var size, num\n var ret = []\n\n for (var i = 0; i < types.length; i++) {\n var type = elementaryName(types[i])\n var value = values[i]\n\n if (type === 'bytes') {\n ret.push(value)\n } else if (type === 'string') {\n ret.push(new Buffer(value, 'utf8'))\n } else if (type === 'bool') {\n ret.push(new Buffer(value ? '01' : '00', 'hex'))\n } else if (type === 'address') {\n ret.push(util.setLength(value, 20))\n } else if (type.startsWith('bytes')) {\n size = parseTypeN(type)\n if (size < 1 || size > 32) {\n throw new Error('Invalid bytes width: ' + size)\n }\n\n ret.push(util.setLengthRight(value, size))\n } else if (type.startsWith('uint')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid uint width: ' + size)\n }\n\n num = parseNumber(value)\n if (num.bitLength() > size) {\n throw new Error('Supplied uint exceeds width: ' + size + ' vs ' + num.bitLength())\n }\n\n ret.push(num.toArrayLike(Buffer, 'be', size / 8))\n } else if (type.startsWith('int')) {\n size = parseTypeN(type)\n if ((size % 8) || (size < 8) || (size > 256)) {\n throw new Error('Invalid int width: ' + size)\n }\n\n num = parseNumber(value)\n if (num.bitLength() > size) {\n throw new Error('Supplied int exceeds width: ' + size + ' vs ' + num.bitLength())\n }\n\n ret.push(num.toTwos(size).toArrayLike(Buffer, 'be', size / 8))\n } else {\n // FIXME: support all other types\n throw new Error('Unsupported or invalid type: ' + type)\n }\n }\n\n return Buffer.concat(ret)\n}\n\nfunction soliditySHA3 (types, values) {\n return util.keccak(solidityPack(types, values))\n}\n\nmodule.exports = {\n rawEncode,\n solidityPack,\n soliditySHA3\n}\n","const util = require('./util')\nconst abi = require('./abi')\n\nconst TYPED_MESSAGE_SCHEMA = {\n type: 'object',\n properties: {\n types: {\n type: 'object',\n additionalProperties: {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n name: {type: 'string'},\n type: {type: 'string'},\n },\n required: ['name', 'type'],\n },\n },\n },\n primaryType: {type: 'string'},\n domain: {type: 'object'},\n message: {type: 'object'},\n },\n required: ['types', 'primaryType', 'domain', 'message'],\n}\n\n/**\n * A collection of utility functions used for signing typed data\n */\nconst TypedDataUtils = {\n /**\n * Encodes an object by encoding and concatenating each of its members\n *\n * @param {string} primaryType - Root type\n * @param {Object} data - Object to encode\n * @param {Object} types - Type definitions\n * @returns {string} - Encoded representation of an object\n */\n encodeData (primaryType, data, types, useV4 = true) {\n const encodedTypes = ['bytes32']\n const encodedValues = [this.hashType(primaryType, types)]\n\n if(useV4) {\n const encodeField = (name, type, value) => {\n if (types[type] !== undefined) {\n return ['bytes32', value == null ?\n '0x0000000000000000000000000000000000000000000000000000000000000000' :\n util.keccak(this.encodeData(type, value, types, useV4))]\n }\n\n if(value === undefined)\n throw new Error(`missing value for field ${name} of type ${type}`)\n\n if (type === 'bytes') {\n return ['bytes32', util.keccak(value)]\n }\n\n if (type === 'string') {\n // convert string to buffer - prevents ethUtil from interpreting strings like '0xabcd' as hex\n if (typeof value === 'string') {\n value = Buffer.from(value, 'utf8')\n }\n return ['bytes32', util.keccak(value)]\n }\n\n if (type.lastIndexOf(']') === type.length - 1) {\n const parsedType = type.slice(0, type.lastIndexOf('['))\n const typeValuePairs = value.map(item =>\n encodeField(name, parsedType, item))\n return ['bytes32', util.keccak(abi.rawEncode(\n typeValuePairs.map(([type]) => type),\n typeValuePairs.map(([, value]) => value),\n ))]\n }\n\n return [type, value]\n }\n\n for (const field of types[primaryType]) {\n const [type, value] = encodeField(field.name, field.type, data[field.name])\n encodedTypes.push(type)\n encodedValues.push(value)\n }\n } else {\n for (const field of types[primaryType]) {\n let value = data[field.name]\n if (value !== undefined) {\n if (field.type === 'bytes') {\n encodedTypes.push('bytes32')\n value = util.keccak(value)\n encodedValues.push(value)\n } else if (field.type === 'string') {\n encodedTypes.push('bytes32')\n // convert string to buffer - prevents ethUtil from interpreting strings like '0xabcd' as hex\n if (typeof value === 'string') {\n value = Buffer.from(value, 'utf8')\n }\n value = util.keccak(value)\n encodedValues.push(value)\n } else if (types[field.type] !== undefined) {\n encodedTypes.push('bytes32')\n value = util.keccak(this.encodeData(field.type, value, types, useV4))\n encodedValues.push(value)\n } else if (field.type.lastIndexOf(']') === field.type.length - 1) {\n throw new Error('Arrays currently unimplemented in encodeData')\n } else {\n encodedTypes.push(field.type)\n encodedValues.push(value)\n }\n }\n }\n }\n\n return abi.rawEncode(encodedTypes, encodedValues)\n },\n\n /**\n * Encodes the type of an object by encoding a comma delimited list of its members\n *\n * @param {string} primaryType - Root type to encode\n * @param {Object} types - Type definitions\n * @returns {string} - Encoded representation of the type of an object\n */\n encodeType (primaryType, types) {\n let result = ''\n let deps = this.findTypeDependencies(primaryType, types).filter(dep => dep !== primaryType)\n deps = [primaryType].concat(deps.sort())\n for (const type of deps) {\n const children = types[type]\n if (!children) {\n throw new Error('No type definition specified: ' + type)\n }\n result += type + '(' + types[type].map(({ name, type }) => type + ' ' + name).join(',') + ')'\n }\n return result\n },\n\n /**\n * Finds all types within a type defintion object\n *\n * @param {string} primaryType - Root type\n * @param {Object} types - Type definitions\n * @param {Array} results - current set of accumulated types\n * @returns {Array} - Set of all types found in the type definition\n */\n findTypeDependencies (primaryType, types, results = []) {\n primaryType = primaryType.match(/^\\w*/)[0]\n if (results.includes(primaryType) || types[primaryType] === undefined) { return results }\n results.push(primaryType)\n for (const field of types[primaryType]) {\n for (const dep of this.findTypeDependencies(field.type, types, results)) {\n !results.includes(dep) && results.push(dep)\n }\n }\n return results\n },\n\n /**\n * Hashes an object\n *\n * @param {string} primaryType - Root type\n * @param {Object} data - Object to hash\n * @param {Object} types - Type definitions\n * @returns {Buffer} - Hash of an object\n */\n hashStruct (primaryType, data, types, useV4 = true) {\n return util.keccak(this.encodeData(primaryType, data, types, useV4))\n },\n\n /**\n * Hashes the type of an object\n *\n * @param {string} primaryType - Root type to hash\n * @param {Object} types - Type definitions\n * @returns {string} - Hash of an object\n */\n hashType (primaryType, types) {\n return util.keccak(this.encodeType(primaryType, types))\n },\n\n /**\n * Removes properties from a message object that are not defined per EIP-712\n *\n * @param {Object} data - typed message object\n * @returns {Object} - typed message object with only allowed fields\n */\n sanitizeData (data) {\n const sanitizedData = {}\n for (const key in TYPED_MESSAGE_SCHEMA.properties) {\n data[key] && (sanitizedData[key] = data[key])\n }\n if (sanitizedData.types) {\n sanitizedData.types = Object.assign({ EIP712Domain: [] }, sanitizedData.types)\n }\n return sanitizedData\n },\n\n /**\n * Returns the hash of a typed message as per EIP-712 for signing\n *\n * @param {Object} typedData - Types message data to sign\n * @returns {string} - sha3 hash for signing\n */\n hash (typedData, useV4 = true) {\n const sanitizedData = this.sanitizeData(typedData)\n const parts = [Buffer.from('1901', 'hex')]\n parts.push(this.hashStruct('EIP712Domain', sanitizedData.domain, sanitizedData.types, useV4))\n if (sanitizedData.primaryType !== 'EIP712Domain') {\n parts.push(this.hashStruct(sanitizedData.primaryType, sanitizedData.message, sanitizedData.types, useV4))\n }\n return util.keccak(Buffer.concat(parts))\n },\n}\n\nmodule.exports = {\n TYPED_MESSAGE_SCHEMA,\n TypedDataUtils,\n\n hashForSignTypedDataLegacy: function (msgParams) {\n return typedSignatureHashLegacy(msgParams.data)\n },\n\n hashForSignTypedData_v3: function (msgParams) {\n return TypedDataUtils.hash(msgParams.data, false)\n },\n\n hashForSignTypedData_v4: function (msgParams) {\n return TypedDataUtils.hash(msgParams.data)\n },\n}\n\n/**\n * @param typedData - Array of data along with types, as per EIP712.\n * @returns Buffer\n */\nfunction typedSignatureHashLegacy(typedData) {\n const error = new Error('Expect argument to be non-empty array')\n if (typeof typedData !== 'object' || !typedData.length) throw error\n\n const data = typedData.map(function (e) {\n return e.type === 'bytes' ? util.toBuffer(e.value) : e.value\n })\n const types = typedData.map(function (e) { return e.type })\n const schema = typedData.map(function (e) {\n if (!e.name) throw error\n return e.type + ' ' + e.name\n })\n\n return abi.soliditySHA3(\n ['bytes32', 'bytes32'],\n [\n abi.soliditySHA3(new Array(typedData.length).fill('string'), schema),\n abi.soliditySHA3(types, data)\n ]\n )\n}\n","// Extracted from https://github.com/ethereumjs/ethereumjs-util and stripped out irrelevant code\n// Original code licensed under the Mozilla Public License Version 2.0\n\nconst createKeccakHash = require('keccak/js')\nconst BN = require('bn.js')\n\n/**\n * Returns a buffer filled with 0s\n * @method zeros\n * @param {Number} bytes the number of bytes the buffer should be\n * @return {Buffer}\n */\nfunction zeros (bytes) {\n return Buffer.allocUnsafe(bytes).fill(0)\n}\n\n/**\n * Left Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.\n * Or it truncates the beginning if it exceeds.\n * @method setLength\n * @param {Buffer|Array} msg the value to pad\n * @param {Number} length the number of bytes the output should be\n * @param {Boolean} [right=false] whether to start padding form the left or right\n * @return {Buffer|Array}\n */\nfunction setLength (msg, length, right) {\n const buf = zeros(length)\n msg = toBuffer(msg)\n if (right) {\n if (msg.length < length) {\n msg.copy(buf)\n return buf\n }\n return msg.slice(0, length)\n } else {\n if (msg.length < length) {\n msg.copy(buf, length - msg.length)\n return buf\n }\n return msg.slice(-length)\n }\n}\n\n/**\n * Right Pads an `Array` or `Buffer` with leading zeros till it has `length` bytes.\n * Or it truncates the beginning if it exceeds.\n * @param {Buffer|Array} msg the value to pad\n * @param {Number} length the number of bytes the output should be\n * @return {Buffer|Array}\n */\nfunction setLengthRight (msg, length) {\n return setLength(msg, length, true)\n}\n\n/**\n * Attempts to turn a value into a `Buffer`. As input it supports `Buffer`, `String`, `Number`, null/undefined, `BN` and other objects with a `toArray()` method.\n * @param {*} v the value\n */\nfunction toBuffer (v) {\n if (!Buffer.isBuffer(v)) {\n if (Array.isArray(v)) {\n v = Buffer.from(v)\n } else if (typeof v === 'string') {\n if (isHexString(v)) {\n v = Buffer.from(padToEven(stripHexPrefix(v)), 'hex')\n } else {\n v = Buffer.from(v)\n }\n } else if (typeof v === 'number') {\n v = intToBuffer(v)\n } else if (v === null || v === undefined) {\n v = Buffer.allocUnsafe(0)\n } else if (BN.isBN(v)) {\n v = v.toArrayLike(Buffer)\n } else if (v.toArray) {\n // converts a BN to a Buffer\n v = Buffer.from(v.toArray())\n } else {\n throw new Error('invalid type')\n }\n }\n return v\n}\n\n/**\n * Converts a `Buffer` into a hex `String`\n * @param {Buffer} buf\n * @return {String}\n */\nfunction bufferToHex (buf) {\n buf = toBuffer(buf)\n return '0x' + buf.toString('hex')\n}\n\n/**\n * Creates Keccak hash of the input\n * @param {Buffer|Array|String|Number} a the input data\n * @param {Number} [bits=256] the Keccak width\n * @return {Buffer}\n */\nfunction keccak (a, bits) {\n a = toBuffer(a)\n if (!bits) bits = 256\n\n return createKeccakHash('keccak' + bits).update(a).digest()\n}\n\nfunction padToEven (str) {\n return str.length % 2 ? '0' + str : str\n}\n\nfunction isHexString (str) {\n return typeof str === 'string' && str.match(/^0x[0-9A-Fa-f]*$/)\n}\n\nfunction stripHexPrefix (str) {\n if (typeof str === 'string' && str.startsWith('0x')) {\n return str.slice(2)\n }\n return str\n}\n\nmodule.exports = {\n zeros,\n setLength,\n setLengthRight,\n isHexString,\n stripHexPrefix,\n toBuffer,\n bufferToHex,\n keccak\n}\n","/**\n * @fileoverview\n * - modified davidshimjs/qrcodejs library for use in node.js\n * - Using the 'QRCode for Javascript library'\n * - Fixed dataset of 'QRCode for Javascript library' for support full-spec.\n * - this library has no dependencies.\n *\n * @version 0.9.1 (2016-02-12)\n * @author davidshimjs, papnkukn\n * @see http://www.d-project.com/\n * @see http://jeromeetienne.github.com/jquery-qrcode/\n * @see https://github.com/davidshimjs/qrcodejs\n */\n\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\nfunction QR8bitByte(data) {\n this.mode = QRMode.MODE_8BIT_BYTE;\n this.data = data;\n this.parsedData = [];\n\n // Added to support UTF-8 Characters\n for (var i = 0, l = this.data.length; i < l; i++) {\n var byteArray = [];\n var code = this.data.charCodeAt(i);\n\n if (code > 0x10000) {\n byteArray[0] = 0xF0 | ((code & 0x1C0000) >>> 18);\n byteArray[1] = 0x80 | ((code & 0x3F000) >>> 12);\n byteArray[2] = 0x80 | ((code & 0xFC0) >>> 6);\n byteArray[3] = 0x80 | (code & 0x3F);\n } else if (code > 0x800) {\n byteArray[0] = 0xE0 | ((code & 0xF000) >>> 12);\n byteArray[1] = 0x80 | ((code & 0xFC0) >>> 6);\n byteArray[2] = 0x80 | (code & 0x3F);\n } else if (code > 0x80) {\n byteArray[0] = 0xC0 | ((code & 0x7C0) >>> 6);\n byteArray[1] = 0x80 | (code & 0x3F);\n } else {\n byteArray[0] = code;\n }\n\n this.parsedData.push(byteArray);\n }\n\n this.parsedData = Array.prototype.concat.apply([], this.parsedData);\n\n if (this.parsedData.length != this.data.length) {\n this.parsedData.unshift(191);\n this.parsedData.unshift(187);\n this.parsedData.unshift(239);\n }\n}\n\nQR8bitByte.prototype = {\n getLength: function (buffer) {\n return this.parsedData.length;\n },\n write: function (buffer) {\n for (var i = 0, l = this.parsedData.length; i < l; i++) {\n buffer.put(this.parsedData[i], 8);\n }\n }\n};\n\nfunction QRCodeModel(typeNumber, errorCorrectLevel) {\n this.typeNumber = typeNumber;\n this.errorCorrectLevel = errorCorrectLevel;\n this.modules = null;\n this.moduleCount = 0;\n this.dataCache = null;\n this.dataList = [];\n}\n\nQRCodeModel.prototype={addData:function(data){var newData=new QR8bitByte(data);this.dataList.push(newData);this.dataCache=null;},isDark:function(row,col){if(row<0||this.moduleCount<=row||col<0||this.moduleCount<=col){throw new Error(row+\",\"+col);}\nreturn this.modules[row][col];},getModuleCount:function(){return this.moduleCount;},make:function(){this.makeImpl(false,this.getBestMaskPattern());},makeImpl:function(test,maskPattern){this.moduleCount=this.typeNumber*4+17;this.modules=new Array(this.moduleCount);for(var row=0;row=7){this.setupTypeNumber(test);}\nif(this.dataCache==null){this.dataCache=QRCodeModel.createData(this.typeNumber,this.errorCorrectLevel,this.dataList);}\nthis.mapData(this.dataCache,maskPattern);},setupPositionProbePattern:function(row,col){for(var r=-1;r<=7;r++){if(row+r<=-1||this.moduleCount<=row+r)continue;for(var c=-1;c<=7;c++){if(col+c<=-1||this.moduleCount<=col+c)continue;if((0<=r&&r<=6&&(c==0||c==6))||(0<=c&&c<=6&&(r==0||r==6))||(2<=r&&r<=4&&2<=c&&c<=4)){this.modules[row+r][col+c]=true;}else{this.modules[row+r][col+c]=false;}}}},getBestMaskPattern:function(){var minLostPoint=0;var pattern=0;for(var i=0;i<8;i++){this.makeImpl(true,i);var lostPoint=QRUtil.getLostPoint(this);if(i==0||minLostPoint>lostPoint){minLostPoint=lostPoint;pattern=i;}}\nreturn pattern;},createMovieClip:function(target_mc,instance_name,depth){var qr_mc=target_mc.createEmptyMovieClip(instance_name,depth);var cs=1;this.make();for(var row=0;row>i)&1)==1);this.modules[Math.floor(i/3)][i%3+this.moduleCount-8-3]=mod;}\nfor(var i=0;i<18;i++){var mod=(!test&&((bits>>i)&1)==1);this.modules[i%3+this.moduleCount-8-3][Math.floor(i/3)]=mod;}},setupTypeInfo:function(test,maskPattern){var data=(this.errorCorrectLevel<<3)|maskPattern;var bits=QRUtil.getBCHTypeInfo(data);for(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<6){this.modules[i][8]=mod;}else if(i<8){this.modules[i+1][8]=mod;}else{this.modules[this.moduleCount-15+i][8]=mod;}}\nfor(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<8){this.modules[8][this.moduleCount-i-1]=mod;}else if(i<9){this.modules[8][15-i-1+1]=mod;}else{this.modules[8][15-i-1]=mod;}}\nthis.modules[this.moduleCount-8][8]=(!test);},mapData:function(data,maskPattern){var inc=-1;var row=this.moduleCount-1;var bitIndex=7;var byteIndex=0;for(var col=this.moduleCount-1;col>0;col-=2){if(col==6)col--;while(true){for(var c=0;c<2;c++){if(this.modules[row][col-c]==null){var dark=false;if(byteIndex>>bitIndex)&1)==1);}\nvar mask=QRUtil.getMask(maskPattern,row,col-c);if(mask){dark=!dark;}\nthis.modules[row][col-c]=dark;bitIndex--;if(bitIndex==-1){byteIndex++;bitIndex=7;}}}\nrow+=inc;if(row<0||this.moduleCount<=row){row-=inc;inc=-inc;break;}}}}};QRCodeModel.PAD0=0xEC;QRCodeModel.PAD1=0x11;QRCodeModel.createData=function(typeNumber,errorCorrectLevel,dataList){var rsBlocks=QRRSBlock.getRSBlocks(typeNumber,errorCorrectLevel);var buffer=new QRBitBuffer();for(var i=0;itotalDataCount*8){throw new Error(\"code length overflow. (\"\n+buffer.getLengthInBits()\n+\">\"\n+totalDataCount*8\n+\")\");}\nif(buffer.getLengthInBits()+4<=totalDataCount*8){buffer.put(0,4);}\nwhile(buffer.getLengthInBits()%8!=0){buffer.putBit(false);}\nwhile(true){if(buffer.getLengthInBits()>=totalDataCount*8){break;}\nbuffer.put(QRCodeModel.PAD0,8);if(buffer.getLengthInBits()>=totalDataCount*8){break;}\nbuffer.put(QRCodeModel.PAD1,8);}\nreturn QRCodeModel.createBytes(buffer,rsBlocks);};QRCodeModel.createBytes=function(buffer,rsBlocks){var offset=0;var maxDcCount=0;var maxEcCount=0;var dcdata=new Array(rsBlocks.length);var ecdata=new Array(rsBlocks.length);for(var r=0;r=0)?modPoly.get(modIndex):0;}}\nvar totalCodeCount=0;for(var i=0;i=0){d^=(QRUtil.G15<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G15)));}\nreturn((data<<10)|d)^QRUtil.G15_MASK;},getBCHTypeNumber:function(data){var d=data<<12;while(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)>=0){d^=(QRUtil.G18<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)));}\nreturn(data<<12)|d;},getBCHDigit:function(data){var digit=0;while(data!=0){digit++;data>>>=1;}\nreturn digit;},getPatternPosition:function(typeNumber){return QRUtil.PATTERN_POSITION_TABLE[typeNumber-1];},getMask:function(maskPattern,i,j){switch(maskPattern){case QRMaskPattern.PATTERN000:return(i+j)%2==0;case QRMaskPattern.PATTERN001:return i%2==0;case QRMaskPattern.PATTERN010:return j%3==0;case QRMaskPattern.PATTERN011:return(i+j)%3==0;case QRMaskPattern.PATTERN100:return(Math.floor(i/2)+Math.floor(j/3))%2==0;case QRMaskPattern.PATTERN101:return(i*j)%2+(i*j)%3==0;case QRMaskPattern.PATTERN110:return((i*j)%2+(i*j)%3)%2==0;case QRMaskPattern.PATTERN111:return((i*j)%3+(i+j)%2)%2==0;default:throw new Error(\"bad maskPattern:\"+maskPattern);}},getErrorCorrectPolynomial:function(errorCorrectLength){var a=new QRPolynomial([1],0);for(var i=0;i5){lostPoint+=(3+sameCount-5);}}}\nfor(var row=0;row=256){n-=255;}\nreturn QRMath.EXP_TABLE[n];},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)};for(var i=0;i<8;i++){QRMath.EXP_TABLE[i]=1<>>(7-index%8))&1)==1;},put:function(num,length){for(var i=0;i>>(length-i-1))&1)==1);}},getLengthInBits:function(){return this.length;},putBit:function(bit){var bufIndex=Math.floor(this.length/8);if(this.buffer.length<=bufIndex){this.buffer.push(0);}\nif(bit){this.buffer[bufIndex]|=(0x80>>>(this.length%8));}\nthis.length++;}};var QRCodeLimitLength=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];\n\n\n/** Constructor */\nfunction QRCode(options) {\n var instance = this;\n\n //Default options\n this.options = {\n padding: 4,\n width: 256,\n height: 256,\n typeNumber: 4,\n color: \"#000000\",\n background: \"#ffffff\",\n ecl: \"M\",\n image:{\n svg:\"\",\n width:0,\n height:0\n }\n };\n\n //In case the options is string\n if (typeof options === 'string') {\n options = {\n content: options\n };\n }\n\n //Merge options\n if (options) {\n for (var i in options) {\n this.options[i] = options[i];\n }\n }\n\n if (typeof this.options.content !== 'string') {\n throw new Error(\"Expected 'content' as string!\");\n }\n\n if (this.options.content.length === 0 /* || this.options.content.length > 7089 */) {\n throw new Error(\"Expected 'content' to be non-empty!\");\n }\n\n if (!(this.options.padding >= 0)) {\n throw new Error(\"Expected 'padding' value to be non-negative!\");\n }\n\n if (!(this.options.width > 0) || !(this.options.height > 0)) {\n throw new Error(\"Expected 'width' or 'height' value to be higher than zero!\");\n }\n\n //Gets the error correction level\n function _getErrorCorrectLevel(ecl) {\n switch (ecl) {\n case \"L\":\n return QRErrorCorrectLevel.L;\n\n case \"M\":\n return QRErrorCorrectLevel.M;\n\n case \"Q\":\n return QRErrorCorrectLevel.Q;\n\n case \"H\":\n return QRErrorCorrectLevel.H;\n\n default:\n throw new Error(\"Unknwon error correction level: \" + ecl);\n }\n }\n\n //Get type number\n function _getTypeNumber(content, ecl) {\n var length = _getUTF8Length(content);\n\n var type = 1;\n var limit = 0;\n for (var i = 0, len = QRCodeLimitLength.length; i <= len; i++) {\n var table = QRCodeLimitLength[i];\n if (!table) {\n throw new Error(\"Content too long: expected \" + limit + \" but got \" + length);\n }\n\n switch (ecl) {\n case \"L\":\n limit = table[0];\n break;\n\n case \"M\":\n limit = table[1];\n break;\n\n case \"Q\":\n limit = table[2];\n break;\n\n case \"H\":\n limit = table[3];\n break;\n\n default:\n throw new Error(\"Unknwon error correction level: \" + ecl);\n }\n\n if (length <= limit) {\n break;\n }\n\n type++;\n }\n\n if (type > QRCodeLimitLength.length) {\n throw new Error(\"Content too long\");\n }\n\n return type;\n }\n\n //Gets text length\n function _getUTF8Length(content) {\n var result = encodeURI(content).toString().replace(/\\%[0-9a-fA-F]{2}/g, 'a');\n return result.length + (result.length != content ? 3 : 0);\n }\n\n //Generate QR Code matrix\n var content = this.options.content;\n var type = _getTypeNumber(content, this.options.ecl);\n var ecl = _getErrorCorrectLevel(this.options.ecl);\n this.qrcode = new QRCodeModel(type, ecl);\n this.qrcode.addData(content);\n this.qrcode.make();\n}\n\n/** Generates QR Code as SVG image */\nQRCode.prototype.svg = function(opt) {\n var options = this.options || { };\n var modules = this.qrcode.modules;\n\n if (typeof opt == \"undefined\") {\n opt = { container: options.container || \"svg\" };\n }\n\n //Apply new lines and indents in SVG?\n var pretty = typeof options.pretty != \"undefined\" ? !!options.pretty : true;\n\n var indent = pretty ? ' ' : '';\n var EOL = pretty ? '\\r\\n' : '';\n var width = options.width;\n var height = options.height;\n var length = modules.length;\n var xsize = width / (length + 2 * options.padding);\n var ysize = height / (length + 2 * options.padding);\n\n //Join (union, merge) rectangles into one shape?\n var join = typeof options.join != \"undefined\" ? !!options.join : false;\n\n //Swap the X and Y modules, pull request #2\n var swap = typeof options.swap != \"undefined\" ? !!options.swap : false;\n\n //Apply declaration in SVG?\n var xmlDeclaration = typeof options.xmlDeclaration != \"undefined\" ? !!options.xmlDeclaration : true;\n\n //Populate with predefined shape instead of \"rect\" elements, thanks to @kkocdko\n var predefined = typeof options.predefined != \"undefined\" ? !!options.predefined : false;\n var defs = predefined ? indent + '' + EOL : '';\n\n //Background rectangle\n var bgrect = indent + '' + EOL;\n\n //Rectangles representing modules\n var modrect = '';\n var pathdata = '';\n\n for (var y = 0; y < length; y++) {\n for (var x = 0; x < length; x++) {\n var module = modules[x][y];\n if (module) {\n\n var px = (x * xsize + options.padding * xsize);\n var py = (y * ysize + options.padding * ysize);\n\n //Some users have had issues with the QR Code, thanks to @danioso for the solution\n if (swap) {\n var t = px;\n px = py;\n py = t;\n }\n\n if (join) {\n //Module as a part of svg path data, thanks to @danioso\n var w = xsize + px\n var h = ysize + py\n\n px = (Number.isInteger(px))? Number(px): px.toFixed(2);\n py = (Number.isInteger(py))? Number(py): py.toFixed(2);\n w = (Number.isInteger(w))? Number(w): w.toFixed(2);\n h = (Number.isInteger(h))? Number(h): h.toFixed(2);\n\n pathdata += ('M' + px + ',' + py + ' V' + h + ' H' + w + ' V' + py + ' H' + px + ' Z ');\n }\n else if (predefined) {\n //Module as a predefined shape, thanks to @kkocdko\n modrect += indent + '' + EOL;\n }\n else {\n //Module as rectangle element\n modrect += indent + '' + EOL;\n }\n }\n }\n }\n\n if (join) {\n modrect = indent + '';\n }\n let imgSvg = \"\";\n if(this.options.image !== undefined && this.options.image.svg){\n const imgWidth = width * this.options.image.width / 100;\n const imgHeight = height * this.options.image.height / 100;\n const imgX = (width/2) - imgWidth/2;\n const imgY = (height/2) - imgHeight/2;\n imgSvg += ``;\n imgSvg += this.options.image.svg + EOL;\n imgSvg += '';\n }\n\n var svg = \"\";\n switch (opt.container) {\n //Wrapped in SVG document\n case \"svg\":\n if (xmlDeclaration) {\n svg += '' + EOL;\n }\n svg += '' + EOL;\n svg += defs + bgrect + modrect;\n svg += imgSvg;\n svg += '';\n break;\n\n //Viewbox for responsive use in a browser, thanks to @danioso\n case \"svg-viewbox\":\n if (xmlDeclaration) {\n svg += '' + EOL;\n }\n svg += '' + EOL;\n svg += defs + bgrect + modrect;\n svg += imgSvg;\n svg += '';\n break;\n\n\n //Wrapped in group element\n case \"g\":\n svg += '' + EOL;\n svg += defs + bgrect + modrect;\n svg += imgSvg;\n svg += '';\n\n break;\n\n //Without a container\n default:\n svg += (defs + bgrect + modrect + imgSvg).replace(/^\\s+/, \"\"); //Clear indents on each line\n break;\n }\n\n return svg;\n};\n\nmodule.exports = QRCode;\n\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LIB_VERSION = void 0;\nexports.LIB_VERSION = \"3.5.3\";\n",null,"\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar Semaphore_1 = require(\"./Semaphore\");\nvar Mutex = /** @class */ (function () {\n function Mutex() {\n this._semaphore = new Semaphore_1.default(1);\n }\n Mutex.prototype.acquire = function () {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var _a, releaser;\n return tslib_1.__generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this._semaphore.acquire()];\n case 1:\n _a = _b.sent(), releaser = _a[1];\n return [2 /*return*/, releaser];\n }\n });\n });\n };\n Mutex.prototype.runExclusive = function (callback) {\n return this._semaphore.runExclusive(function () { return callback(); });\n };\n Mutex.prototype.isLocked = function () {\n return this._semaphore.isLocked();\n };\n Mutex.prototype.release = function () {\n this._semaphore.release();\n };\n return Mutex;\n}());\nexports.default = Mutex;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar tslib_1 = require(\"tslib\");\nvar Semaphore = /** @class */ (function () {\n function Semaphore(_maxConcurrency) {\n this._maxConcurrency = _maxConcurrency;\n this._queue = [];\n if (_maxConcurrency <= 0) {\n throw new Error('semaphore must be initialized to a positive value');\n }\n this._value = _maxConcurrency;\n }\n Semaphore.prototype.acquire = function () {\n var _this = this;\n var locked = this.isLocked();\n var ticket = new Promise(function (r) { return _this._queue.push(r); });\n if (!locked)\n this._dispatch();\n return ticket;\n };\n Semaphore.prototype.runExclusive = function (callback) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var _a, value, release;\n return tslib_1.__generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.acquire()];\n case 1:\n _a = _b.sent(), value = _a[0], release = _a[1];\n _b.label = 2;\n case 2:\n _b.trys.push([2, , 4, 5]);\n return [4 /*yield*/, callback(value)];\n case 3: return [2 /*return*/, _b.sent()];\n case 4:\n release();\n return [7 /*endfinally*/];\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n Semaphore.prototype.isLocked = function () {\n return this._value <= 0;\n };\n Semaphore.prototype.release = function () {\n if (this._maxConcurrency > 1) {\n throw new Error('this method is unavailabel on semaphores with concurrency > 1; use the scoped release returned by acquire instead');\n }\n if (this._currentReleaser) {\n var releaser = this._currentReleaser;\n this._currentReleaser = undefined;\n releaser();\n }\n };\n Semaphore.prototype._dispatch = function () {\n var _this = this;\n var nextConsumer = this._queue.shift();\n if (!nextConsumer)\n return;\n var released = false;\n this._currentReleaser = function () {\n if (released)\n return;\n released = true;\n _this._value++;\n _this._dispatch();\n };\n nextConsumer([this._value--, this._currentReleaser]);\n };\n return Semaphore;\n}());\nexports.default = Semaphore;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.withTimeout = exports.Semaphore = exports.Mutex = void 0;\nvar Mutex_1 = require(\"./Mutex\");\nObject.defineProperty(exports, \"Mutex\", { enumerable: true, get: function () { return Mutex_1.default; } });\nvar Semaphore_1 = require(\"./Semaphore\");\nObject.defineProperty(exports, \"Semaphore\", { enumerable: true, get: function () { return Semaphore_1.default; } });\nvar withTimeout_1 = require(\"./withTimeout\");\nObject.defineProperty(exports, \"withTimeout\", { enumerable: true, get: function () { return withTimeout_1.withTimeout; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.withTimeout = void 0;\nvar tslib_1 = require(\"tslib\");\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nfunction withTimeout(sync, timeout, timeoutError) {\n var _this = this;\n if (timeoutError === void 0) { timeoutError = new Error('timeout'); }\n return {\n acquire: function () {\n return new Promise(function (resolve, reject) { return tslib_1.__awaiter(_this, void 0, void 0, function () {\n var isTimeout, ticket, release;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n isTimeout = false;\n setTimeout(function () {\n isTimeout = true;\n reject(timeoutError);\n }, timeout);\n return [4 /*yield*/, sync.acquire()];\n case 1:\n ticket = _a.sent();\n if (isTimeout) {\n release = Array.isArray(ticket) ? ticket[1] : ticket;\n release();\n }\n else {\n resolve(ticket);\n }\n return [2 /*return*/];\n }\n });\n }); });\n },\n runExclusive: function (callback) {\n return tslib_1.__awaiter(this, void 0, void 0, function () {\n var release, ticket;\n return tslib_1.__generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n release = function () { return undefined; };\n _a.label = 1;\n case 1:\n _a.trys.push([1, , 7, 8]);\n return [4 /*yield*/, this.acquire()];\n case 2:\n ticket = _a.sent();\n if (!Array.isArray(ticket)) return [3 /*break*/, 4];\n release = ticket[1];\n return [4 /*yield*/, callback(ticket[0])];\n case 3: return [2 /*return*/, _a.sent()];\n case 4:\n release = ticket;\n return [4 /*yield*/, callback()];\n case 5: return [2 /*return*/, _a.sent()];\n case 6: return [3 /*break*/, 8];\n case 7:\n release();\n return [7 /*endfinally*/];\n case 8: return [2 /*return*/];\n }\n });\n });\n },\n release: function () {\n sync.release();\n },\n isLocked: function () { return sync.isLocked(); },\n };\n}\nexports.withTimeout = withTimeout;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar constants;\n(function (constants) {\n constants.typeOfFunction = 'function';\n constants.boolTrue = true;\n})(constants || (constants = {}));\nfunction bind(target, propertyKey, descriptor) {\n if (!descriptor || (typeof descriptor.value !== constants.typeOfFunction)) {\n throw new TypeError(\"Only methods can be decorated with @bind. <\" + propertyKey + \"> is not a method!\");\n }\n return {\n configurable: constants.boolTrue,\n get: function () {\n var bound = descriptor.value.bind(this);\n // Credits to https://github.com/andreypopp/autobind-decorator for memoizing the result of bind against a symbol on the instance.\n Object.defineProperty(this, propertyKey, {\n value: bound,\n configurable: constants.boolTrue,\n writable: constants.boolTrue\n });\n return bound;\n }\n };\n}\nexports.bind = bind;\nexports.default = bind;\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nconst processFn = (fn, opts) => function () {\n\tconst P = opts.promiseModule;\n\tconst args = new Array(arguments.length);\n\n\tfor (let i = 0; i < arguments.length; i++) {\n\t\targs[i] = arguments[i];\n\t}\n\n\treturn new P((resolve, reject) => {\n\t\tif (opts.errorFirst) {\n\t\t\targs.push(function (err, result) {\n\t\t\t\tif (opts.multiArgs) {\n\t\t\t\t\tconst results = new Array(arguments.length - 1);\n\n\t\t\t\t\tfor (let i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tresults[i - 1] = arguments[i];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tresults.unshift(err);\n\t\t\t\t\t\treject(results);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve(results);\n\t\t\t\t\t}\n\t\t\t\t} else if (err) {\n\t\t\t\t\treject(err);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(result);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\targs.push(function (result) {\n\t\t\t\tif (opts.multiArgs) {\n\t\t\t\t\tconst results = new Array(arguments.length - 1);\n\n\t\t\t\t\tfor (let i = 0; i < arguments.length; i++) {\n\t\t\t\t\t\tresults[i] = arguments[i];\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve(results);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(result);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tfn.apply(this, args);\n\t});\n};\n\nmodule.exports = (obj, opts) => {\n\topts = Object.assign({\n\t\texclude: [/.+(Sync|Stream)$/],\n\t\terrorFirst: true,\n\t\tpromiseModule: Promise\n\t}, opts);\n\n\tconst filter = key => {\n\t\tconst match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key);\n\t\treturn opts.include ? opts.include.some(match) : !opts.exclude.some(match);\n\t};\n\n\tlet ret;\n\tif (typeof obj === 'function') {\n\t\tret = function () {\n\t\t\tif (opts.excludeMain) {\n\t\t\t\treturn obj.apply(this, arguments);\n\t\t\t}\n\n\t\t\treturn processFn(obj, opts).apply(this, arguments);\n\t\t};\n\t} else {\n\t\tret = Object.create(Object.getPrototypeOf(obj));\n\t}\n\n\tfor (const key in obj) { // eslint-disable-line guard-for-in\n\t\tconst x = obj[key];\n\t\tret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x;\n\t}\n\n\treturn ret;\n};\n","const EthQuery = require('eth-query')\nconst pify = require('pify')\nconst SafeEventEmitter = require('safe-event-emitter')\n\nconst sec = 1000\n\nconst calculateSum = (accumulator, currentValue) => accumulator + currentValue\nconst blockTrackerEvents = ['sync', 'latest']\n\nclass BaseBlockTracker extends SafeEventEmitter {\n\n //\n // public\n //\n\n constructor (opts = {}) {\n super()\n // config\n this._blockResetDuration = opts.blockResetDuration || 20 * sec\n // state\n this._blockResetTimeout\n this._currentBlock = null\n this._isRunning = false\n // bind functions for internal use\n this._onNewListener = this._onNewListener.bind(this)\n this._onRemoveListener = this._onRemoveListener.bind(this)\n this._resetCurrentBlock = this._resetCurrentBlock.bind(this)\n // listen for handler changes\n this._setupInternalEvents()\n }\n\n isRunning () {\n return this._isRunning\n }\n\n getCurrentBlock () {\n return this._currentBlock\n }\n\n async getLatestBlock () {\n // return if available\n if (this._currentBlock) return this._currentBlock\n // wait for a new latest block\n const latestBlock = await new Promise(resolve => this.once('latest', resolve))\n // return newly set current block\n return latestBlock\n }\n\n // dont allow module consumer to remove our internal event listeners\n removeAllListeners (eventName) {\n // perform default behavior, preserve fn arity\n if (eventName) {\n super.removeAllListeners(eventName)\n } else {\n super.removeAllListeners()\n }\n // re-add internal events\n this._setupInternalEvents()\n // trigger stop check just in case\n this._onRemoveListener()\n }\n\n //\n // to be implemented in subclass\n //\n\n _start () {\n // default behavior is noop\n }\n\n _end () {\n // default behavior is noop\n }\n\n //\n // private\n //\n\n _setupInternalEvents () {\n // first remove listeners for idempotence\n this.removeListener('newListener', this._onNewListener)\n this.removeListener('removeListener', this._onRemoveListener)\n // then add them\n this.on('newListener', this._onNewListener)\n this.on('removeListener', this._onRemoveListener)\n }\n\n _onNewListener (eventName, handler) {\n // `newListener` is called *before* the listener is added\n if (!blockTrackerEvents.includes(eventName)) return\n this._maybeStart()\n }\n\n _onRemoveListener (eventName, handler) {\n // `removeListener` is called *after* the listener is removed\n if (this._getBlockTrackerEventCount() > 0) return\n this._maybeEnd()\n }\n\n _maybeStart () {\n if (this._isRunning) return\n this._isRunning = true\n // cancel setting latest block to stale\n this._cancelBlockResetTimeout()\n this._start()\n }\n\n _maybeEnd () {\n if (!this._isRunning) return\n this._isRunning = false\n this._setupBlockResetTimeout()\n this._end()\n }\n\n _getBlockTrackerEventCount () {\n return blockTrackerEvents\n .map(eventName => this.listenerCount(eventName))\n .reduce(calculateSum)\n }\n\n _newPotentialLatest (newBlock) {\n const currentBlock = this._currentBlock\n // only update if blok number is higher\n if (currentBlock && (hexToInt(newBlock) <= hexToInt(currentBlock))) return\n this._setCurrentBlock(newBlock)\n }\n\n _setCurrentBlock (newBlock) {\n const oldBlock = this._currentBlock\n this._currentBlock = newBlock\n this.emit('latest', newBlock)\n this.emit('sync', { oldBlock, newBlock })\n }\n\n _setupBlockResetTimeout () {\n // clear any existing timeout\n this._cancelBlockResetTimeout()\n // clear latest block when stale\n this._blockResetTimeout = setTimeout(this._resetCurrentBlock, this._blockResetDuration)\n // nodejs - dont hold process open\n if (this._blockResetTimeout.unref) {\n this._blockResetTimeout.unref()\n }\n }\n\n _cancelBlockResetTimeout () {\n clearTimeout(this._blockResetTimeout)\n }\n\n _resetCurrentBlock () {\n this._currentBlock = null\n }\n\n}\n\nmodule.exports = BaseBlockTracker\n\nfunction hexToInt(hexInt) {\n return Number.parseInt(hexInt, 16)\n}\n","const pify = require('pify')\nconst BaseBlockTracker = require('./base')\n\nconst sec = 1000\n\nclass PollingBlockTracker extends BaseBlockTracker {\n\n constructor (opts = {}) {\n // parse + validate args\n if (!opts.provider) throw new Error('PollingBlockTracker - no provider specified.')\n const pollingInterval = opts.pollingInterval || 20 * sec\n const retryTimeout = opts.retryTimeout || pollingInterval / 10\n const keepEventLoopActive = opts.keepEventLoopActive !== undefined ? opts.keepEventLoopActive : true\n const setSkipCacheFlag = opts.setSkipCacheFlag || false\n // BaseBlockTracker constructor\n super(Object.assign({\n blockResetDuration: pollingInterval,\n }, opts))\n // config\n this._provider = opts.provider\n this._pollingInterval = pollingInterval\n this._retryTimeout = retryTimeout\n this._keepEventLoopActive = keepEventLoopActive\n this._setSkipCacheFlag = setSkipCacheFlag\n }\n\n //\n // public\n //\n\n // trigger block polling\n async checkForLatestBlock () {\n await this._updateLatestBlock()\n return await this.getLatestBlock()\n }\n\n //\n // private\n //\n\n _start () {\n this._performSync().catch(err => this.emit('error', err))\n }\n\n async _performSync () {\n while (this._isRunning) {\n try {\n await this._updateLatestBlock()\n await timeout(this._pollingInterval, !this._keepEventLoopActive)\n } catch (err) {\n const newErr = new Error(`PollingBlockTracker - encountered an error while attempting to update latest block:\\n${err.stack}`)\n try {\n this.emit('error', newErr)\n } catch (emitErr) {\n console.error(newErr)\n }\n await timeout(this._retryTimeout, !this._keepEventLoopActive)\n }\n }\n }\n\n async _updateLatestBlock () {\n // fetch + set latest block\n const latestBlock = await this._fetchLatestBlock()\n this._newPotentialLatest(latestBlock)\n }\n\n async _fetchLatestBlock () {\n const req = { jsonrpc: \"2.0\", id: 1, method: 'eth_blockNumber', params: [] }\n if (this._setSkipCacheFlag) req.skipCache = true\n const res = await pify((cb) => this._provider.sendAsync(req, cb))()\n if (res.error) throw new Error(`PollingBlockTracker - encountered error fetching block:\\n${res.error}`)\n return res.result\n }\n\n}\n\nmodule.exports = PollingBlockTracker\n\nfunction timeout (duration, unref) {\n return new Promise(resolve => {\n const timoutRef = setTimeout(resolve, duration)\n // don't keep process open\n if (timoutRef.unref && unref) {\n timoutRef.unref()\n }\n })\n}\n","const BaseFilter = require('./base-filter')\n\n// tracks all results ever recorded\nclass BaseFilterWithHistory extends BaseFilter {\n\n constructor () {\n super()\n this.allResults = []\n }\n\n async update () {\n throw new Error('BaseFilterWithHistory - no update method specified')\n }\n\n addResults (newResults) {\n this.allResults = this.allResults.concat(newResults)\n super.addResults(newResults)\n }\n\n addInitialResults (newResults) {\n this.allResults = this.allResults.concat(newResults)\n super.addInitialResults(newResults)\n }\n\n getAllResults () {\n return this.allResults\n }\n\n}\n\nmodule.exports = BaseFilterWithHistory","const SafeEventEmitter = require('@metamask/safe-event-emitter').default\n\nclass BaseFilter extends SafeEventEmitter {\n\n constructor () {\n super()\n this.updates = []\n }\n\n async initialize () {}\n\n async update () {\n throw new Error('BaseFilter - no update method specified')\n }\n\n addResults (newResults) {\n this.updates = this.updates.concat(newResults)\n newResults.forEach(result => this.emit('update', result))\n }\n\n addInitialResults (newResults) {}\n\n getChangesAndClear () {\n const updates = this.updates\n this.updates = []\n return updates\n }\n \n}\n\nmodule.exports = BaseFilter\n","const BaseFilter = require('./base-filter')\nconst getBlocksForRange = require('./getBlocksForRange')\nconst { incrementHexInt } = require('./hexUtils')\n\nclass BlockFilter extends BaseFilter {\n\n constructor ({ provider, params }) {\n super()\n this.type = 'block'\n this.provider = provider\n }\n\n async update ({ oldBlock, newBlock }) {\n const toBlock = newBlock\n const fromBlock = incrementHexInt(oldBlock)\n const blockBodies = await getBlocksForRange({ provider: this.provider, fromBlock, toBlock })\n const blockHashes = blockBodies.map((block) => block.hash)\n this.addResults(blockHashes)\n }\n\n}\n\nmodule.exports = BlockFilter\n","module.exports = getBlocksForRange\n\nasync function getBlocksForRange({ provider, fromBlock, toBlock }) {\n if (!fromBlock) fromBlock = toBlock\n\n const fromBlockNumber = hexToInt(fromBlock)\n const toBlockNumber = hexToInt(toBlock)\n const blockCountToQuery = toBlockNumber - fromBlockNumber + 1\n // load all blocks from old to new (inclusive)\n const missingBlockNumbers = Array(blockCountToQuery).fill()\n .map((_,index) => fromBlockNumber + index)\n .map(intToHex)\n const blockBodies = await Promise.all(\n missingBlockNumbers.map(blockNum => query(provider, 'eth_getBlockByNumber', [blockNum, false]))\n )\n return blockBodies\n}\n\nfunction hexToInt(hexString) {\n if (hexString === undefined || hexString === null) return hexString\n return Number.parseInt(hexString, 16)\n}\n\nfunction incrementHexInt(hexString){\n if (hexString === undefined || hexString === null) return hexString\n const value = hexToInt(hexString)\n return intToHex(value + 1)\n}\n\nfunction intToHex(int) {\n if (int === undefined || int === null) return int\n const hexString = int.toString(16)\n return '0x' + hexString\n}\n\nfunction query(provider, method, params) {\n return new Promise((resolve, reject) => {\n provider.sendAsync({ id: 1, jsonrpc: '2.0', method, params }, (err, res) => {\n if (err) return reject(err)\n resolve(res.result)\n })\n })\n}\n","\nmodule.exports = {\n minBlockRef,\n maxBlockRef,\n sortBlockRefs,\n bnToHex,\n blockRefIsNumber,\n hexToInt,\n incrementHexInt,\n intToHex,\n unsafeRandomBytes,\n}\n\nfunction minBlockRef(...refs) {\n const sortedRefs = sortBlockRefs(refs)\n return sortedRefs[0]\n}\n\nfunction maxBlockRef(...refs) {\n const sortedRefs = sortBlockRefs(refs)\n return sortedRefs[sortedRefs.length-1]\n}\n\nfunction sortBlockRefs(refs) {\n return refs.sort((refA, refB) => {\n if (refA === 'latest' || refB === 'earliest') return 1\n if (refB === 'latest' || refA === 'earliest') return -1\n return hexToInt(refA) - hexToInt(refB)\n })\n}\n\nfunction bnToHex(bn) {\n return '0x' + bn.toString(16)\n}\n\nfunction blockRefIsNumber(blockRef){\n return blockRef && !['earliest', 'latest', 'pending'].includes(blockRef)\n}\n\nfunction hexToInt(hexString) {\n if (hexString === undefined || hexString === null) return hexString\n return Number.parseInt(hexString, 16)\n}\n\nfunction incrementHexInt(hexString){\n if (hexString === undefined || hexString === null) return hexString\n const value = hexToInt(hexString)\n return intToHex(value + 1)\n}\n\nfunction intToHex(int) {\n if (int === undefined || int === null) return int\n let hexString = int.toString(16)\n const needsLeftPad = hexString.length % 2\n if (needsLeftPad) hexString = '0' + hexString\n return '0x' + hexString\n}\n\nfunction unsafeRandomBytes(byteCount) {\n let result = '0x'\n for (let i = 0; i < byteCount; i++) {\n result += unsafeRandomNibble()\n result += unsafeRandomNibble()\n }\n return result\n}\n\nfunction unsafeRandomNibble() {\n return Math.floor(Math.random() * 16).toString(16)\n}\n","const Mutex = require('async-mutex').Mutex\nconst { createAsyncMiddleware } = require('json-rpc-engine')\nconst createJsonRpcMiddleware = require('eth-json-rpc-middleware/scaffold')\nconst LogFilter = require('./log-filter.js')\nconst BlockFilter = require('./block-filter.js')\nconst TxFilter = require('./tx-filter.js')\nconst { intToHex, hexToInt } = require('./hexUtils')\n\nmodule.exports = createEthFilterMiddleware\n\nfunction createEthFilterMiddleware({ blockTracker, provider }) {\n\n // create filter collection\n let filterIndex = 0\n let filters = {}\n // create update mutex\n const mutex = new Mutex()\n const waitForFree = mutexMiddlewareWrapper({ mutex })\n\n const middleware = createJsonRpcMiddleware({\n // install filters\n eth_newFilter: waitForFree(toFilterCreationMiddleware(newLogFilter)),\n eth_newBlockFilter: waitForFree(toFilterCreationMiddleware(newBlockFilter)),\n eth_newPendingTransactionFilter: waitForFree(toFilterCreationMiddleware(newPendingTransactionFilter)),\n // uninstall filters\n eth_uninstallFilter: waitForFree(toAsyncRpcMiddleware(uninstallFilterHandler)),\n // checking filter changes\n eth_getFilterChanges: waitForFree(toAsyncRpcMiddleware(getFilterChanges)),\n eth_getFilterLogs: waitForFree(toAsyncRpcMiddleware(getFilterLogs)),\n })\n\n // setup filter updating and destroy handler\n const filterUpdater = async ({ oldBlock, newBlock }) => {\n if (filters.length === 0) return\n // lock update reads\n const releaseLock = await mutex.acquire()\n try {\n // process all filters in parallel\n await Promise.all(objValues(filters).map(async (filter) => {\n try {\n await filter.update({ oldBlock, newBlock })\n } catch (err) {\n // handle each error individually so filter update errors don't affect other filters\n console.error(err)\n }\n }))\n } catch (err) {\n // log error so we don't skip the releaseLock\n console.error(err)\n }\n // unlock update reads\n releaseLock()\n }\n\n // expose filter methods directly\n middleware.newLogFilter = newLogFilter\n middleware.newBlockFilter = newBlockFilter\n middleware.newPendingTransactionFilter = newPendingTransactionFilter\n middleware.uninstallFilter = uninstallFilterHandler\n middleware.getFilterChanges = getFilterChanges\n middleware.getFilterLogs = getFilterLogs\n\n // expose destroy method for cleanup\n middleware.destroy = () => {\n uninstallAllFilters()\n }\n\n return middleware\n\n //\n // new filters\n //\n\n async function newLogFilter(params) {\n const filter = new LogFilter({ provider, params })\n const filterIndex = await installFilter(filter)\n return filter\n }\n\n async function newBlockFilter() {\n const filter = new BlockFilter({ provider })\n const filterIndex = await installFilter(filter)\n return filter\n }\n\n async function newPendingTransactionFilter() {\n const filter = new TxFilter({ provider })\n const filterIndex = await installFilter(filter)\n return filter\n }\n\n //\n // get filter changes\n //\n\n async function getFilterChanges(filterIndexHex) {\n const filterIndex = hexToInt(filterIndexHex)\n const filter = filters[filterIndex]\n if (!filter) {\n throw new Error(`No filter for index \"${filterIndex}\"`)\n }\n const results = filter.getChangesAndClear()\n return results\n }\n\n async function getFilterLogs(filterIndexHex) {\n const filterIndex = hexToInt(filterIndexHex)\n const filter = filters[filterIndex]\n if (!filter) {\n throw new Error(`No filter for index \"${filterIndex}\"`)\n }\n // only return results for log filters\n if (filter.type === 'log') {\n results = filter.getAllResults()\n } else {\n results = []\n }\n return results\n }\n\n\n //\n // remove filters\n //\n\n\n async function uninstallFilterHandler(filterIndexHex) {\n // check filter exists\n const filterIndex = hexToInt(filterIndexHex)\n const filter = filters[filterIndex]\n const result = Boolean(filter)\n // uninstall filter\n if (result) {\n await uninstallFilter(filterIndex)\n }\n return result\n }\n\n //\n // utils\n //\n\n async function installFilter(filter) {\n const prevFilterCount = objValues(filters).length\n // install filter\n const currentBlock = await blockTracker.getLatestBlock()\n await filter.initialize({ currentBlock })\n filterIndex++\n filters[filterIndex] = filter\n filter.id = filterIndex\n filter.idHex = intToHex(filterIndex)\n // update block tracker subs\n const newFilterCount = objValues(filters).length\n updateBlockTrackerSubs({ prevFilterCount, newFilterCount })\n return filterIndex\n }\n\n async function uninstallFilter(filterIndex) {\n const prevFilterCount = objValues(filters).length\n delete filters[filterIndex]\n // update block tracker subs\n const newFilterCount = objValues(filters).length\n updateBlockTrackerSubs({ prevFilterCount, newFilterCount })\n }\n\n async function uninstallAllFilters() {\n const prevFilterCount = objValues(filters).length\n filters = {}\n // update block tracker subs\n updateBlockTrackerSubs({ prevFilterCount, newFilterCount: 0 })\n }\n\n function updateBlockTrackerSubs({ prevFilterCount, newFilterCount }) {\n // subscribe\n if (prevFilterCount === 0 && newFilterCount > 0) {\n blockTracker.on('sync', filterUpdater)\n return\n }\n // unsubscribe\n if (prevFilterCount > 0 && newFilterCount === 0) {\n blockTracker.removeListener('sync', filterUpdater)\n return\n }\n }\n\n}\n\n// helper for turning filter constructors into rpc middleware\nfunction toFilterCreationMiddleware(createFilterFn) {\n return toAsyncRpcMiddleware(async (...args) => {\n const filter = await createFilterFn(...args)\n const result = intToHex(filter.id)\n return result\n })\n}\n\n// helper for pulling out req.params and setting res.result\nfunction toAsyncRpcMiddleware(asyncFn) {\n return createAsyncMiddleware(async (req, res) => {\n const result = await asyncFn.apply(null, req.params)\n res.result = result\n })\n}\n\nfunction mutexMiddlewareWrapper({ mutex }) {\n return (middleware) => {\n return async (req, res, next, end) => {\n // wait for mutex available\n // we can release immediately because\n // we just need to make sure updates aren't active\n const releaseLock = await mutex.acquire()\n releaseLock()\n middleware(req, res, next, end)\n }\n }\n}\n\nfunction objValues(obj, fn){\n const values = []\n for (let key in obj) {\n values.push(obj[key])\n }\n return values\n}\n","const EthQuery = require('eth-query')\nconst pify = require('pify')\nconst BaseFilterWithHistory = require('./base-filter-history')\nconst { bnToHex, hexToInt, incrementHexInt, minBlockRef, blockRefIsNumber } = require('./hexUtils')\n\nclass LogFilter extends BaseFilterWithHistory {\n\n constructor ({ provider, params }) {\n super()\n this.type = 'log'\n this.ethQuery = new EthQuery(provider)\n this.params = Object.assign({\n fromBlock: 'latest',\n toBlock: 'latest',\n address: undefined,\n topics: [],\n }, params)\n // normalize address parameter\n if (this.params.address) {\n // ensure array\n if (!Array.isArray(this.params.address)) {\n this.params.address = [this.params.address]\n }\n // ensure lowercase\n this.params.address = this.params.address.map(address => address.toLowerCase())\n }\n }\n\n async initialize({ currentBlock }) {\n // resolve params.fromBlock\n let fromBlock = this.params.fromBlock\n if (['latest', 'pending'].includes(fromBlock)) fromBlock = currentBlock\n if ('earliest' === fromBlock) fromBlock = '0x0'\n this.params.fromBlock = fromBlock\n // set toBlock for initial lookup\n const toBlock = minBlockRef(this.params.toBlock, currentBlock)\n const params = Object.assign({}, this.params, { toBlock })\n // fetch logs and add to results\n const newLogs = await this._fetchLogs(params)\n this.addInitialResults(newLogs)\n }\n\n async update ({ oldBlock, newBlock }) {\n // configure params for this update\n const toBlock = newBlock\n let fromBlock\n // oldBlock is empty on first sync\n if (oldBlock) {\n fromBlock = incrementHexInt(oldBlock)\n } else {\n fromBlock = newBlock\n }\n // fetch logs\n const params = Object.assign({}, this.params, { fromBlock, toBlock })\n const newLogs = await this._fetchLogs(params)\n const matchingLogs = newLogs.filter(log => this.matchLog(log))\n\n // add to results\n this.addResults(matchingLogs)\n }\n\n async _fetchLogs (params) {\n const newLogs = await pify(cb => this.ethQuery.getLogs(params, cb))()\n // add to results\n return newLogs\n }\n\n matchLog(log) {\n // check if block number in bounds:\n if (hexToInt(this.params.fromBlock) >= hexToInt(log.blockNumber)) return false\n if (blockRefIsNumber(this.params.toBlock) && hexToInt(this.params.toBlock) <= hexToInt(log.blockNumber)) return false\n\n // address is correct:\n const normalizedLogAddress = log.address && log.address.toLowerCase()\n if (this.params.address && normalizedLogAddress && !this.params.address.includes(normalizedLogAddress)) return false\n\n // topics match:\n // topics are position-dependant\n // topics can be nested to represent `or` [[a || b], c]\n // topics can be null, representing a wild card for that position\n const topicsMatch = this.params.topics.every((topicPattern, index) => {\n // pattern is longer than actual topics\n let logTopic = log.topics[index]\n if (!logTopic) return false\n logTopic = logTopic.toLowerCase()\n // normalize subTopics\n let subtopicsToMatch = Array.isArray(topicPattern) ? topicPattern : [topicPattern]\n // check for wild card\n const subtopicsIncludeWildcard = subtopicsToMatch.includes(null)\n if (subtopicsIncludeWildcard) return true\n subtopicsToMatch = subtopicsToMatch.map(topic => topic.toLowerCase())\n // check each possible matching topic\n const topicDoesMatch = subtopicsToMatch.includes(logTopic)\n return topicDoesMatch\n })\n\n return topicsMatch\n }\n\n}\n\nmodule.exports = LogFilter\n","'use strict';\n\nconst processFn = (fn, options, proxy, unwrapped) => function (...arguments_) {\n\tconst P = options.promiseModule;\n\n\treturn new P((resolve, reject) => {\n\t\tif (options.multiArgs) {\n\t\t\targuments_.push((...result) => {\n\t\t\t\tif (options.errorFirst) {\n\t\t\t\t\tif (result[0]) {\n\t\t\t\t\t\treject(result);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.shift();\n\t\t\t\t\t\tresolve(result);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresolve(result);\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (options.errorFirst) {\n\t\t\targuments_.push((error, result) => {\n\t\t\t\tif (error) {\n\t\t\t\t\treject(error);\n\t\t\t\t} else {\n\t\t\t\t\tresolve(result);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\targuments_.push(resolve);\n\t\t}\n\n\t\tconst self = this === proxy ? unwrapped : this;\n\t\tReflect.apply(fn, self, arguments_);\n\t});\n};\n\nconst filterCache = new WeakMap();\n\nmodule.exports = (input, options) => {\n\toptions = {\n\t\texclude: [/.+(?:Sync|Stream)$/],\n\t\terrorFirst: true,\n\t\tpromiseModule: Promise,\n\t\t...options\n\t};\n\n\tconst objectType = typeof input;\n\tif (!(input !== null && (objectType === 'object' || objectType === 'function'))) {\n\t\tthrow new TypeError(`Expected \\`input\\` to be a \\`Function\\` or \\`Object\\`, got \\`${input === null ? 'null' : objectType}\\``);\n\t}\n\n\tconst filter = (target, key) => {\n\t\tlet cached = filterCache.get(target);\n\n\t\tif (!cached) {\n\t\t\tcached = {};\n\t\t\tfilterCache.set(target, cached);\n\t\t}\n\n\t\tif (key in cached) {\n\t\t\treturn cached[key];\n\t\t}\n\n\t\tconst match = pattern => (typeof pattern === 'string' || typeof key === 'symbol') ? key === pattern : pattern.test(key);\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(target, key);\n\t\tconst writableOrConfigurableOwn = (desc === undefined || desc.writable || desc.configurable);\n\t\tconst included = options.include ? options.include.some(match) : !options.exclude.some(match);\n\t\tconst shouldFilter = included && writableOrConfigurableOwn;\n\t\tcached[key] = shouldFilter;\n\t\treturn shouldFilter;\n\t};\n\n\tconst cache = new WeakMap();\n\n\tconst proxy = new Proxy(input, {\n\t\tapply(target, thisArg, args) {\n\t\t\tconst cached = cache.get(target);\n\n\t\t\tif (cached) {\n\t\t\t\treturn Reflect.apply(cached, thisArg, args);\n\t\t\t}\n\n\t\t\tconst pified = options.excludeMain ? target : processFn(target, options, proxy, target);\n\t\t\tcache.set(target, pified);\n\t\t\treturn Reflect.apply(pified, thisArg, args);\n\t\t},\n\n\t\tget(target, key) {\n\t\t\tconst property = target[key];\n\n\t\t\t// eslint-disable-next-line no-use-extend-native/no-use-extend-native\n\t\t\tif (!filter(target, key) || property === Function.prototype[key]) {\n\t\t\t\treturn property;\n\t\t\t}\n\n\t\t\tconst cached = cache.get(property);\n\n\t\t\tif (cached) {\n\t\t\t\treturn cached;\n\t\t\t}\n\n\t\t\tif (typeof property === 'function') {\n\t\t\t\tconst pified = processFn(property, options, proxy, target);\n\t\t\t\tcache.set(property, pified);\n\t\t\t\treturn pified;\n\t\t\t}\n\n\t\t\treturn property;\n\t\t}\n\t});\n\n\treturn proxy;\n};\n","const SafeEventEmitter = require('@metamask/safe-event-emitter').default\nconst createScaffoldMiddleware = require('eth-json-rpc-middleware/scaffold')\nconst { createAsyncMiddleware } = require('json-rpc-engine')\nconst createFilterMiddleware = require('./index.js')\nconst { unsafeRandomBytes, incrementHexInt } = require('./hexUtils.js')\nconst getBlocksForRange = require('./getBlocksForRange.js')\n\nmodule.exports = createSubscriptionMiddleware\n\n\nfunction createSubscriptionMiddleware({ blockTracker, provider }) {\n // state and utilities for handling subscriptions\n const subscriptions = {}\n const filterManager = createFilterMiddleware({ blockTracker, provider })\n\n // internal flag\n let isDestroyed = false\n\n // create subscriptionManager api object\n const events = new SafeEventEmitter()\n const middleware = createScaffoldMiddleware({\n eth_subscribe: createAsyncMiddleware(subscribe),\n eth_unsubscribe: createAsyncMiddleware(unsubscribe),\n })\n middleware.destroy = destroy\n return { events, middleware }\n\n async function subscribe(req, res) {\n\n if (isDestroyed) throw new Error(\n 'SubscriptionManager - attempting to use after destroying'\n )\n\n const subscriptionType = req.params[0]\n // subId is 16 byte hex string\n const subId = unsafeRandomBytes(16)\n\n // create sub\n let sub\n switch (subscriptionType) {\n case 'newHeads':\n sub = createSubNewHeads({ subId })\n break\n case 'logs':\n const filterParams = req.params[1]\n const filter = await filterManager.newLogFilter(filterParams)\n sub = createSubFromFilter({ subId, filter })\n break\n default:\n throw new Error(`SubscriptionManager - unsupported subscription type \"${subscriptionType}\"`)\n\n }\n subscriptions[subId] = sub\n\n res.result = subId\n return\n\n function createSubNewHeads({ subId }) {\n const sub = {\n type: subscriptionType,\n destroy: async () => {\n blockTracker.removeListener('sync', sub.update)\n },\n update: async ({ oldBlock, newBlock }) => {\n // for newHeads\n const toBlock = newBlock\n const fromBlock = incrementHexInt(oldBlock)\n const rawBlocks = await getBlocksForRange({ provider, fromBlock, toBlock })\n const results = rawBlocks.map(normalizeBlock)\n results.forEach((value) => {\n _emitSubscriptionResult(subId, value)\n })\n }\n }\n // check for subscription updates on new block\n blockTracker.on('sync', sub.update)\n return sub\n }\n\n function createSubFromFilter({ subId, filter }){\n filter.on('update', result => _emitSubscriptionResult(subId, result))\n const sub = {\n type: subscriptionType,\n destroy: async () => {\n return await filterManager.uninstallFilter(filter.idHex)\n },\n }\n return sub\n }\n }\n\n async function unsubscribe(req, res) {\n\n if (isDestroyed) throw new Error(\n 'SubscriptionManager - attempting to use after destroying'\n )\n\n const id = req.params[0]\n const subscription = subscriptions[id]\n // if missing, return \"false\" to indicate it was not removed\n if (!subscription) {\n res.result = false\n return\n }\n // cleanup subscription\n delete subscriptions[id]\n await subscription.destroy()\n res.result = true\n }\n\n function _emitSubscriptionResult(filterIdHex, value) {\n events.emit('notification', {\n jsonrpc: '2.0',\n method: 'eth_subscription',\n params: {\n subscription: filterIdHex,\n result: value,\n },\n })\n }\n\n function destroy () {\n events.removeAllListeners()\n for (const id in subscriptions) {\n subscriptions[id].destroy()\n delete subscriptions[id]\n }\n isDestroyed = true\n }\n}\n\nfunction normalizeBlock(block) {\n return {\n hash: block.hash,\n parentHash: block.parentHash,\n sha3Uncles: block.sha3Uncles,\n miner: block.miner,\n stateRoot: block.stateRoot,\n transactionsRoot: block.transactionsRoot,\n receiptsRoot: block.receiptsRoot,\n logsBloom: block.logsBloom,\n difficulty: block.difficulty,\n number: block.number,\n gasLimit: block.gasLimit,\n gasUsed: block.gasUsed,\n nonce: block.nonce,\n mixHash: block.mixHash,\n timestamp: block.timestamp,\n extraData: block.extraData,\n }\n}\n","const BaseFilter = require('./base-filter')\nconst getBlocksForRange = require('./getBlocksForRange')\nconst { incrementHexInt } = require('./hexUtils')\n\nclass TxFilter extends BaseFilter {\n\n constructor ({ provider }) {\n super()\n this.type = 'tx'\n this.provider = provider\n }\n\n async update ({ oldBlock }) {\n const toBlock = oldBlock\n const fromBlock = incrementHexInt(oldBlock)\n const blocks = await getBlocksForRange({ provider: this.provider, fromBlock, toBlock })\n const blockTxHashes = []\n for (const block of blocks) {\n blockTxHashes.push(...block.transactions)\n }\n // add to results\n this.addResults(blockTxHashes)\n }\n\n}\n\nmodule.exports = TxFilter\n","module.exports = function createScaffoldMiddleware (handlers) {\n return (req, res, next, end) => {\n const handler = handlers[req.method]\n // if no handler, return\n if (handler === undefined) {\n return next()\n }\n // if handler is fn, call as middleware\n if (typeof handler === 'function') {\n return handler(req, res, next, end)\n }\n // if handler is some other value, use as result\n res.result = handler\n return end()\n }\n}\n","// for backwards compat\nmodule.exports = require('json-rpc-engine/src/createScaffoldMiddleware')\n","const extend = require('xtend')\nconst createRandomId = require('json-rpc-random-id')()\n\nmodule.exports = EthQuery\n\n\nfunction EthQuery(provider){\n const self = this\n self.currentProvider = provider\n}\n\n//\n// base queries\n//\n\n// default block\nEthQuery.prototype.getBalance = generateFnWithDefaultBlockFor(2, 'eth_getBalance')\nEthQuery.prototype.getCode = generateFnWithDefaultBlockFor(2, 'eth_getCode')\nEthQuery.prototype.getTransactionCount = generateFnWithDefaultBlockFor(2, 'eth_getTransactionCount')\nEthQuery.prototype.getStorageAt = generateFnWithDefaultBlockFor(3, 'eth_getStorageAt')\nEthQuery.prototype.call = generateFnWithDefaultBlockFor(2, 'eth_call')\n// standard\nEthQuery.prototype.protocolVersion = generateFnFor('eth_protocolVersion')\nEthQuery.prototype.syncing = generateFnFor('eth_syncing')\nEthQuery.prototype.coinbase = generateFnFor('eth_coinbase')\nEthQuery.prototype.mining = generateFnFor('eth_mining')\nEthQuery.prototype.hashrate = generateFnFor('eth_hashrate')\nEthQuery.prototype.gasPrice = generateFnFor('eth_gasPrice')\nEthQuery.prototype.accounts = generateFnFor('eth_accounts')\nEthQuery.prototype.blockNumber = generateFnFor('eth_blockNumber')\nEthQuery.prototype.getBlockTransactionCountByHash = generateFnFor('eth_getBlockTransactionCountByHash')\nEthQuery.prototype.getBlockTransactionCountByNumber = generateFnFor('eth_getBlockTransactionCountByNumber')\nEthQuery.prototype.getUncleCountByBlockHash = generateFnFor('eth_getUncleCountByBlockHash')\nEthQuery.prototype.getUncleCountByBlockNumber = generateFnFor('eth_getUncleCountByBlockNumber')\nEthQuery.prototype.sign = generateFnFor('eth_sign')\nEthQuery.prototype.sendTransaction = generateFnFor('eth_sendTransaction')\nEthQuery.prototype.sendRawTransaction = generateFnFor('eth_sendRawTransaction')\nEthQuery.prototype.estimateGas = generateFnFor('eth_estimateGas')\nEthQuery.prototype.getBlockByHash = generateFnFor('eth_getBlockByHash')\nEthQuery.prototype.getBlockByNumber = generateFnFor('eth_getBlockByNumber')\nEthQuery.prototype.getTransactionByHash = generateFnFor('eth_getTransactionByHash')\nEthQuery.prototype.getTransactionByBlockHashAndIndex = generateFnFor('eth_getTransactionByBlockHashAndIndex')\nEthQuery.prototype.getTransactionByBlockNumberAndIndex = generateFnFor('eth_getTransactionByBlockNumberAndIndex')\nEthQuery.prototype.getTransactionReceipt = generateFnFor('eth_getTransactionReceipt')\nEthQuery.prototype.getUncleByBlockHashAndIndex = generateFnFor('eth_getUncleByBlockHashAndIndex')\nEthQuery.prototype.getUncleByBlockNumberAndIndex = generateFnFor('eth_getUncleByBlockNumberAndIndex')\nEthQuery.prototype.getCompilers = generateFnFor('eth_getCompilers')\nEthQuery.prototype.compileLLL = generateFnFor('eth_compileLLL')\nEthQuery.prototype.compileSolidity = generateFnFor('eth_compileSolidity')\nEthQuery.prototype.compileSerpent = generateFnFor('eth_compileSerpent')\nEthQuery.prototype.newFilter = generateFnFor('eth_newFilter')\nEthQuery.prototype.newBlockFilter = generateFnFor('eth_newBlockFilter')\nEthQuery.prototype.newPendingTransactionFilter = generateFnFor('eth_newPendingTransactionFilter')\nEthQuery.prototype.uninstallFilter = generateFnFor('eth_uninstallFilter')\nEthQuery.prototype.getFilterChanges = generateFnFor('eth_getFilterChanges')\nEthQuery.prototype.getFilterLogs = generateFnFor('eth_getFilterLogs')\nEthQuery.prototype.getLogs = generateFnFor('eth_getLogs')\nEthQuery.prototype.getWork = generateFnFor('eth_getWork')\nEthQuery.prototype.submitWork = generateFnFor('eth_submitWork')\nEthQuery.prototype.submitHashrate = generateFnFor('eth_submitHashrate')\n\n// network level\n\nEthQuery.prototype.sendAsync = function(opts, cb){\n const self = this\n self.currentProvider.sendAsync(createPayload(opts), function(err, response){\n if (!err && response.error) err = new Error('EthQuery - RPC Error - '+response.error.message)\n if (err) return cb(err)\n cb(null, response.result)\n })\n}\n\n// util\n\nfunction generateFnFor(methodName){\n return function(){\n const self = this\n var args = [].slice.call(arguments)\n var cb = args.pop()\n self.sendAsync({\n method: methodName,\n params: args,\n }, cb)\n }\n}\n\nfunction generateFnWithDefaultBlockFor(argCount, methodName){\n return function(){\n const self = this\n var args = [].slice.call(arguments)\n var cb = args.pop()\n // set optional default block param\n if (args.length < argCount) args.push('latest')\n self.sendAsync({\n method: methodName,\n params: args,\n }, cb)\n }\n}\n\nfunction createPayload(data){\n return extend({\n // defaults\n id: createRandomId(),\n jsonrpc: '2.0',\n params: [],\n // user-specified\n }, data)\n}\n",null,null,null,null,null,"module.exports = stringify\nstringify.default = stringify\nstringify.stable = deterministicStringify\nstringify.stableStringify = deterministicStringify\n\nvar LIMIT_REPLACE_NODE = '[...]'\nvar CIRCULAR_REPLACE_NODE = '[Circular]'\n\nvar arr = []\nvar replacerStack = []\n\nfunction defaultOptions () {\n return {\n depthLimit: Number.MAX_SAFE_INTEGER,\n edgesLimit: Number.MAX_SAFE_INTEGER\n }\n}\n\n// Regular stringify\nfunction stringify (obj, replacer, spacer, options) {\n if (typeof options === 'undefined') {\n options = defaultOptions()\n }\n\n decirc(obj, '', 0, [], undefined, 0, options)\n var res\n try {\n if (replacerStack.length === 0) {\n res = JSON.stringify(obj, replacer, spacer)\n } else {\n res = JSON.stringify(obj, replaceGetterValues(replacer), spacer)\n }\n } catch (_) {\n return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]')\n } finally {\n while (arr.length !== 0) {\n var part = arr.pop()\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3])\n } else {\n part[0][part[1]] = part[2]\n }\n }\n }\n return res\n}\n\nfunction setReplace (replace, val, k, parent) {\n var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k)\n if (propertyDescriptor.get !== undefined) {\n if (propertyDescriptor.configurable) {\n Object.defineProperty(parent, k, { value: replace })\n arr.push([parent, k, val, propertyDescriptor])\n } else {\n replacerStack.push([val, k, replace])\n }\n } else {\n parent[k] = replace\n arr.push([parent, k, val])\n }\n}\n\nfunction decirc (val, k, edgeIndex, stack, parent, depth, options) {\n depth += 1\n var i\n if (typeof val === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n setReplace(CIRCULAR_REPLACE_NODE, val, k, parent)\n return\n }\n }\n\n if (\n typeof options.depthLimit !== 'undefined' &&\n depth > options.depthLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n if (\n typeof options.edgesLimit !== 'undefined' &&\n edgeIndex + 1 > options.edgesLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n stack.push(val)\n // Optimize for Arrays. Big arrays could kill the performance otherwise!\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n decirc(val[i], i, i, stack, val, depth, options)\n }\n } else {\n var keys = Object.keys(val)\n for (i = 0; i < keys.length; i++) {\n var key = keys[i]\n decirc(val[key], key, i, stack, val, depth, options)\n }\n }\n stack.pop()\n }\n}\n\n// Stable-stringify\nfunction compareFunction (a, b) {\n if (a < b) {\n return -1\n }\n if (a > b) {\n return 1\n }\n return 0\n}\n\nfunction deterministicStringify (obj, replacer, spacer, options) {\n if (typeof options === 'undefined') {\n options = defaultOptions()\n }\n\n var tmp = deterministicDecirc(obj, '', 0, [], undefined, 0, options) || obj\n var res\n try {\n if (replacerStack.length === 0) {\n res = JSON.stringify(tmp, replacer, spacer)\n } else {\n res = JSON.stringify(tmp, replaceGetterValues(replacer), spacer)\n }\n } catch (_) {\n return JSON.stringify('[unable to serialize, circular reference is too complex to analyze]')\n } finally {\n // Ensure that we restore the object as it was.\n while (arr.length !== 0) {\n var part = arr.pop()\n if (part.length === 4) {\n Object.defineProperty(part[0], part[1], part[3])\n } else {\n part[0][part[1]] = part[2]\n }\n }\n }\n return res\n}\n\nfunction deterministicDecirc (val, k, edgeIndex, stack, parent, depth, options) {\n depth += 1\n var i\n if (typeof val === 'object' && val !== null) {\n for (i = 0; i < stack.length; i++) {\n if (stack[i] === val) {\n setReplace(CIRCULAR_REPLACE_NODE, val, k, parent)\n return\n }\n }\n try {\n if (typeof val.toJSON === 'function') {\n return\n }\n } catch (_) {\n return\n }\n\n if (\n typeof options.depthLimit !== 'undefined' &&\n depth > options.depthLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n if (\n typeof options.edgesLimit !== 'undefined' &&\n edgeIndex + 1 > options.edgesLimit\n ) {\n setReplace(LIMIT_REPLACE_NODE, val, k, parent)\n return\n }\n\n stack.push(val)\n // Optimize for Arrays. Big arrays could kill the performance otherwise!\n if (Array.isArray(val)) {\n for (i = 0; i < val.length; i++) {\n deterministicDecirc(val[i], i, i, stack, val, depth, options)\n }\n } else {\n // Create a temporary object in the required way\n var tmp = {}\n var keys = Object.keys(val).sort(compareFunction)\n for (i = 0; i < keys.length; i++) {\n var key = keys[i]\n deterministicDecirc(val[key], key, i, stack, val, depth, options)\n tmp[key] = val[key]\n }\n if (typeof parent !== 'undefined') {\n arr.push([parent, k, val])\n parent[k] = tmp\n } else {\n return tmp\n }\n }\n stack.pop()\n }\n}\n\n// wraps replacer function to handle values we couldn't replace\n// and mark them as replaced value\nfunction replaceGetterValues (replacer) {\n replacer =\n typeof replacer !== 'undefined'\n ? replacer\n : function (k, v) {\n return v\n }\n return function (key, val) {\n if (replacerStack.length > 0) {\n for (var i = 0; i < replacerStack.length; i++) {\n var part = replacerStack[i]\n if (part[1] === key && part[0] === val) {\n val = part[2]\n replacerStack.splice(i, 1)\n break\n }\n }\n }\n return replacer.call(this, key, val)\n }\n}\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\nvar $slice = callBound('String.prototype.slice');\nvar toStrTags = {};\nvar gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\ttoStrTags[typedArray] = descriptor.get;\n\t\t}\n\t});\n}\n\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\tvar anyTrue = false;\n\tforEach(toStrTags, function (getter, typedArray) {\n\t\tif (!anyTrue) {\n\t\t\ttry {\n\t\t\t\tanyTrue = getter.call(value) === typedArray;\n\t\t\t} catch (e) { /**/ }\n\t\t}\n\t});\n\treturn anyTrue;\n};\n\nmodule.exports = function isTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag || !(Symbol.toStringTag in value)) {\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\treturn $indexOf(typedArrays, tag) > -1;\n\t}\n\tif (!gOPD) { return false; }\n\treturn tryTypedArrays(value);\n};\n",null,null,null,null,null,null,"module.exports = IdIterator\n\nfunction IdIterator(opts){\n opts = opts || {}\n var max = opts.max || Number.MAX_SAFE_INTEGER\n var idCounter = typeof opts.start !== 'undefined' ? opts.start : Math.floor(Math.random() * max)\n\n return function createRandomId () {\n idCounter = idCounter % max\n return idCounter++\n }\n\n}","module.exports = require('./lib/api')(require('./lib/keccak'))\n","const createKeccak = require('./keccak')\nconst createShake = require('./shake')\n\nmodule.exports = function (KeccakState) {\n const Keccak = createKeccak(KeccakState)\n const Shake = createShake(KeccakState)\n\n return function (algorithm, options) {\n const hash = typeof algorithm === 'string' ? algorithm.toLowerCase() : algorithm\n switch (hash) {\n case 'keccak224': return new Keccak(1152, 448, null, 224, options)\n case 'keccak256': return new Keccak(1088, 512, null, 256, options)\n case 'keccak384': return new Keccak(832, 768, null, 384, options)\n case 'keccak512': return new Keccak(576, 1024, null, 512, options)\n\n case 'sha3-224': return new Keccak(1152, 448, 0x06, 224, options)\n case 'sha3-256': return new Keccak(1088, 512, 0x06, 256, options)\n case 'sha3-384': return new Keccak(832, 768, 0x06, 384, options)\n case 'sha3-512': return new Keccak(576, 1024, 0x06, 512, options)\n\n case 'shake128': return new Shake(1344, 256, 0x1f, options)\n case 'shake256': return new Shake(1088, 512, 0x1f, options)\n\n default: throw new Error('Invald algorithm: ' + algorithm)\n }\n }\n}\n","const { Transform } = require('readable-stream')\n\nmodule.exports = (KeccakState) => class Keccak extends Transform {\n constructor (rate, capacity, delimitedSuffix, hashBitLength, options) {\n super(options)\n\n this._rate = rate\n this._capacity = capacity\n this._delimitedSuffix = delimitedSuffix\n this._hashBitLength = hashBitLength\n this._options = options\n\n this._state = new KeccakState()\n this._state.initialize(rate, capacity)\n this._finalized = false\n }\n\n _transform (chunk, encoding, callback) {\n let error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n }\n\n _flush (callback) {\n let error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n }\n\n update (data, encoding) {\n if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n this._state.absorb(data)\n\n return this\n }\n\n digest (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n if (this._delimitedSuffix) this._state.absorbLastFewBits(this._delimitedSuffix)\n let digest = this._state.squeeze(this._hashBitLength / 8)\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n this._resetState()\n\n return digest\n }\n\n // remove result from memory\n _resetState () {\n this._state.initialize(this._rate, this._capacity)\n return this\n }\n\n // because sometimes we need hash right now and little later\n _clone () {\n const clone = new Keccak(this._rate, this._capacity, this._delimitedSuffix, this._hashBitLength, this._options)\n this._state.copy(clone._state)\n clone._finalized = this._finalized\n\n return clone\n }\n}\n","const { Transform } = require('readable-stream')\n\nmodule.exports = (KeccakState) => class Shake extends Transform {\n constructor (rate, capacity, delimitedSuffix, options) {\n super(options)\n\n this._rate = rate\n this._capacity = capacity\n this._delimitedSuffix = delimitedSuffix\n this._options = options\n\n this._state = new KeccakState()\n this._state.initialize(rate, capacity)\n this._finalized = false\n }\n\n _transform (chunk, encoding, callback) {\n let error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n }\n\n _flush () {}\n\n _read (size) {\n this.push(this.squeeze(size))\n }\n\n update (data, encoding) {\n if (!Buffer.isBuffer(data) && typeof data !== 'string') throw new TypeError('Data must be a string or a buffer')\n if (this._finalized) throw new Error('Squeeze already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n this._state.absorb(data)\n\n return this\n }\n\n squeeze (dataByteLength, encoding) {\n if (!this._finalized) {\n this._finalized = true\n this._state.absorbLastFewBits(this._delimitedSuffix)\n }\n\n let data = this._state.squeeze(dataByteLength)\n if (encoding !== undefined) data = data.toString(encoding)\n\n return data\n }\n\n _resetState () {\n this._state.initialize(this._rate, this._capacity)\n return this\n }\n\n _clone () {\n const clone = new Shake(this._rate, this._capacity, this._delimitedSuffix, this._options)\n this._state.copy(clone._state)\n clone._finalized = this._finalized\n\n return clone\n }\n}\n","const P1600_ROUND_CONSTANTS = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649, 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0, 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771, 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648, 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648]\n\nexports.p1600 = function (s) {\n for (let round = 0; round < 24; ++round) {\n // theta\n const lo0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40]\n const hi0 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41]\n const lo1 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42]\n const hi1 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43]\n const lo2 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44]\n const hi2 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45]\n const lo3 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46]\n const hi3 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47]\n const lo4 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48]\n const hi4 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49]\n\n let lo = lo4 ^ (lo1 << 1 | hi1 >>> 31)\n let hi = hi4 ^ (hi1 << 1 | lo1 >>> 31)\n const t1slo0 = s[0] ^ lo\n const t1shi0 = s[1] ^ hi\n const t1slo5 = s[10] ^ lo\n const t1shi5 = s[11] ^ hi\n const t1slo10 = s[20] ^ lo\n const t1shi10 = s[21] ^ hi\n const t1slo15 = s[30] ^ lo\n const t1shi15 = s[31] ^ hi\n const t1slo20 = s[40] ^ lo\n const t1shi20 = s[41] ^ hi\n lo = lo0 ^ (lo2 << 1 | hi2 >>> 31)\n hi = hi0 ^ (hi2 << 1 | lo2 >>> 31)\n const t1slo1 = s[2] ^ lo\n const t1shi1 = s[3] ^ hi\n const t1slo6 = s[12] ^ lo\n const t1shi6 = s[13] ^ hi\n const t1slo11 = s[22] ^ lo\n const t1shi11 = s[23] ^ hi\n const t1slo16 = s[32] ^ lo\n const t1shi16 = s[33] ^ hi\n const t1slo21 = s[42] ^ lo\n const t1shi21 = s[43] ^ hi\n lo = lo1 ^ (lo3 << 1 | hi3 >>> 31)\n hi = hi1 ^ (hi3 << 1 | lo3 >>> 31)\n const t1slo2 = s[4] ^ lo\n const t1shi2 = s[5] ^ hi\n const t1slo7 = s[14] ^ lo\n const t1shi7 = s[15] ^ hi\n const t1slo12 = s[24] ^ lo\n const t1shi12 = s[25] ^ hi\n const t1slo17 = s[34] ^ lo\n const t1shi17 = s[35] ^ hi\n const t1slo22 = s[44] ^ lo\n const t1shi22 = s[45] ^ hi\n lo = lo2 ^ (lo4 << 1 | hi4 >>> 31)\n hi = hi2 ^ (hi4 << 1 | lo4 >>> 31)\n const t1slo3 = s[6] ^ lo\n const t1shi3 = s[7] ^ hi\n const t1slo8 = s[16] ^ lo\n const t1shi8 = s[17] ^ hi\n const t1slo13 = s[26] ^ lo\n const t1shi13 = s[27] ^ hi\n const t1slo18 = s[36] ^ lo\n const t1shi18 = s[37] ^ hi\n const t1slo23 = s[46] ^ lo\n const t1shi23 = s[47] ^ hi\n lo = lo3 ^ (lo0 << 1 | hi0 >>> 31)\n hi = hi3 ^ (hi0 << 1 | lo0 >>> 31)\n const t1slo4 = s[8] ^ lo\n const t1shi4 = s[9] ^ hi\n const t1slo9 = s[18] ^ lo\n const t1shi9 = s[19] ^ hi\n const t1slo14 = s[28] ^ lo\n const t1shi14 = s[29] ^ hi\n const t1slo19 = s[38] ^ lo\n const t1shi19 = s[39] ^ hi\n const t1slo24 = s[48] ^ lo\n const t1shi24 = s[49] ^ hi\n\n // rho & pi\n const t2slo0 = t1slo0\n const t2shi0 = t1shi0\n const t2slo16 = (t1shi5 << 4 | t1slo5 >>> 28)\n const t2shi16 = (t1slo5 << 4 | t1shi5 >>> 28)\n const t2slo7 = (t1slo10 << 3 | t1shi10 >>> 29)\n const t2shi7 = (t1shi10 << 3 | t1slo10 >>> 29)\n const t2slo23 = (t1shi15 << 9 | t1slo15 >>> 23)\n const t2shi23 = (t1slo15 << 9 | t1shi15 >>> 23)\n const t2slo14 = (t1slo20 << 18 | t1shi20 >>> 14)\n const t2shi14 = (t1shi20 << 18 | t1slo20 >>> 14)\n const t2slo10 = (t1slo1 << 1 | t1shi1 >>> 31)\n const t2shi10 = (t1shi1 << 1 | t1slo1 >>> 31)\n const t2slo1 = (t1shi6 << 12 | t1slo6 >>> 20)\n const t2shi1 = (t1slo6 << 12 | t1shi6 >>> 20)\n const t2slo17 = (t1slo11 << 10 | t1shi11 >>> 22)\n const t2shi17 = (t1shi11 << 10 | t1slo11 >>> 22)\n const t2slo8 = (t1shi16 << 13 | t1slo16 >>> 19)\n const t2shi8 = (t1slo16 << 13 | t1shi16 >>> 19)\n const t2slo24 = (t1slo21 << 2 | t1shi21 >>> 30)\n const t2shi24 = (t1shi21 << 2 | t1slo21 >>> 30)\n const t2slo20 = (t1shi2 << 30 | t1slo2 >>> 2)\n const t2shi20 = (t1slo2 << 30 | t1shi2 >>> 2)\n const t2slo11 = (t1slo7 << 6 | t1shi7 >>> 26)\n const t2shi11 = (t1shi7 << 6 | t1slo7 >>> 26)\n const t2slo2 = (t1shi12 << 11 | t1slo12 >>> 21)\n const t2shi2 = (t1slo12 << 11 | t1shi12 >>> 21)\n const t2slo18 = (t1slo17 << 15 | t1shi17 >>> 17)\n const t2shi18 = (t1shi17 << 15 | t1slo17 >>> 17)\n const t2slo9 = (t1shi22 << 29 | t1slo22 >>> 3)\n const t2shi9 = (t1slo22 << 29 | t1shi22 >>> 3)\n const t2slo5 = (t1slo3 << 28 | t1shi3 >>> 4)\n const t2shi5 = (t1shi3 << 28 | t1slo3 >>> 4)\n const t2slo21 = (t1shi8 << 23 | t1slo8 >>> 9)\n const t2shi21 = (t1slo8 << 23 | t1shi8 >>> 9)\n const t2slo12 = (t1slo13 << 25 | t1shi13 >>> 7)\n const t2shi12 = (t1shi13 << 25 | t1slo13 >>> 7)\n const t2slo3 = (t1slo18 << 21 | t1shi18 >>> 11)\n const t2shi3 = (t1shi18 << 21 | t1slo18 >>> 11)\n const t2slo19 = (t1shi23 << 24 | t1slo23 >>> 8)\n const t2shi19 = (t1slo23 << 24 | t1shi23 >>> 8)\n const t2slo15 = (t1slo4 << 27 | t1shi4 >>> 5)\n const t2shi15 = (t1shi4 << 27 | t1slo4 >>> 5)\n const t2slo6 = (t1slo9 << 20 | t1shi9 >>> 12)\n const t2shi6 = (t1shi9 << 20 | t1slo9 >>> 12)\n const t2slo22 = (t1shi14 << 7 | t1slo14 >>> 25)\n const t2shi22 = (t1slo14 << 7 | t1shi14 >>> 25)\n const t2slo13 = (t1slo19 << 8 | t1shi19 >>> 24)\n const t2shi13 = (t1shi19 << 8 | t1slo19 >>> 24)\n const t2slo4 = (t1slo24 << 14 | t1shi24 >>> 18)\n const t2shi4 = (t1shi24 << 14 | t1slo24 >>> 18)\n\n // chi\n s[0] = t2slo0 ^ (~t2slo1 & t2slo2)\n s[1] = t2shi0 ^ (~t2shi1 & t2shi2)\n s[10] = t2slo5 ^ (~t2slo6 & t2slo7)\n s[11] = t2shi5 ^ (~t2shi6 & t2shi7)\n s[20] = t2slo10 ^ (~t2slo11 & t2slo12)\n s[21] = t2shi10 ^ (~t2shi11 & t2shi12)\n s[30] = t2slo15 ^ (~t2slo16 & t2slo17)\n s[31] = t2shi15 ^ (~t2shi16 & t2shi17)\n s[40] = t2slo20 ^ (~t2slo21 & t2slo22)\n s[41] = t2shi20 ^ (~t2shi21 & t2shi22)\n s[2] = t2slo1 ^ (~t2slo2 & t2slo3)\n s[3] = t2shi1 ^ (~t2shi2 & t2shi3)\n s[12] = t2slo6 ^ (~t2slo7 & t2slo8)\n s[13] = t2shi6 ^ (~t2shi7 & t2shi8)\n s[22] = t2slo11 ^ (~t2slo12 & t2slo13)\n s[23] = t2shi11 ^ (~t2shi12 & t2shi13)\n s[32] = t2slo16 ^ (~t2slo17 & t2slo18)\n s[33] = t2shi16 ^ (~t2shi17 & t2shi18)\n s[42] = t2slo21 ^ (~t2slo22 & t2slo23)\n s[43] = t2shi21 ^ (~t2shi22 & t2shi23)\n s[4] = t2slo2 ^ (~t2slo3 & t2slo4)\n s[5] = t2shi2 ^ (~t2shi3 & t2shi4)\n s[14] = t2slo7 ^ (~t2slo8 & t2slo9)\n s[15] = t2shi7 ^ (~t2shi8 & t2shi9)\n s[24] = t2slo12 ^ (~t2slo13 & t2slo14)\n s[25] = t2shi12 ^ (~t2shi13 & t2shi14)\n s[34] = t2slo17 ^ (~t2slo18 & t2slo19)\n s[35] = t2shi17 ^ (~t2shi18 & t2shi19)\n s[44] = t2slo22 ^ (~t2slo23 & t2slo24)\n s[45] = t2shi22 ^ (~t2shi23 & t2shi24)\n s[6] = t2slo3 ^ (~t2slo4 & t2slo0)\n s[7] = t2shi3 ^ (~t2shi4 & t2shi0)\n s[16] = t2slo8 ^ (~t2slo9 & t2slo5)\n s[17] = t2shi8 ^ (~t2shi9 & t2shi5)\n s[26] = t2slo13 ^ (~t2slo14 & t2slo10)\n s[27] = t2shi13 ^ (~t2shi14 & t2shi10)\n s[36] = t2slo18 ^ (~t2slo19 & t2slo15)\n s[37] = t2shi18 ^ (~t2shi19 & t2shi15)\n s[46] = t2slo23 ^ (~t2slo24 & t2slo20)\n s[47] = t2shi23 ^ (~t2shi24 & t2shi20)\n s[8] = t2slo4 ^ (~t2slo0 & t2slo1)\n s[9] = t2shi4 ^ (~t2shi0 & t2shi1)\n s[18] = t2slo9 ^ (~t2slo5 & t2slo6)\n s[19] = t2shi9 ^ (~t2shi5 & t2shi6)\n s[28] = t2slo14 ^ (~t2slo10 & t2slo11)\n s[29] = t2shi14 ^ (~t2shi10 & t2shi11)\n s[38] = t2slo19 ^ (~t2slo15 & t2slo16)\n s[39] = t2shi19 ^ (~t2shi15 & t2shi16)\n s[48] = t2slo24 ^ (~t2slo20 & t2slo21)\n s[49] = t2shi24 ^ (~t2shi20 & t2shi21)\n\n // iota\n s[0] ^= P1600_ROUND_CONSTANTS[round * 2]\n s[1] ^= P1600_ROUND_CONSTANTS[round * 2 + 1]\n }\n}\n","const keccakState = require('./keccak-state-unroll')\n\nfunction Keccak () {\n // much faster than `new Array(50)`\n this.state = [\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0\n ]\n\n this.blockSize = null\n this.count = 0\n this.squeezing = false\n}\n\nKeccak.prototype.initialize = function (rate, capacity) {\n for (let i = 0; i < 50; ++i) this.state[i] = 0\n this.blockSize = rate / 8\n this.count = 0\n this.squeezing = false\n}\n\nKeccak.prototype.absorb = function (data) {\n for (let i = 0; i < data.length; ++i) {\n this.state[~~(this.count / 4)] ^= data[i] << (8 * (this.count % 4))\n this.count += 1\n if (this.count === this.blockSize) {\n keccakState.p1600(this.state)\n this.count = 0\n }\n }\n}\n\nKeccak.prototype.absorbLastFewBits = function (bits) {\n this.state[~~(this.count / 4)] ^= bits << (8 * (this.count % 4))\n if ((bits & 0x80) !== 0 && this.count === (this.blockSize - 1)) keccakState.p1600(this.state)\n this.state[~~((this.blockSize - 1) / 4)] ^= 0x80 << (8 * ((this.blockSize - 1) % 4))\n keccakState.p1600(this.state)\n this.count = 0\n this.squeezing = true\n}\n\nKeccak.prototype.squeeze = function (length) {\n if (!this.squeezing) this.absorbLastFewBits(0x01)\n\n const output = Buffer.alloc(length)\n for (let i = 0; i < length; ++i) {\n output[i] = (this.state[~~(this.count / 4)] >>> (8 * (this.count % 4))) & 0xff\n this.count += 1\n if (this.count === this.blockSize) {\n keccakState.p1600(this.state)\n this.count = 0\n }\n }\n\n return output\n}\n\nKeccak.prototype.copy = function (dest) {\n for (let i = 0; i < 50; ++i) dest.state[i] = this.state[i]\n dest.blockSize = this.blockSize\n dest.count = this.count\n dest.squeezing = this.squeezing\n}\n\nmodule.exports = Keccak\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","import { EMPTY_ARR } from \"./constants\";\n\n/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\t// @ts-ignore We change the type of `obj` to be `O & P`\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nexport const slice = EMPTY_ARR.slice;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import { slice } from './util';\nimport options from './options';\n\nlet vnodeId = 0;\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\tkey,\n\t\tref,\n\t\ti;\n\tfor (i in props) {\n\t\tif (i == 'key') key = props[i];\n\t\telse if (i == 'ref') ref = props[i];\n\t\telse normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 2) {\n\t\tnormalizedProps.children =\n\t\t\targuments.length > 3 ? slice.call(arguments, 2) : children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(type, normalizedProps, key, ref, null);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\t_hydrating: null,\n\t\tconstructor: undefined,\n\t\t_original: original == null ? ++vnodeId : original\n\t};\n\n\t// Only invoke the vnode hook if this was *not* a direct copy:\n\tif (original == null && options.vnode != null) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn { current: null };\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @this {import('./internal').Component}\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState != null && this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\t// Some libraries like `immer` mark the current state as readonly,\n\t\t// preventing us from mutating it, so we need to clone it. See #2716\n\t\tupdate = update(assign({}, s), this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) {\n\t\t\tthis._stateCallbacks.push(callback);\n\t\t}\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @this {import('./internal').Component}\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = vnode._original + 1;\n\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tvnode._hydrating != null ? [oldDom] : null,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom,\n\t\t\tvnode._hydrating\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (vnode._dom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!process._rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || setTimeout)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((process._rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\n\nprocess._rerenderCount = 0;\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue, contextId) {\n\tcontextId = '__cC' + i++;\n\n\tconst context = {\n\t\t_id: contextId,\n\t\t_defaultValue: defaultValue,\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tConsumer(props, contextValue) {\n\t\t\t// return props.children(\n\t\t\t// \tcontext[contextId] ? context[contextId].props.value : defaultValue\n\t\t\t// );\n\t\t\treturn props.children(contextValue);\n\t\t},\n\t\t/** @type {import('./internal').FunctionComponent} */\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tlet subs = [];\n\t\t\t\tlet ctx = {};\n\t\t\t\tctx[contextId] = this;\n\n\t\t\t\tthis.getChildContext = () => ctx;\n\n\t\t\t\tthis.shouldComponentUpdate = function(_props) {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\t// I think the forced value propagation here was only needed when `options.debounceRendering` was being bypassed:\n\t\t\t\t\t\t// https://github.com/preactjs/preact/commit/4d339fb803bea09e9f198abf38ca1bf8ea4b7771#diff-54682ce380935a717e41b8bfc54737f6R358\n\t\t\t\t\t\t// In those cases though, even with the value corrected, we're double-rendering all nodes.\n\t\t\t\t\t\t// It might be better to just tell folks not to use force-sync mode.\n\t\t\t\t\t\t// Currently, using `useContext()` in a class component will overwrite its `this.context` value.\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\n\t\t\t\t\t\t// subs.some(c => {\n\t\t\t\t\t\t// \tc.context[contextId] = _props.value;\n\t\t\t\t\t\t// \tenqueueRender(c);\n\t\t\t\t\t\t// });\n\t\t\t\t\t\tsubs.some(enqueueRender);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\tif (old) old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\n\treturn (context.Provider._contextRef = context.Consumer.contextType = context);\n}\n","export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode, Fragment } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').ComponentChildren[]} renderResult\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\trenderResult,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, childVNode, newDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\tnewParentVNode._children = [];\n\tfor (i = 0; i < renderResult.length; i++) {\n\t\tchildVNode = renderResult[i];\n\n\t\tif (childVNode == null || typeof childVNode == 'boolean') {\n\t\t\tchildVNode = newParentVNode._children[i] = null;\n\t\t}\n\t\t// If this newVNode is being reused (e.g.
{reuse}{reuse}
) in the same diff,\n\t\t// or we are rendering a component (e.g. setState) copy the oldVNodes so it can have\n\t\t// it's own DOM & etc. pointers\n\t\telse if (\n\t\t\ttypeof childVNode == 'string' ||\n\t\t\ttypeof childVNode == 'number' ||\n\t\t\t// eslint-disable-next-line valid-typeof\n\t\t\ttypeof childVNode == 'bigint'\n\t\t) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tnull,\n\t\t\t\tchildVNode,\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tchildVNode\n\t\t\t);\n\t\t} else if (Array.isArray(childVNode)) {\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tFragment,\n\t\t\t\t{ children: childVNode },\n\t\t\t\tnull,\n\t\t\t\tnull,\n\t\t\t\tnull\n\t\t\t);\n\t\t} else if (childVNode._depth > 0) {\n\t\t\t// VNode is already in use, clone it. This can happen in the following\n\t\t\t// scenario:\n\t\t\t// const reuse =
\n\t\t\t//
{reuse}{reuse}
\n\t\t\tchildVNode = newParentVNode._children[i] = createVNode(\n\t\t\t\tchildVNode.type,\n\t\t\t\tchildVNode.props,\n\t\t\t\tchildVNode.key,\n\t\t\t\tchildVNode.ref ? childVNode.ref : null,\n\t\t\t\tchildVNode._original\n\t\t\t);\n\t\t} else {\n\t\t\tchildVNode = newParentVNode._children[i] = childVNode;\n\t\t}\n\n\t\t// Terser removes the `continue` here and wraps the loop body\n\t\t// in a `if (childVNode) { ... } condition\n\t\tif (childVNode == null) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tchildVNode._parent = newParentVNode;\n\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t// Check if we find a corresponding element in oldChildren.\n\t\t// If found, delete the array item by setting to `undefined`.\n\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t// (holes).\n\t\toldVNode = oldChildren[i];\n\n\t\tif (\n\t\t\toldVNode === null ||\n\t\t\t(oldVNode &&\n\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t) {\n\t\t\toldChildren[i] = undefined;\n\t\t} else {\n\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t// We always match by type (in either case).\n\t\t\t\tif (\n\t\t\t\t\toldVNode &&\n\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t) {\n\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\toldVNode = null;\n\t\t\t}\n\t\t}\n\n\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\tdiff(\n\t\t\tparentDom,\n\t\t\tchildVNode,\n\t\t\toldVNode,\n\t\t\tglobalContext,\n\t\t\tisSvg,\n\t\t\texcessDomChildren,\n\t\t\tcommitQueue,\n\t\t\toldDom,\n\t\t\tisHydrating\n\t\t);\n\n\t\tnewDom = childVNode._dom;\n\n\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\tif (!refs) refs = [];\n\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t}\n\n\t\tif (newDom != null) {\n\t\t\tif (firstChildDom == null) {\n\t\t\t\tfirstChildDom = newDom;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof childVNode.type == 'function' &&\n\t\t\t\tchildVNode._children === oldVNode._children\n\t\t\t) {\n\t\t\t\tchildVNode._nextDom = oldDom = reorderChildren(\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldDom,\n\t\t\t\t\tparentDom\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\toldChildren,\n\t\t\t\t\tnewDom,\n\t\t\t\t\toldDom\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (typeof newParentVNode.type == 'function') {\n\t\t\t\t// Because the newParentVNode is Fragment-like, we need to set it's\n\t\t\t\t// _nextDom property to the nextSibling of its last child DOM node.\n\t\t\t\t//\n\t\t\t\t// `oldDom` contains the correct value here because if the last child\n\t\t\t\t// is a Fragment-like, then oldDom has already been set to that child's _nextDom.\n\t\t\t\t// If the last child is a DOM VNode, then oldDom will be set to that DOM\n\t\t\t\t// node's nextSibling.\n\t\t\t\tnewParentVNode._nextDom = oldDom;\n\t\t\t}\n\t\t} else if (\n\t\t\toldDom &&\n\t\t\toldVNode._dom == oldDom &&\n\t\t\toldDom.parentNode != parentDom\n\t\t) {\n\t\t\t// The above condition is to handle null placeholders. See test in placeholder.test.js:\n\t\t\t// `efficiently replace null placeholders in parent rerenders`\n\t\t\toldDom = getDomSibling(oldVNode);\n\t\t}\n\t}\n\n\tnewParentVNode._dom = firstChildDom;\n\n\t// Remove remaining oldChildren if there are any.\n\tfor (i = oldChildrenLength; i--; ) {\n\t\tif (oldChildren[i] != null) {\n\t\t\tunmount(oldChildren[i], oldChildren[i]);\n\t\t}\n\t}\n\n\t// Set refs only after unmount\n\tif (refs) {\n\t\tfor (i = 0; i < refs.length; i++) {\n\t\t\tapplyRef(refs[i], refs[++i], refs[++i]);\n\t\t}\n\t}\n}\n\nfunction reorderChildren(childVNode, oldDom, parentDom) {\n\t// Note: VNodes in nested suspended trees may be missing _children.\n\tlet c = childVNode._children;\n\tlet tmp = 0;\n\tfor (; c && tmp < c.length; tmp++) {\n\t\tlet vnode = c[tmp];\n\t\tif (vnode) {\n\t\t\t// We typically enter this code path on sCU bailout, where we copy\n\t\t\t// oldVNode._children to newVNode._children. If that is the case, we need\n\t\t\t// to update the old children's _parent pointer to point to the newVNode\n\t\t\t// (childVNode here).\n\t\t\tvnode._parent = childVNode;\n\n\t\t\tif (typeof vnode.type == 'function') {\n\t\t\t\toldDom = reorderChildren(vnode, oldDom, parentDom);\n\t\t\t} else {\n\t\t\t\toldDom = placeChild(parentDom, vnode, vnode, c, vnode._dom, oldDom);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn oldDom;\n}\n\n/**\n * Flatten and loop through the children of a virtual node\n * @param {import('../index').ComponentChildren} children The unflattened\n * children of a virtual node\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, out) {\n\tout = out || [];\n\tif (children == null || typeof children == 'boolean') {\n\t} else if (Array.isArray(children)) {\n\t\tchildren.some(child => {\n\t\t\ttoChildArray(child, out);\n\t\t});\n\t} else {\n\t\tout.push(children);\n\t}\n\treturn out;\n}\n\nfunction placeChild(\n\tparentDom,\n\tchildVNode,\n\toldVNode,\n\toldChildren,\n\tnewDom,\n\toldDom\n) {\n\tlet nextDom;\n\tif (childVNode._nextDom !== undefined) {\n\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t// of last DOM child of this child VNode\n\t\tnextDom = childVNode._nextDom;\n\n\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t// can clean up the property\n\t\tchildVNode._nextDom = undefined;\n\t} else if (\n\t\toldVNode == null ||\n\t\tnewDom != oldDom ||\n\t\tnewDom.parentNode == null\n\t) {\n\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\tparentDom.appendChild(newDom);\n\t\t\tnextDom = null;\n\t\t} else {\n\t\t\t// `j href (xlink:href was removed from SVG and isn't needed)\n\t\t\t// - className --> class\n\t\t\tname = name.replace(/xlink(H|:h)/, 'h').replace(/sName$/, 's');\n\t\t} else if (\n\t\t\tname !== 'href' &&\n\t\t\tname !== 'list' &&\n\t\t\tname !== 'form' &&\n\t\t\t// Default value in browsers is `-1` and an empty string is\n\t\t\t// cast to `0` instead\n\t\t\tname !== 'tabIndex' &&\n\t\t\tname !== 'download' &&\n\t\t\tname in dom\n\t\t) {\n\t\t\ttry {\n\t\t\t\tdom[name] = value == null ? '' : value;\n\t\t\t\t// labelled break is 1b smaller here than a return statement (sorry)\n\t\t\t\tbreak o;\n\t\t\t} catch (e) {}\n\t\t}\n\n\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t// The value `false` is different from the attribute not\n\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t// that other VDOM frameworks also always stringify `false`.\n\n\t\tif (typeof value === 'function') {\n\t\t\t// never serialize functions as attribute values\n\t\t} else if (value != null && (value !== false || name.indexOf('-') != -1)) {\n\t\t\tdom.setAttribute(name, value);\n\t\t} else {\n\t\t\tdom.removeAttribute(name);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type + false](options.event ? options.event(e) : e);\n}\n\nfunction eventProxyCapture(e) {\n\tthis._listeners[e.type + true](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ } from '../constants';\nimport { Component, getDomSibling } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode, slice } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').PreactElement} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\t// If the previous diff bailed out, resume creating/hydrating.\n\tif (oldVNode._hydrating != null) {\n\t\tisHydrating = oldVNode._hydrating;\n\t\toldDom = newVNode._dom = oldVNode._dom;\n\t\t// if we resume, we want the tree to be \"unlocked\"\n\t\tnewVNode._hydrating = null;\n\t\texcessDomChildren = [oldDom];\n\t}\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\t// @ts-ignore The check above verifies that newType is suppose to be constructed\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\t// @ts-ignore Trust me, Component implements the interface we want\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\tfor (tmp = 0; tmp < c._stateCallbacks.length; tmp++) {\n\t\t\t\tc._renderCallbacks.push(c._stateCallbacks[tmp]);\n\t\t\t\tc._stateCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\tnewVNode._original === oldVNode._original\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tnewVNode._children.forEach(vnode => {\n\t\t\t\t\t\tif (vnode) vnode._parent = newVNode;\n\t\t\t\t\t});\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\tlet renderHook = options._render,\n\t\t\t\tcount = 0;\n\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\tc.state = c._nextState;\n\t\t\t\tc._dirty = false;\n\n\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\t\t\t} else {\n\t\t\t\tdo {\n\t\t\t\t\tc._dirty = false;\n\t\t\t\t\tif (renderHook) renderHook(newVNode);\n\n\t\t\t\t\ttmp = c.render(c.props, c.state, c.context);\n\n\t\t\t\t\t// Handle setState called in render, see #2553\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t} while (c._dirty && ++count < 25);\n\t\t\t}\n\n\t\t\t// Handle setState called in render, see #2553\n\t\t\tc.state = c._nextState;\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type === Fragment && tmp.key == null;\n\t\t\tlet renderResult = isTopLevelFragment ? tmp.props.children : tmp;\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tArray.isArray(renderResult) ? renderResult : [renderResult],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\t// We successfully rendered this VNode, unset any stored hydration/bailout state:\n\t\t\tnewVNode._hydrating = null;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\t// if hydrating or creating initial tree, bailout preserves DOM:\n\t\tif (isHydrating || excessDomChildren != null) {\n\t\t\tnewVNode._dom = oldDom;\n\t\t\tnewVNode._hydrating = !!isHydrating;\n\t\t\texcessDomChildren[excessDomChildren.indexOf(oldDom)] = null;\n\t\t\t// ^ could possibly be simplified to:\n\t\t\t// excessDomChildren.length = 0;\n\t\t}\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\t// @ts-ignore Reuse the commitQueue variable here so the type changes\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\t// @ts-ignore See above ts-ignore on commitQueue\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\tlet nodeType = newVNode.type;\n\tlet i = 0;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tif (nodeType === 'svg') isSvg = true;\n\n\tif (excessDomChildren != null) {\n\t\tfor (; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild &&\n\t\t\t\t'setAttribute' in child === !!nodeType &&\n\t\t\t\t(nodeType ? child.localName === nodeType : child.nodeType === 3)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (nodeType === null) {\n\t\t\t// @ts-ignore createTextNode returns Text, we expect PreactElement\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tif (isSvg) {\n\t\t\tdom = document.createElementNS(\n\t\t\t\t'http://www.w3.org/2000/svg',\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType\n\t\t\t);\n\t\t} else {\n\t\t\tdom = document.createElement(\n\t\t\t\t// @ts-ignore We know `newVNode.type` is a string\n\t\t\t\tnodeType,\n\t\t\t\tnewProps.is && newProps\n\t\t\t);\n\t\t}\n\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (nodeType === null) {\n\t\t// During hydration, we still have to split merged text from SSR'd HTML.\n\t\tif (oldProps !== newProps && (!isHydrating || dom.data !== newProps)) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\t// If excessDomChildren was not null, repopulate it with the current element's children:\n\t\texcessDomChildren = excessDomChildren && slice.call(dom.childNodes);\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\t// But, if we are in a situation where we are using existing DOM (e.g. replaceNode)\n\t\t\t// we should read the existing DOM attributes to diff them\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (\n\t\t\t\t\t!newHtml ||\n\t\t\t\t\t((!oldHtml || newHtml.__html != oldHtml.__html) &&\n\t\t\t\t\t\tnewHtml.__html !== dom.innerHTML)\n\t\t\t\t) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\ti = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tArray.isArray(i) ? i : [i],\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg && nodeType !== 'foreignObject',\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\texcessDomChildren\n\t\t\t\t\t? excessDomChildren[0]\n\t\t\t\t\t: oldVNode._children && getDomSibling(oldVNode, 0),\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\t// Remove children that are not part of any vnode.\n\t\t\tif (excessDomChildren != null) {\n\t\t\t\tfor (i = excessDomChildren.length; i--; ) {\n\t\t\t\t\tif (excessDomChildren[i] != null) removeNode(excessDomChildren[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\t// #2756 For the -element the initial value is 0,\n\t\t\t\t// despite the attribute not being present. When the attribute\n\t\t\t\t// is missing the progress bar is treated as indeterminate.\n\t\t\t\t// To fix that we'll always update it when it is 0 for progress elements\n\t\t\t\t(i !== dom.value ||\n\t\t\t\t\t(nodeType === 'progress' && !i) ||\n\t\t\t\t\t// This is only for IE 11 to fix